Ограничение по продукту на основе категории

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

Количество товаров в 2 категориях (CatA & CatB),
CatA имеет ниже продукты
P1, P2, P3, P4, P5
CatB имеет ниже продукты,
Q1, Q2, Q3, Q4, Q5
Мне нужно ограничить условия ниже.
Если клиент покупает у CatA, только 1 товар из CatA Не нужно добавлять никакой другой продукт из этой категории, но клиент может добавить «N”Количество продуктов из CatB,

Например,
Я покупатель, я хочу купить товар у CatA т.е. P1 и добавил то же самое. теперь, когда я выбираю P2 ошибка должна отображаться и продукт P2 не должны быть добавлены в корзину. но если я хочу добавить Q1 или же Q2 с P1 Я могу добавить то же самое.

Это возможно.

Я пытался использовать другие плагины, но это не сработало Минимальное и максимальное количество Woocommerce и Минимальное и максимальное количество Woocommerce

Также пытался с кодом,

add_action( 'woocommerce_check_cart_items', 'check_total' );
function check_total() {
// Only run in the Cart or Checkout pages
if( is_cart() || is_checkout() ) {

global $woocommerce, $product;

$total_quantity = 0;
$display_notice = 1;
$i = 0;
//loop through all cart products
foreach ( $woocommerce->cart->cart_contents as $product ) {

// See if any product is from the cuvees category or not
if ( has_term( 'category-1', 'product_cat', $product['product_id'] )) {
$total_quantity += $product['quantity'];
}

}
// Set up the acceptable totals and loop through them so we don't have an ugly if statement below.
$acceptable_totals = array(1);

0

Решение

Простой способ будет:

Установите переменную с именем $ flag = false;

Когда продукт CAT A добавляется в корзину или переменную, вы устанавливаете переменную

$flag = true; //This means same type of product cannot be added.

Таким образом, внутри foreach цикл вы можете проверить $flag когда CAT A Тип продукта существует.

0

Другие решения

@AftabHusain и @RohanKumarShrestha
Вы утверждаете, как показано ниже.

    add_action( 'woocommerce_check_cart_items', 'check_total' );
function check_total() {
// Only run in the Cart or Checkout pages
if( is_cart() || is_checkout() ) {
global $woocommerce, $product;
$total_quantity = 0;
$display_notice = 1;
$i = 0;//loop through all cart products
foreach ( $woocommerce->cart->cart_contents as $product  $flag = true; //This means same type of product cannot be added. ) {

// See if any product is from the cuvees category or not
if ( has_term( 'CatA', 'product_cat', $product['product_id'] )) {
$total_quantity += $product['1'];
}

}
// Set up the acceptable totals and loop through them so we don't have an ugly if statement below.
$acceptable_totals = array(1);

Как это вы говорите?

0

По вопросам рекламы [email protected]