WC_Helper::get_product_usage_notice_rules
Get rules for displaying notice regarding marketplace product usage.
Метод класса: WC_Helper{}
Хуков нет.
Возвращает
``Массив
phpcs:ignore``. Squiz.Commenting.FunctionCommentThrowTag.Missing -- As we wrap the throw in a try/catch.
Использование
$result = WC_Helper::get_product_usage_notice_rules();
Код WC_Helper::get_product_usage_notice_rules() WC Helper::get product usage notice rules WC 10.3.4
public static function get_product_usage_notice_rules() {
$cache_key = '_woocommerce_helper_product_usage_notice_rules';
$data = get_transient( $cache_key );
if ( false !== $data ) {
return $data;
}
try {
$request = WC_Helper_API::get(
'product-usage-notice-rules',
array(
'authenticated' => false,
'timeout' => 2,
)
);
if ( is_wp_error( $request ) ) {
set_transient( $cache_key, array(), 15 * MINUTE_IN_SECONDS );
throw new Exception( $request->get_error_message(), (int) $request->get_error_data() );
}
$code = wp_remote_retrieve_response_code( $request );
if ( 200 !== $code ) {
set_transient( $cache_key, array(), 15 * MINUTE_IN_SECONDS );
throw new Exception( self::get_message_for_response_code( $code ), $code );
}
$data = json_decode( wp_remote_retrieve_body( $request ), true );
if ( ! is_array( $data ) ) {
set_transient( $cache_key, array(), 15 * MINUTE_IN_SECONDS );
throw new Exception( __( 'WooCommerce.com API returned an invalid response.', 'woocommerce' ), 422 );
}
set_transient( $cache_key, $data, DAY_IN_SECONDS );
// Remove notice after successful API call as it's no longer applicable.
self::remove_api_error_notice();
return $data;
} catch ( Exception $e ) {
if ( $e->getCode() < 404 ) {
self::remove_api_error_notice();
} else {
// Only show error notice in case there is no proper communication with WCCOM.
self::log( 'Error getting product usage notice rules: ' . $e->getMessage(), 'error' );
self::add_api_error_notice();
}
}
return array();
}