WC_Admin_Addons::process_api_response
Process API response from WooCommerce.com endpoints.
Method of the class: WC_Admin_Addons{}
Hooks from the method
Returns
Array|WP_Error. Processed API data or WP_Error on failure.
Usage
$result = WC_Admin_Addons::process_api_response( $response, $context, $associative );
- $response(array|WP_Error) (required)
- The response from the API request.
- $context(string)
- Context for error messages (e.g.
'featured', 'product-preview').
Default:'api' - $associative(true|false)
- Whether to decode the JSON as an associative array.
Default:false
WC_Admin_Addons::process_api_response() WC Admin Addons::process api response code WC 10.7.0
private static function process_api_response( $response, $context = 'api', $associative = false ) {
if ( is_wp_error( $response ) ) {
/**
* Hook fired when there is a connection error with WooCommerce.com.
*
* @since 6.1.0
* @param string $error_message The error message.
*/
do_action( 'woocommerce_page_wc_addons_connection_error', $response->get_error_message() );
$message = self::is_ssl_error( $response->get_error_message() )
? __(
'We encountered an SSL error. Please ensure your site supports TLS version 1.2 or above.',
'woocommerce'
)
: $response->get_error_message();
return new WP_Error( 'wc-addons-connection-error', $message );
}
$response_code = (int) wp_remote_retrieve_response_code( $response );
if ( 200 !== $response_code ) {
/**
* Hook fired when there is a connection error with WooCommerce.com.
*
* @since 6.1.0
* @param int $response_code The HTTP response code.
*/
do_action( 'woocommerce_page_wc_addons_connection_error', $response_code );
$message = sprintf(
/* translators: 1: Context (e.g. 'featured', 'product-preview') 2: HTTP error code */
__( 'Our request to the %1$s API got error code %2$d.', 'woocommerce' ),
$context,
$response_code
);
return new WP_Error( 'wc-addons-connection-error', $message );
}
$data = json_decode( wp_remote_retrieve_body( $response ), $associative );
if ( empty( $data ) || ! is_array( $data ) ) {
/**
* Hook fired when there is a connection error with WooCommerce.com.
*
* @since 6.1.0
* @param string $error_message The error message.
*/
do_action( 'woocommerce_page_wc_addons_connection_error', 'Empty or malformed response' );
$message = sprintf(
/* translators: %s: Context (e.g. 'featured', 'product-preview') */
__( 'Our request to the %s API got a malformed response.', 'woocommerce' ),
$context
);
return new WP_Error( 'wc-addons-connection-error', $message );
}
return $data;
}