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