我希望 Woocommerce 只允许购物车中添加 1 个产品。如果购物车中已存在一种产品,并且添加了另一种产品,则应删除前一种产品。
我在网上找到了这段代码:
/**
* When an item is added to the cart, remove other products
*/
function custom_maybe_empty_cart( $valid, $product_id, $quantity ) {
if( ! empty ( WC()->cart->get_cart() ) && $valid ){
WC()->cart->empty_cart();
wc_add_notice( 'Only allowed 1 item in cart, please remove previous
item.', 'error' ); // here instead popup notice need to remove prevous added product
}
return $valid;
}
add_filter( 'woocommerce_add_to_cart_validation', 'custom_maybe_empty_cart',
10, 3 );
但似乎并没有按照我的意愿工作。它需要自动删除购物车中先前添加的产品,并添加购物车中最新添加的产品。有人可以告诉我需要在课堂上更新什么才能在最新的 woo 3.3.X 中工作吗?
这是更紧凑和实际的代码,如下所示global $woocommerce
不再需要:
add_filter( 'woocommerce_add_to_cart_validation', 'auto_empty_cart', 20, 3 );
function auto_empty_cart( $passed, $product_id, $quantity ) {
if( WC()->cart->is_empty() ) return $passed; // Exit
WC()->cart->empty_cart();
return $passed;
}
代码位于活动子主题(或活动主题)的 function.php 文件中。
自 2.6.x 以来已在所有 Woocommerce 版本中测试并运行
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)