Файловый менеджер - Редактировать - /home/harasnat/www/horse/wp-content/plugins/pinterest-for-woocommerce/src/API/DomainVerification.php
Назад
<?php /** * API Options * * @package Pinterest_For_Woocommerce/API * @version 1.0.0 */ namespace Automattic\WooCommerce\Pinterest\API; use Automattic\WooCommerce\Pinterest\Logger as Logger; use Automattic\WooCommerce\Pinterest\PinterestApiException; use Exception; use Pinterest_For_Woocommerce; use WP_Error; use WP_REST_Server; if ( ! defined( 'ABSPATH' ) ) { exit; } /** * Endpoint handing Domain verification. */ class DomainVerification extends VendorAPI { /** * The number of remaining attempts to retry domain verification on error. * * @var integer */ private static $verification_attempts_remaining = 3; /** * Initialize class */ public function __construct() { $this->base = 'domain_verification'; $this->endpoint_callback = 'maybe_handle_verification'; $this->methods = WP_REST_Server::EDITABLE; $this->register_routes(); } /** * Handle domain verification by triggering the realtime verification process * using the Pinterest API. * * @since 1.4.0 * * @return mixed * * @throws Exception PHP Exception. */ public function maybe_handle_verification() { try { $result = array(); $account_data = Pinterest_For_Woocommerce()::get_setting( 'account_data', true ); if ( ! Pinterest_For_Woocommerce::is_domain_verified() ) { $domain_verification_data = APIV5::domain_verification_data(); Pinterest_For_Woocommerce()::save_data( 'verification_data', $domain_verification_data ); $parsed_website = wp_parse_url( get_home_url() ); $result = APIV5::domain_metatag_verification_request( $parsed_website['host'] . ( $parsed_website['path'] ?? '' ) ); if ( in_array( $result['status'], array( 'success', 'already_verified_by_user' ) ) ) { $account_data['verified_user_websites'][] = $result['website']; $account_data['is_any_website_verified'] = 0 < count( $account_data['verified_user_websites'] ); Pinterest_For_Woocommerce()::save_setting( 'account_data', $account_data ); } } return array_merge( $result, array( 'account_data' => $account_data ) ); } catch ( PinterestApiException $th ) { return new WP_Error( 'pinterest-for-woocommerce_verification_error', $th->getMessage(), array( 'status' => $th->getCode(), 'pinterest_code' => method_exists( $th, 'get_pinterest_code' ) ? $th->get_pinterest_code() : 0, ) ); } } /** * Triggers the realtime verification process using the Pinterst API. * * @return mixed * * @throws \Exception PHP Exception. */ public static function trigger_domain_verification() { static $verification_data; try { if ( is_null( $verification_data ) ) { // Get verification code from pinterest. $verification_data = Base::domain_verification_data(); } if ( 'success' === $verification_data['status'] && ! empty( $verification_data['data']->verification_code ) ) { Pinterest_For_Woocommerce()::save_data( 'verification_data', (array) $verification_data['data'] ); $result = Base::trigger_verification(); if ( 'success' === $result['status'] ) { $account_data = Pinterest_For_Woocommerce()::update_account_data(); return array_merge( (array) $result['data'], array( 'account_data' => $account_data ) ); } throw new \Exception( 'Meta tag verification failed', 409 ); } throw new \Exception( 'Domain verification failed', 406 ); } catch ( \Throwable $th ) { $error_code = $th->getCode() >= 400 ? $th->getCode() : 400; if ( 403 === $error_code && self::$verification_attempts_remaining > 0 ) { self::$verification_attempts_remaining--; Logger::log( sprintf( 'Retrying domain verification in 5 seconds. Attempts left: %d', self::$verification_attempts_remaining ), 'debug' ); sleep( 5 ); return call_user_func( __METHOD__ ); } return new \WP_Error( \PINTEREST_FOR_WOOCOMMERCE_PREFIX . '_verification_error', $th->getMessage(), array( 'status' => $error_code, 'pinterest_code' => method_exists( $th, 'get_pinterest_code' ) ? $th->get_pinterest_code() : 0, ) ); } } }
| ver. 1.4 |
Github
|
.
| PHP 8.1.33 | Генерация страницы: 0 |
proxy
|
phpinfo
|
Настройка