Избегайте добавления в корзину на основе конкретного продукта в корзине на Woocommerce - PullRequest
0 голосов
/ 24 августа 2018

Из этого ответа: Максимальное количество товаров в корзине в зависимости от категории продукта в 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» находится в корзине, ограничения количества товаров в корзине вышеупомянутой категории НЕ должны применяться.

Может ли кто-нибудь дать совет относительно того, что еще мне следует попробовать?

Спасибо.

...