Из этого ответа: Максимальное количество товаров в корзине в зависимости от категории продукта в 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 вопроса:
Когда пользователь нажимает «добавить в корзину», и это действие приводит к тому, что общее количество товаров в корзине превышает предельное количество, установленное в коде, страница перенаправляется на этот отдельный вид продукта и отображаетсообщение об ошибке.Есть ли способ вместо этого удерживать пользователя на той же странице и отображать сообщение об ошибке?
Что я не могу понять, так это как обойти этот код, если конкретный продукт находится вКорзина.Я пробовал несколько разных опций для предметов ($ in_cart) или пытался сбросить ($ plugins [$ key]), но признаюсь, что был над моей головой.
Проще говоря,Если продукт «123» находится в корзине, ограничения количества товаров в корзине вышеупомянутой категории НЕ должны применяться.
Может ли кто-нибудь дать совет относительно того, что еще мне следует попробовать?
Спасибо.