2015-10-18 73 views
0

我有两个功能,从购物车中删除项目。一个接受多个值,另一个接受一个值。remove_cart_item(),foreach工作,直接不

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 - 不会删除购物车物品。

我在generate_card_id之前记录了$ y和$ sub_remove,并且这些值的格式相同。

为什么第一个代码段关于第二个代码段工作?

+0

功能对我来说很好,你还可以添加你正在调用每个功能的参数吗? – sticksu

+0

我希望看到两种情况下$ ex的含义。 woomps_remove_subs($ ex)和woomps_remove_sub($ ex)。请粘贴,上面的代码看起来很好,所以我认为问题是你怎么称呼它。 – sticksu

+0

我不知道我是否完全理解......但: 我打电话给这样的第一个人:woomps_remove_subs($ ex); ChromePhp :: log(“subs:”。$ sub_remove);在函数执行后输出:subs:Array在foreach subs之后:222 woomps_remove_sub($ sub_remove); ChromePhp :: log(“sub:”。$ sub_remove);在函数执行后输出:sub:221 – robped

回答

-1

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

谢谢。