Php 删除购物车项目(),foreach有效,direct无效

Php 删除购物车项目(),foreach有效,direct无效,php,woocommerce,Php,Woocommerce,我有两个从购物车中移除物品的功能。一个接受多个值,另一个只接受一个值 function woomps_remove_subs($sub_remove){ global $woocommerce; foreach($sub_remove as $x => $y) { $cart_item_key = WC()->cart->generate_cart_id($y); WC()->cart->remove_cart_ite

我有两个从购物车中移除物品的功能。一个接受多个值,另一个只接受一个值

function woomps_remove_subs($sub_remove){
    global $woocommerce;
    foreach($sub_remove as $x => $y) {
        $cart_item_key = WC()->cart->generate_cart_id($y);
        WC()->cart->remove_cart_item($cart_item_key);   
    }       
}

function woomps_remove_sub($sub_remove){
    global $woocommerce;
        $cart_item_key = WC()->cart->generate_cart_id($sub_remove);
        WC()->cart->remove_cart_item($cart_item_key);           
}
  • woomps_remove_subs-删除购物车项目
  • woomps_remove_sub-不删除购物车项目
在生成卡id之前,我记录了$y和$sub_移除,并且值的格式相同


为什么第一个代码段对第二个代码段有效?

PHP代码是正确的。这是我环境中的一个错误


谢谢。

我觉得这些函数很不错,您是否可以添加调用每个函数所用的参数?我想看看在这两种情况下,$ex的值是多少。woomps_remove_sub($ex)和woomps_remove_sub($ex)。请粘贴,上面的代码看起来不错,所以我想问题在于你怎么称呼它。我不知道我是否完全理解…但是:我这样称呼第一个:woomps\u remove\u subs($ex);ChromePhp::log(“subs:.$sub_remove”);函数执行输出之后:subs:Array和foreach subs:222 woomps\u remove\u sub($sub\u remove);ChromePhp::log(“sub:.$sub_remove”);在函数执行输出之后:sub:221当您调用woomps\u remove\u sub($ex)时,$ex是整数吗?如果不是,那就是它不起作用的原因。你是对的。那是一根绳子。我用以下代码将其转换为int:$sub_remove_int=intval($sub_remove);woomps_remove_sub($sub_remove_int);但它仍然没有删除。嗯。。。