如何从mod_virtuemart_cart中删除单个产品

时间:2015-02-24 08:35:01

标签: php joomla joomla3.0 joomla-extensions virtuemart

我通过Virtuemart Projectleader的链接http://forum.virtuemart.net/index.php?topic=127483.0找到了解决方案:

if (!class_exists('VirtueMartCart')) require(VMPATH_SITE . DS . 'helpers' . DS . 'cart.php');
$cart = VirtueMartCart::getCart();
$cart->removeProductCart($yourId);

但它不起作用。我尝试用DIRECTORY_SEPARATOR替换DS,因为我使用Joomla 3.x但没有改变

同时$ cart-> emptyCart()有效

Joomla 3.3.6,VM 3.0.3

1 个答案:

答案 0 :(得分:2)

这是我的解决方案

function removeProductFromCart($product_id_to_remove){
    $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);
}