Server IP : 172.67.158.161 / Your IP : 18.218.21.96 Web Server : LiteSpeed System : Linux business53.web-hosting.com 4.18.0-553.lve.el8.x86_64 #1 SMP Mon May 27 15:27:34 UTC 2024 x86_64 User : giankuin ( 1871) PHP Version : 7.4.33 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /proc/self/root/proc/self/cwd/wp-content/plugins/wordpress-seo/admin/ryte/ |
Upload File : |
<?php /** * WPSEO plugin file. * * @package WPSEO\Admin */ /** * This class will fetch a new status from Ryte and if it's necessary it will * notify the site admin by email and remove the current meta value to hide the * notice for all admin users. */ class WPSEO_Ryte_Request { /** * The endpoint where the request will be send to. * * @var string */ private $ryte_endpoint = 'https://indexability.yoast.onpage.org/'; /** * Gets the response from the Ryte API and returns the body. * * @param string $target_url The URL to check indexability for. * @param array $parameters Array of extra parameters to send to the Ryte API. * * @return array The successful response or the error details. */ protected function get_remote( $target_url, $parameters = [] ) { $defaults = [ 'url' => $target_url, 'wp_version' => $GLOBALS['wp_version'], 'yseo_version' => WPSEO_VERSION, ]; $parameters = array_merge( $defaults, $parameters ); $url = add_query_arg( $parameters, $this->ryte_endpoint ); $response = wp_remote_get( $url ); return $this->process_response( $response ); } /** * Sends a request to the Ryte API to check whether a URL is indexable. * * @param string $target_url The URL to check indexability for. * @param array $parameters Array of extra parameters to send to the Ryte API. * * @return array */ public function do_request( $target_url, $parameters = [] ) { $json_body = $this->get_remote( $target_url, $parameters ); // Ryte recognized a redirect, fetch the data of that URL by calling this method with the value from Ryte. if ( ! empty( $json_body['passes_juice_to'] ) ) { return $this->do_request( $json_body['passes_juice_to'], $parameters ); } return $json_body; } /** * Processes the given Ryte response. * * @param array|WP_Error $response The response or WP_Error to process. * * @return array The response body or the error detaiils on failure. */ protected function process_response( $response ) { // Most of the potential errors are WP_Error(s). if ( is_wp_error( $response ) ) { return [ 'is_error' => true, 'raw_error_code' => '', // WP_Error codes aren't that helpful for users, let's display them in a less prominent way. 'wp_error_code' => '(' . $response->get_error_code() . ')', 'message' => $response->get_error_message(), ]; } /* * As of February 2020 the Ryte API returns an error 500 for non-reachable * sites. There's also the need to handle any potential raw HTTP error. */ if ( wp_remote_retrieve_response_code( $response ) !== 200 ) { // Not all HTTP errors may have a response message. Let's provide a default one. $response_message = wp_remote_retrieve_response_message( $response ); $message = ( $response_message ) ? $response_message : __( 'The request to Ryte returned an error.', 'wordpress-seo' ); return [ 'is_error' => true, 'raw_error_code' => wp_remote_retrieve_response_code( $response ), 'wp_error_code' => '', 'message' => $message, ]; } // When the request is successful, the response code will be 200. $response_body = wp_remote_retrieve_body( $response ); return json_decode( $response_body, true ); } }