如何替换 woocommerce_product_tax_class 已弃用的钩子?
How to replace woocommerce_product_tax_class deprecated hook?
我的错误日志中出现以下错误:woocommerce_product_tax_class 自版本 3.0.0 起已弃用!请改用 woocommerce_product_get_tax_class。
我有以下功能来显示不同的用户角色不同的税收 类。我可以直接将“woocommerce_product_tax_class”更改为“woocommerce_product_get_tax_class”还是该函数需要重写?
function wc_diff_rate_for_user( $tax_class, $product ) {
// Getting the current user
$current_user = wp_get_current_user();
$current_user_data = get_userdata($current_user->ID);
if ( in_array( 'eu_no_duty', $current_user_data->roles ) )
$tax_class = 'Zero Rate';
elseif ( in_array( 'eu_no_vat', $current_user_data->roles ) )
$tax_class = 'Zero Rate';
elseif ( in_array( 'eu_trusted', $current_user_data->roles ) )
$tax_class = 'Zero Rate';
return $tax_class;
}
add_filter( 'woocommerce_product_tax_class', 'wc_diff_rate_for_user', 1, 2 );
因此挂钩 woocommerce_product_tax_class
自 WooCommerce 3 起已弃用,取而代之的是 woocommerce_product_get_tax_class
和 woocommerce_product_variation_get_tax_class
挂钩。
改用以下简化代码:
add_filter( 'woocommerce_product_get_tax_class', 'tax_rate_based_on_user_role', 10, 2 );
add_filter( 'woocommerce_product_variation_get_tax_class', 'tax_rate_based_on_user_role', 10, 2 );
function tax_rate_based_on_user_role( $tax_class, $product ) {
$roles = array('eu_no_duty', 'eu_no_vat', 'eu_trusted'); // Here define user roles
$user = wp_get_current_user(); // Get current WP_User object
$matches = array_intersect( $user->roles, $roles ); // Check for matching user roles
if ( ! empty($matches) ) {
$tax_class = 'Zero Rate';
}
return $tax_class;
}
代码进入活动子主题(或活动主题)的 functions.php 文件。它应该更好用。
我的错误日志中出现以下错误:woocommerce_product_tax_class 自版本 3.0.0 起已弃用!请改用 woocommerce_product_get_tax_class。
我有以下功能来显示不同的用户角色不同的税收 类。我可以直接将“woocommerce_product_tax_class”更改为“woocommerce_product_get_tax_class”还是该函数需要重写?
function wc_diff_rate_for_user( $tax_class, $product ) {
// Getting the current user
$current_user = wp_get_current_user();
$current_user_data = get_userdata($current_user->ID);
if ( in_array( 'eu_no_duty', $current_user_data->roles ) )
$tax_class = 'Zero Rate';
elseif ( in_array( 'eu_no_vat', $current_user_data->roles ) )
$tax_class = 'Zero Rate';
elseif ( in_array( 'eu_trusted', $current_user_data->roles ) )
$tax_class = 'Zero Rate';
return $tax_class;
}
add_filter( 'woocommerce_product_tax_class', 'wc_diff_rate_for_user', 1, 2 );
因此挂钩 woocommerce_product_tax_class
自 WooCommerce 3 起已弃用,取而代之的是 woocommerce_product_get_tax_class
和 woocommerce_product_variation_get_tax_class
挂钩。
改用以下简化代码:
add_filter( 'woocommerce_product_get_tax_class', 'tax_rate_based_on_user_role', 10, 2 );
add_filter( 'woocommerce_product_variation_get_tax_class', 'tax_rate_based_on_user_role', 10, 2 );
function tax_rate_based_on_user_role( $tax_class, $product ) {
$roles = array('eu_no_duty', 'eu_no_vat', 'eu_trusted'); // Here define user roles
$user = wp_get_current_user(); // Get current WP_User object
$matches = array_intersect( $user->roles, $roles ); // Check for matching user roles
if ( ! empty($matches) ) {
$tax_class = 'Zero Rate';
}
return $tax_class;
}
代码进入活动子主题(或活动主题)的 functions.php 文件。它应该更好用。