我有一个场景,在这个场景中,未登录的用户只能在他的购物车中添加一个产品。我在woocommerce_add_to_cart_validation
上添加了一个过滤器,它与$woocommerce->cart->cart_contents_count>0
配合使用很好,即它显示一个通知You cannot add another product to your cart.0
。但是,如果我执行$woocommerce->cart->cart_contents_count>1
,页面只会刷新,而不会向购物车中添加任何内容。下面是我的自定义函数。
if(!is_user_logged_in()):
add_filter( 'woocommerce_add_to_cart_validation', 'woocommerce_add_cart_myfunction' );
function woocommerce_add_cart_myfunction( $cart_item_data ) {
global $woocommerce;
$numberOfProducts=$woocommerce->cart->cart_contents_count;
if($numberOfProducts > 1){
wc_add_notice(
__( 'You cannot add another product to your cart.'.$numberOfProducts, 'woocommerce' ));
return false;
}
}
endif;
如果产品数量只有1:,则需要返回购物车项目数据
function woocommerce_add_cart_myfunction( $cart_item_data ) {
$numberOfProducts = WC()->cart->cart_contents_count;
if ( $numberOfProducts > 1 ) {
wc_add_notice(
__( 'You cannot add another product to your cart.'.$numberOfProducts, 'woocommerce' ));
return false;
}
return $cart_item_data;
}