Php 避免基于Woocommerce购物车中的特定产品添加到购物车

Php 避免基于Woocommerce购物车中的特定产品添加到购物车,php,woocommerce,cart,product,custom-taxonomy,Php,Woocommerce,Cart,Product,Custom Taxonomy,从这个答案中: , 以下代码运行良好: add_filter( 'woocommerce_add_to_cart_validation', 'only_four_items_allowed_add_to_cart', 10, 3 ); function only_four_items_allowed_add_to_cart( $passed, $product_id, $quantity ) { $cart_count = WC()->cart->get_cart_cont

从这个答案中: , 以下代码运行良好:

add_filter( 'woocommerce_add_to_cart_validation', 'only_four_items_allowed_add_to_cart', 10, 3 );
function only_four_items_allowed_add_to_cart( $passed, $product_id, $quantity ) {
    $cart_count = WC()->cart->get_cart_contents_count();
    $total_count = $cart_count + $quantity;

    if ( has_term( 'quantity4','product_cat',$product_id ) && ( $cart_count >= 4 || $total_count > 4 ) ) {
        $passed = false; // Set to false
        $notice = __( "You Chose a Box of 4 Items, Can't Add More", "woocommerce" ); // Notice to display
    }
    elseif ( has_term( 'quantity6','product_cat',$product_id ) && ( $cart_count >= 6 || $total_count > 6 ) ) {
        $passed = false; // Set to false
        $notice = __( "You Chose a Box of 6 Items, Can't Add More", "woocommerce" ); // Notice to display
    }
    if( ! $passed )
        wc_add_notice( $notice, 'error' );

    return $passed;
}
我有两个问题:

  • 当用户单击“添加到购物车”并且该操作使购物车中的项目总数超过代码中设置的限制金额时,页面将重定向到该单一产品视图并显示错误消息。有没有办法让用户保持在同一页面上并显示错误消息

  • 我不明白的是,如果购物车中有特定的产品,如何绕过该代码。我尝试了几种不同的选项(在购物车中)或试图取消设置(插件[$key]),但我承认我有点不知所措

  • 简单地说,如果购物车中有产品“123”,则购物车中的上述类别产品数量限制不应适用

    有没有人能给我提供指导,告诉我还应该尝试什么


    谢谢。

    我很抱歉。我已经编辑了,希望能让它更清楚。在本例中,“添加到购物车”按钮位于页面上的woo product表中,这可能就是重定向到单产品视图的原因。我将直接在一个产品上进行测试,看看那里发生了什么。谢谢。关于第一点,我认为这不可能以简单的方式实现。。。。对于第2点)检查答案:在直接在商店存档页面上进行测试时,当单击“添加到购物车”按钮时(如果购物车数量超过允许的总数),它会指向单个产品(并显示错误消息),也会发生同样的情况。谢谢。使用ajax添加到购物车(在档案页面上作为商店)没有其他方法。。。如果没有,您需要禁用ajax添加到购物车。感谢您的帮助。我理解第1项的限制。我将回顾您在第2项中引用的其他答案。