92 lines
4.1 KiB
PHP
92 lines
4.1 KiB
PHP
<?php
|
|
if ( ! defined( 'ABSPATH' ) ) {
|
|
exit;
|
|
}
|
|
|
|
/**
|
|
* Handles deprecation notices and triggering of legacy filter hooks.
|
|
*
|
|
* @since 3.0.0
|
|
*/
|
|
class WC_Deprecated_Filter_Hooks extends WC_Deprecated_Hooks {
|
|
|
|
/**
|
|
* Array of deprecated hooks we need to handle.
|
|
* Format of 'new' => 'old'.
|
|
*
|
|
* @var array
|
|
*/
|
|
protected $deprecated_hooks = array(
|
|
'woocommerce_structured_data_order' => 'woocommerce_email_order_schema_markup',
|
|
'woocommerce_add_to_cart_fragments' => 'add_to_cart_fragments',
|
|
'woocommerce_add_to_cart_redirect' => 'add_to_cart_redirect',
|
|
'woocommerce_product_get_width' => 'woocommerce_product_width',
|
|
'woocommerce_product_get_height' => 'woocommerce_product_height',
|
|
'woocommerce_product_get_length' => 'woocommerce_product_length',
|
|
'woocommerce_product_get_weight' => 'woocommerce_product_weight',
|
|
'woocommerce_product_get_sku' => 'woocommerce_get_sku',
|
|
'woocommerce_product_get_price' => 'woocommerce_get_price',
|
|
'woocommerce_product_get_regular_price' => 'woocommerce_get_regular_price',
|
|
'woocommerce_product_get_sale_price' => 'woocommerce_get_sale_price',
|
|
'woocommerce_product_get_tax_class' => 'woocommerce_product_tax_class',
|
|
'woocommerce_product_get_stock_quantity' => 'woocommerce_get_stock_quantity',
|
|
'woocommerce_product_get_attributes' => 'woocommerce_get_product_attributes',
|
|
'woocommerce_product_get_gallery_image_ids' => 'woocommerce_product_gallery_attachment_ids',
|
|
'woocommerce_product_get_review_count' => 'woocommerce_product_review_count',
|
|
'woocommerce_product_get_downloads' => 'woocommerce_product_files',
|
|
'woocommerce_order_get_currency' => 'woocommerce_get_currency',
|
|
'woocommerce_order_get_discount_total' => 'woocommerce_order_amount_discount_total',
|
|
'woocommerce_order_get_discount_tax' => 'woocommerce_order_amount_discount_tax',
|
|
'woocommerce_order_get_shipping_total' => 'woocommerce_order_amount_shipping_total',
|
|
'woocommerce_order_get_shipping_tax' => 'woocommerce_order_amount_shipping_tax',
|
|
'woocommerce_order_get_cart_tax' => 'woocommerce_order_amount_cart_tax',
|
|
'woocommerce_order_get_total' => 'woocommerce_order_amount_total',
|
|
'woocommerce_order_get_total_tax' => 'woocommerce_order_amount_total_tax',
|
|
'woocommerce_order_get_total_discount' => 'woocommerce_order_amount_total_discount',
|
|
'woocommerce_order_get_subtotal' => 'woocommerce_order_amount_subtotal',
|
|
'woocommerce_order_get_tax_totals' => 'woocommerce_order_tax_totals',
|
|
'woocommerce_get_order_refund_get_amount' => 'woocommerce_refund_amount',
|
|
'woocommerce_get_order_refund_get_reason' => 'woocommerce_refund_reason',
|
|
'default_checkout_billing_country' => 'default_checkout_country',
|
|
'default_checkout_billing_state' => 'default_checkout_state',
|
|
'default_checkout_billing_postcode' => 'default_checkout_postcode',
|
|
'woocommerce_system_status_environment_rows' => 'woocommerce_debug_posting',
|
|
);
|
|
|
|
/**
|
|
* Hook into the new hook so we can handle deprecated hooks once fired.
|
|
* @param string $hook_name
|
|
*/
|
|
public function hook_in( $hook_name ) {
|
|
add_filter( $hook_name, array( $this, 'maybe_handle_deprecated_hook' ), -1000, 8 );
|
|
}
|
|
|
|
/**
|
|
* If the old hook is in-use, trigger it.
|
|
*
|
|
* @param string $new_hook
|
|
* @param string $old_hook
|
|
* @param array $new_callback_args
|
|
* @param mixed $return_value
|
|
* @return mixed
|
|
*/
|
|
public function handle_deprecated_hook( $new_hook, $old_hook, $new_callback_args, $return_value ) {
|
|
if ( has_filter( $old_hook ) ) {
|
|
$this->display_notice( $old_hook, $new_hook );
|
|
$return_value = $this->trigger_hook( $old_hook, $new_callback_args );
|
|
}
|
|
return $return_value;
|
|
}
|
|
|
|
/**
|
|
* Fire off a legacy hook with it's args.
|
|
*
|
|
* @param string $old_hook
|
|
* @param array $new_callback_args
|
|
* @return mixed
|
|
*/
|
|
protected function trigger_hook( $old_hook, $new_callback_args ) {
|
|
return apply_filters_ref_array( $old_hook, $new_callback_args );
|
|
}
|
|
}
|