response = $response; } public function isSuccessful() { $error = $this->getError(); return $error === null; } public function isError() { return ! $this->isSuccessful(); } public function getError() { $response = $this->response; if ( is_wp_error( $response ) ) { return $response->get_error_message(); } // If $response is an array, check for error code and message per Graph API. if ( is_array( $response ) && isset( $response['error'] ) ) { $error_msg = isset( $response['error']['message'] ) ? $response['error']['message'] : json_encode( $response['error'] ); return $error_msg; } // For cases where $response is raw WP HTTP array and has non-2xx code if ( is_array($response) && isset($response['response']['code']) && ($response['response']['code'] < 200 || $response['response']['code'] >= 300) ) { $body = isset($response['body']) ? $response['body'] : 'An unexpected error occurred'; return $body; } $http_code = wp_remote_retrieve_response_code( $response ); if ( $http_code < 200 || $http_code >= 300 ) { return $response['body'] ?? 'An unexpected error occurred'; } return null; } public function throw() { if ( $this->isError() ) { // phpcs:ignore WordPress.Security.EscapeOutput.ExceptionNotEscaped throw new \Exception( $this->getError() ); } } public function getBody() { $response = $this->response; if (is_wp_error($response)) { return array( 'error' => $response->get_error_message() ); } $body = json_decode( (string) ($response['body'] ?? ''), true ); return is_array( $body ) ? $body : array( 'raw' => (string) $response['body']); } public function getHttpCode() { return wp_remote_retrieve_response_code( $this->response ); } }