| Server IP : 68.183.124.220 / Your IP : 216.73.217.137 Web Server : Apache/2.4.18 (Ubuntu) System : Linux Sandbox-A 4.4.0-210-generic #242-Ubuntu SMP Fri Apr 16 09:57:56 UTC 2021 x86_64 User : gavin ( 1000) PHP Version : 7.0.33-0ubuntu0.16.04.16 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority, MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /var/www/html/wp-content/plugins/wordpress-seo/vendor/yoast/license-manager/ |
Upload File : |
<?php
if ( ! class_exists( "Yoast_API_Request", false ) ) {
/**
* Handles requests to the Yoast EDD API
*/
class Yoast_API_Request {
/**
* @var string Request URL
*/
private $url = '';
/**
* @var array Request parameters
*/
private $args = array(
'method' => 'GET',
'timeout' => 10,
'sslverify' => false,
'headers' => array(
'Accept-Encoding' => '*',
'X-Yoast-EDD' => '1'
)
);
/**
* @var boolean
*/
private $success = false;
/**
* @var mixed
*/
private $response;
/**
* @var string
*/
private $error_message = '';
/**
* Constructor
*
* @param string url
* @param array $args
*/
public function __construct( $url, array $args = array() ) {
// set api url
$this->url = $url;
// set request args (merge with defaults)
$this->args = wp_parse_args( $args, $this->args );
// fire the request
$this->success = $this->fire();
}
/**
* Fires the request, automatically called from constructor
*
* @return boolean
*/
private function fire() {
// fire request to shop
$response = wp_remote_request( $this->url, $this->args );
// validate raw response
if( $this->validate_raw_response( $response ) === false ) {
return false;
}
// decode the response
$this->response = json_decode( wp_remote_retrieve_body( $response ) );
// response should be an object
if( ! is_object( $this->response ) ) {
$this->error_message = 'No JSON object was returned.';
return false;
}
return true;
}
/**
* @param object $response
* @return boolean
*/
private function validate_raw_response( $response ) {
// make sure response came back okay
if( is_wp_error( $response ) ) {
$this->error_message = $response->get_error_message();
return false;
}
// check response code, should be 200
$response_code = wp_remote_retrieve_response_code( $response );
if( false === strstr( $response_code, '200' ) ) {
$response_message = wp_remote_retrieve_response_message( $response );
$this->error_message = "{$response_code} {$response_message}";
return false;
}
return true;
}
/**
* Was a valid response returned?
*
* @return boolean
*/
public function is_valid() {
return ( $this->success === true );
}
/**
* @return string
*/
public function get_error_message() {
return $this->error_message;
}
/**
* @return object
*/
public function get_response() {
return $this->response;
}
}
}