在woommerce_ad_to_cart_validation上的add_filter()之后,未在购物车中添加产品


Product not adding in cart after add_filter() on woocommerce_add_to_cart_validation

我有一个场景,在这个场景中,未登录的用户只能在他的购物车中添加一个产品。我在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;
}