ers(),
);
if ($requestParams['method'] !== 'GET') {
$requestParams['body'] = json_encode($request->getBody());
$requestParams['headers']['Content-Type'] = 'application/json';
}
// Construct URL
$url = add_query_arg($request->getParameters(), $this->getEndpoint() . $request->getUrl());
// Send Request
$requestResponse = wp_remote_request($url, $requestParams);
// Check for connection error
if (is_wp_error($requestResponse)) {
$errorMessage = $requestResponse->get_error_message();
$this->logAPICall($this->getAPIClientName(), array_merge(array('type' => 'request', 'path' => $url), $requestParams), true);
$this->logAPICall($this->getAPIClientName(), array('type' => 'response', 'reason' => $requestResponse->get_error_message(), 'code' => $requestResponse->get_error_code(), 'body' => $errorMessage), true);
return $this->createAPIError($errorMessage);
}
// Check for response error != 2XX
if (wp_remote_retrieve_response_code($requestResponse) > 299) {
$errorMessage = wp_remote_retrieve_response_message($requestResponse);
$this->logAPICall($this->getAPIClientName(), array_merge(array('type' => 'request', 'path' => $url), $requestParams), true);
$this->logAPICall($this->getAPIClientName(), array('type' => 'response', 'reason' => $errorMessage, 'code' => wp_remote_retrieve_response_code($requestResponse)), true);
return $this->createAPIError($errorMessage);
}
// Decode request to JSON
$response = json_decode(wp_remote_retrieve_body($requestResponse), true);
if (json_last_error() !== JSON_ERROR_NONE) {
$errorMessage = 'Error decoding client API JSON';
$this->logAPICall($errorMessage, array('error' => json_last_error()), true);
return $this->createAPIError($errorMessage);
}
if (!$this->responseOk($response)) {
$this->logAPICall($this->getAPIClientName(), array('type' => 'response', 'body' => $response), true);
}
return $response;
}
/**
* @param Request $request
* @param [Array] $response
* @return [Array] $paginatedResponse
*/
public function getPaginatedResults(Request $request, $response)
{
if (strtoupper($request->getMethod()) !== 'GET' || !isset($response['result_info']['total_pages'])) {
return $response;
}
$mergedResponse = $response;
$currentPage = 2; // $response already contains page 1
$totalPages = $response['result_info']['total_pages'];
while ($totalPages >= $currentPage) {
$parameters = $request->getParameters();
$parameters['page'] = $currentPage;
$request->setParameters($parameters);
$pagedResponse = $this->sendRequest($request);
$mergedResponse['result'] = array_merge($mergedResponse['result'], $pagedResponse['result']);
// Notify the frontend that pagination is taken care.
$mergedResponse['result_info']['notify'] = 'Backend has taken care of pagination. Output is merged in results.';
$mergedResponse['result_info']['page'] = -1;
$mergedResponse['result_info']['count'] = -1;
$currentPage++;
}
return $mergedResponse;
}
}
Fatal error: Uncaught Error: Class 'CF\WordPress\WordPressClientAPI' not found in /home/ocb/public_html/wp-content/plugins/cloudflare/src/WordPress/Hooks.php:40
Stack trace:
#0 /home/ocb/public_html/wp-content/plugins/cloudflare/cloudflare.loader.php(36): CF\WordPress\Hooks->__construct()
#1 /home/ocb/public_html/wp-content/plugins/cloudflare/cloudflare.php(49): require_once('/home/ocb/publi...')
#2 /home/ocb/public_html/wp-settings.php(526): include_once('/home/ocb/publi...')
#3 /home/ocb/public_html/wp-config.php(77): require_once('/home/ocb/publi...')
#4 /home/ocb/public_html/wp-load.php(50): require_once('/home/ocb/publi...')
#5 /home/ocb/public_html/wp-blog-header.php(13): require_once('/home/ocb/publi...')
#6 /home/ocb/public_html/index.php(17): require('/home/ocb/publi...')
#7 {main}
thrown in /home/ocb/public_html/wp-content/plugins/cloudflare/src/WordPress/Hooks.php on line 40