File Editor
Directories:
.. (Back)
ajax
capabilities
endpoints
exceptions
filters
formatter
google_search_console
import
listeners
menu
metabox
notifiers
pages
roles
services
statistics
taxonomy
tracking
views
watchers
Files:
admin-settings-changed-listener.php
ajax.php
class-admin-asset-analysis-worker-location.php
class-admin-asset-dev-server-location.php
class-admin-asset-location.php
class-admin-asset-manager.php
class-admin-asset-seo-location.php
class-admin-editor-specific-replace-vars.php
class-admin-gutenberg-compatibility-notification.php
class-admin-help-panel.php
class-admin-init.php
class-admin-recommended-replace-vars.php
class-admin-user-profile.php
class-admin-utils.php
class-admin.php
class-asset.php
class-bulk-description-editor-list-table.php
class-bulk-editor-list-table.php
class-bulk-title-editor-list-table.php
class-collector.php
class-config.php
class-database-proxy.php
class-export.php
class-expose-shortlinks.php
class-gutenberg-compatibility.php
class-meta-columns.php
class-my-yoast-proxy.php
class-option-tab.php
class-option-tabs-formatter.php
class-option-tabs.php
class-paper-presenter.php
class-plugin-availability.php
class-plugin-conflict.php
class-premium-popup.php
class-premium-upsell-admin-block.php
class-primary-term-admin.php
class-product-upsell-notice.php
class-remote-request.php
class-schema-person-upgrade-notification.php
class-suggested-plugins.php
class-wincher-dashboard-widget.php
class-yoast-columns.php
class-yoast-dashboard-widget.php
class-yoast-form.php
class-yoast-input-validation.php
class-yoast-network-admin.php
class-yoast-network-settings-api.php
class-yoast-notification-center.php
class-yoast-notification.php
class-yoast-notifications.php
class-yoast-plugin-conflict.php
index.php
interface-collection.php
interface-installable.php
Create New File
Create
Edit File: class-remote-request.php
<?php /** * WPSEO plugin file. * * @package WPSEO\Admin */ /** * This class handles a post request being send to a given endpoint. */ class WPSEO_Remote_Request { /** * Holds the post method. * * @var string */ public const METHOD_POST = 'post'; /** * Holds the get method. * * @var string */ public const METHOD_GET = 'get'; /** * Holds the endpoint to send the request to. * * @var string */ protected $endpoint = ''; /** * Holds the arguments to use in this request. * * @var array */ protected $args = [ 'blocking' => false, 'timeout' => 2, ]; /** * Holds the response error. * * @var WP_Error|null */ protected $response_error; /** * Holds the response body. * * @var mixed */ protected $response_body; /** * Sets the endpoint and arguments. * * @param string $endpoint The endpoint to send the request to. * @param array $args The arguments to use in this request. */ public function __construct( $endpoint, array $args = [] ) { $this->endpoint = $endpoint; $this->args = wp_parse_args( $this->args, $args ); } /** * Sets the request body. * * @param mixed $body The body to set. * * @return void */ public function set_body( $body ) { $this->args['body'] = $body; } /** * Sends the data to the given endpoint. * * @param string $method The type of request to send. * * @return bool True when sending data has been successful. */ public function send( $method = self::METHOD_POST ) { switch ( $method ) { case self::METHOD_POST: $response = $this->post(); break; case self::METHOD_GET: $response = $this->get(); break; default: /* translators: %1$s expands to the request method */ $response = new WP_Error( 1, sprintf( __( 'Request method %1$s is not valid.', 'wordpress-seo' ), $method ) ); break; } return $this->process_response( $response ); } /** * Returns the value of the response error. * * @return WP_Error|null The response error. */ public function get_response_error() { return $this->response_error; } /** * Returns the response body. * * @return mixed The response body. */ public function get_response_body() { return $this->response_body; } /** * Processes the given response. * * @param mixed $response The response to process. * * @return bool True when response is valid. */ protected function process_response( $response ) { if ( $response instanceof WP_Error ) { $this->response_error = $response; return false; } $this->response_body = wp_remote_retrieve_body( $response ); return ( wp_remote_retrieve_response_code( $response ) === 200 ); } /** * Performs a post request to the specified endpoint with set arguments. * * @return WP_Error|array The response or WP_Error on failure. */ protected function post() { return wp_remote_post( $this->endpoint, $this->args ); } /** * Performs a post request to the specified endpoint with set arguments. * * @return WP_Error|array The response or WP_Error on failure. */ protected function get() { return wp_remote_get( $this->endpoint, $this->args ); } }
Save Changes
Rename File
Rename