Php 将零税类别设置为Woocommerce中定义的产品类别中的特定项目计数

Php 将零税类别设置为Woocommerce中定义的产品类别中的特定项目计数,php,wordpress,woocommerce,cart,tax,Php,Wordpress,Woocommerce,Cart,Tax,在WooCommerce中,如果购物车包含来自2个特定类别的6个或更多项目,那么我只想为这些项目设置一个特定的税类(零税)(不是整个购物车,所以不要为其他产品更改它) 我使用这段代码计算购物车中来自这两个类别的商品数量,但我找不到如何完成它,以便用我的“零税”税类设置它们 add\u action('woocommerce\u before\u calculate\u total','apply\u conditionally\u taxes',20,1); 函数有条件地应用税费($cart){

在WooCommerce中,如果购物车包含来自2个特定类别的6个或更多项目,那么我只想为这些项目设置一个特定的税类(零税)(不是整个购物车,所以不要为其他产品更改它)

我使用这段代码计算购物车中来自这两个类别的商品数量,但我找不到如何完成它,以便用我的“零税”税类设置它们

add\u action('woocommerce\u before\u calculate\u total','apply\u conditionally\u taxes',20,1);
函数有条件地应用税费($cart){
$item_count=$cart->get_cart_contents_count();
$kingcat_计数=0;
foreach($cart->get\u cart()作为$cart\u项目){
如果(有术语('patisseries'、'product_cat'、$cart_item['product_id'])或有术语('viennoiseries et gaufres'、'product_cat'、$cart_item['product_id'])){
$kingcat_count+=$cart_物料[‘数量’];
//echo$kingcat_计数;
}
}
}
代码包含:(作为注释添加到代码中的解释)

  • 只计算属于某一类别的项目
  • 仅将特定税务类别设置为这些项目
计算总计之前的功能操作($cart){ if(is_admin()&&!defined('DOING_AJAX'))返回; if(did_action('woocommerce_before_calculate_totals')>=2)返回; /*背景*/ //设置类别 $categories=数组('patisseries'、'viennoiseries et gaufres'); //包含6项或更多项 $contains_min=6; /*结束设置*/ //柜台 $counter=0; //环槽 foreach($cart->get\u cart()作为$cart\u项目){ //断环 如果($counter>=$contains\u min){ 打破 } //有期限 if(具有术语($categories,$product\u cat',$cart\u item['product\u id')){ //添加到计数器 $counter+=$cart_项目['quantity']; } } //检查 如果($counter>=$contains\u min){ //环槽 foreach($cart->get\u cart()作为$cart\u项目){ //有期限 if(具有术语($categories,$product\u cat',$cart\u item['product\u id')){ //我们设置了“零税率”税类 $cart_item['data']->set_tax_class('Zero rate'); } } } } 添加行动(“计算总计前的行动”,“计算总计前的行动”,10,1);