根据 Woocommerce 中的特定优惠券设置税收 class
Setting a tax class based on specific coupon in Woocommerce
前段时间已经回答了这个问题,但是过滤器不再工作了。不确定它是否被弃用。我同时使用两个过滤器:
woocommerce_product_tax_class
woocommerce_product_get_tax_class
我的函数如下所示:
function wc_diff_rate_for_user( $tax_class, $product ) {
$tax_class = "Zero rate";
return $tax_class;
}
add_filter( 'woocommerce_product_tax_class', 'wc_diff_rate_for_user', 1, 2 );
如何根据 Woocommerce 中的特定优惠券设置税费 class?
自 Woocommerce 3 起,过滤器挂钩 woocommerce_product_tax_class
不再存在,只有新的 woocommerce_product_get_tax_class
复合过滤器挂钩可用且有效。
有多种方法可以根据应用的优惠券代码class设置税费 (在下面的两个示例中,我们设置"Zero rate" 税 class 当应用定义的优惠券代码时):
1) 使用woocommerce_before_calculate_totals
action hook,最佳方式:
add_action( 'woocommerce_before_calculate_totals', 'change_tax_class_based_on_specific_coupon', 25, 1 );
function change_tax_class_based_on_specific_coupon( $cart ) {
// Define your coupon code below
if ( ! $cart->has_discount('summer') )
return;
if ( is_admin() && ! defined( 'DOING_AJAX' ) )
return;
if ( did_action( 'woocommerce_before_calculate_totals' ) >= 2 )
return;
foreach( $cart->get_cart() as $cart_item ){
// We set "Zero rate" tax class
$cart_item['data']->set_tax_class("Zero rate");
}
}
代码进入活动子主题(或活动主题)的 function.php 文件。已测试并有效。
2) 使用 woocommerce_product_get_tax_class
过滤器挂钩:
add_filter( 'woocommerce_product_get_tax_class', 'change_tax_class_based_on_specific_coupon', 30, 2 );
function change_tax_class_based_on_specific_coupon( $tax_class, $product ) {
// Define your coupon code below
if( WC()->cart->has_discount('summer') )
$tax_class = "Zero rate";
return $tax_class;
}
代码进入活动子主题(或活动主题)的 function.php 文件。已测试并有效。
前段时间已经回答了这个问题,但是过滤器不再工作了。不确定它是否被弃用。我同时使用两个过滤器:
woocommerce_product_tax_class
woocommerce_product_get_tax_class
我的函数如下所示:
function wc_diff_rate_for_user( $tax_class, $product ) {
$tax_class = "Zero rate";
return $tax_class;
}
add_filter( 'woocommerce_product_tax_class', 'wc_diff_rate_for_user', 1, 2 );
如何根据 Woocommerce 中的特定优惠券设置税费 class?
自 Woocommerce 3 起,过滤器挂钩 woocommerce_product_tax_class
不再存在,只有新的 woocommerce_product_get_tax_class
复合过滤器挂钩可用且有效。
有多种方法可以根据应用的优惠券代码class设置税费 (在下面的两个示例中,我们设置"Zero rate" 税 class 当应用定义的优惠券代码时):
1) 使用woocommerce_before_calculate_totals
action hook,最佳方式:
add_action( 'woocommerce_before_calculate_totals', 'change_tax_class_based_on_specific_coupon', 25, 1 );
function change_tax_class_based_on_specific_coupon( $cart ) {
// Define your coupon code below
if ( ! $cart->has_discount('summer') )
return;
if ( is_admin() && ! defined( 'DOING_AJAX' ) )
return;
if ( did_action( 'woocommerce_before_calculate_totals' ) >= 2 )
return;
foreach( $cart->get_cart() as $cart_item ){
// We set "Zero rate" tax class
$cart_item['data']->set_tax_class("Zero rate");
}
}
代码进入活动子主题(或活动主题)的 function.php 文件。已测试并有效。
2) 使用 woocommerce_product_get_tax_class
过滤器挂钩:
add_filter( 'woocommerce_product_get_tax_class', 'change_tax_class_based_on_specific_coupon', 30, 2 );
function change_tax_class_based_on_specific_coupon( $tax_class, $product ) {
// Define your coupon code below
if( WC()->cart->has_discount('summer') )
$tax_class = "Zero rate";
return $tax_class;
}
代码进入活动子主题(或活动主题)的 function.php 文件。已测试并有效。