删除购物车中的产品,如果在Woocommerce中添加了相同的产品



如果添加新产品,有清空购物车的方法。

function wdm_empty_cart( $cart_item_data, $product_id, $variation_id ) 
{ 
global $woocommerce;
$woocommerce->cart->empty_cart();
}

但是我想要的只是如果你添加相同的乘积。所以添加if ( $in_cart )完成了这项工作,但我也不想清空整个购物车。

只想删除之前添加的相同产品,保留其他产品。

我的意思是覆盖。

您可以使用woocommerce_add_to_cart_validation动作挂钩并检查购物车中已经存在的产品。代码将放在您的活动主题函数。php文件中。

add_filter('woocommerce_add_to_cart_validation', 'remove_cart_item_before_add_to_cart', 1, 3);
function remove_cart_item_before_add_to_cart($passed, $product_id, $quantity) {

$already_in_cart = false;

foreach( WC()->cart->get_cart() as $key => $item ){
// Check if the item is already is in cart.
if( $item['product_id'] == $product_id ){
$already_in_cart = true;
$existing_product_key = $key;
break;
}
}
if( $already_in_cart  ){
WC()->cart->remove_cart_item($existing_product_key);
}

return $passed;
}

相关内容

  • 没有找到相关文章

最新更新