我将此代码用于Virtuemart:
$product_id_to_remove = 3;
$cart = json_decode($_SESSION['__vm']['vmcart']);
foreach($cart->cartProductsData as $k => $v){
if($v->virtuemart_product_id == $product_id_to_remove) unset($cart->cartProductsData[$k]);
}
$_SESSION['__vm']['vmcart'] = json_encode($cart);
但是我得到致命的错误:不能使用stdClass类型的对象作为 ...行中的数组4.如果我在json_decode中添加true($ _ SESSION [' __ vm' ] [' vmcart'])我收到警告:为foreach()提供的参数无效。
如何解决问题?
P.S。我是php的初学者,根本不知道json_。代码由链接建议:stackoverflow.com/questions/28691203/how-to-remove-a-single-product-from-mod-virtuemart-cart
答案 0 :(得分:1)
$cart->cartProductsData
表现得像一个数组,但它实际上是一个对象
试试这个: 变化
unset($cart->cartProductsData[$k])
到
unset($cart->cartProductsData->$k)