PHP foreach代码不生成快速结果

PHP foreach代码不生成快速结果,php,wordpress,foreach,woocommerce,Php,Wordpress,Foreach,Woocommerce,以下代码来自wordpress+woocommerce安装。它应该检查购物车中的每个项目,如果项目属于特定的产品类别(类别ID 79和130添加15欧元费用,类别80、136、139添加50欧元费用),则根据类别添加额外费用。为了简单起见,我将它们称为类别组15€和类别组50€ 当一个项目添加到购物车中,属于15欧元类别组或50欧元类别组时,将按预期添加额外费用 将两个属于不同类别组的项目添加到购物车时,将按预期添加额外费用 但是,如果购物车中添加了多个属于同一类别组的物品,则每个类别组只添加一

以下代码来自wordpress+woocommerce安装。它应该检查购物车中的每个项目,如果项目属于特定的产品类别(类别ID 79和130添加15欧元费用,类别80、136、139添加50欧元费用),则根据类别添加额外费用。为了简单起见,我将它们称为类别组15€类别组50€

当一个项目添加到购物车中,属于15欧元类别组或50欧元类别组时,将按预期添加额外费用

将两个属于不同类别组的项目添加到购物车时,将按预期添加额外费用

但是,如果购物车中添加了多个属于同一类别组的物品,则每个类别组只添加一项费用,这是不可取的。添加的每个项目都应承担相关类别组费用。例如,15欧元类别的2个项目应增加2项额外费用,50欧元类别的3个项目应增加3项额外费用,依此类推

代码中有bug还是

函数woo\u add\u cart\u fee(){
全球商业;
foreach($woocommerce->cart->cart\u内容为$key=>$value){
//获取术语,即使用产品ID的类别列表
$terms=获取术语($values['product\u id','product\u cat');
//因为一个产品可以有多个类别,所以我们需要遍历产品类别的列表以进行匹配
foreach($terms作为$term){
//79是我们要删除其支付网关的类别的ID
如果($term->term|U id=='79'| |$term->term|U id=='130'){
$excost=15;
$woocommerce->cart->addΕu fee('kκτύπωσημεαπλμελλλόνι',$excost,$taxed=false,$taxάu class='';
}如果($term->term|U id=='80'||$term->term|U id=='139'| |$term->term|U id=='136'){
$excost=50;
$woocommerce->cart->add_-fee('ακτα&εκτπωση(απλλμελνι)',$excost,$tax=false,$tax_-class='';
}
}
}
}

您需要使每个费用名称唯一

从:

$name-(string)required–费用的唯一名称无法添加多个同名费用。

这将是一种方法:

$woocommerce->cart->add_fee('Μακέτα & εκτύπωση (απλό μελάνι) ' . $i++, $excost, $taxable = false, $tax_class = '');

您需要使每个费用名称唯一

从:

$name-(string)required–费用的唯一名称无法添加多个同名费用。

这将是一种方法:

$woocommerce->cart->add_fee('Μακέτα & εκτύπωση (απλό μελάνι) ' . $i++, $excost, $taxable = false, $tax_class = '');