避免根据Woocommerce上购物车中的特定产品添加购物车

时间:2018-08-24 20:29:33

标签: php woocommerce cart product custom-taxonomy

从此答案: Max number of items in a cart based on product category in Woocommerce, 以下代码效果很好:

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;
}

我有2个问题:

  1. 当用户单击“添加到购物车”并且该操作使购物车中的物品总数超过了代码中设置的限制数量时,页面将重定向到该单个产品视图并显示错误消息。有没有办法让用户停留在同一页面上并显示错误消息?

  2. 我想不通的是,如果购物车中有特定产品,该如何编码该代码。我已经尝试过对项目($ in_cart)或尝试取消设置($ plugins [$ key])进行多种选择,但我承认我不知所措。

简而言之,如果购物车中有产品'123',则购物车中上述类别的产品数量限制不适用。

任何人都可以提供有关我还应该尝试什么的指南吗?

谢谢。

0 个答案:

没有答案