СДЕЛАЙТЕ «Купить 2 Получить 1 бесплатный». Проблема кода в WoocommercePhp

Кемеровские программисты php общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 СДЕЛАЙТЕ «Купить 2 Получить 1 бесплатный». Проблема кода в Woocommerce

Сообщение Anonymous »

Я пытаюсь создать код скидки для моего магазина WooCommerce, такого как купить 2 получить 1 бесплатно, купить 3 получить 2 бесплатно, купить 4 получить 3 бесплатно, купить 5 получить 4 бесплатно и т. Д. < Br /> Когда в корзине более 2 продуктов, если 3 -й добавленный продукт стоит дороже, чем другие, он не должен быть бесплатным. Более дешевый один из 2 продуктов должен быть бесплатным. Короче говоря, бесплатные продукты всегда должны быть самыми низкими продуктами. Сначала бросил ошибку в 19:09:03 на 2025-01-28 (14 минут назад). < /p>
Сообщение об ошибке: < /p>
Нео определенная клавиша массива "LINE_TOTAL" Ошибка произошла в строке 35 кода этого фрагмента (выделено ниже). < /p>
Ошибка была инициирована при следующем URL: < /p>
Вы Можно включить журнал ошибок, чтобы получить более подробную информацию об ошибке, которая вызвала это. < /p>
add_action('woocommerce_before_calculate_totals', 'frebeat_bogo_discount', 10, 1);
function frebeat_bogo_discount($cart) {
if (is_admin() && !defined('DOING_AJAX')) {
return;
}

$free_categories = ['non-exclusive-beats', 'exclusive-beats'];

$eligible_products = [];
foreach ($cart->get_cart() as $cart_item_key => $cart_item) {
foreach ($free_categories as $category) {
if (has_term($category, 'product_cat', $cart_item['product_id'])) {
$eligible_products[] = $cart_item;
break;
}
}
}

$eligible_count = count($eligible_products);

if ($eligible_count < 3) {
return;
}

$free_count = floor(($eligible_count - 1) / 2);

usort($eligible_products, function($a, $b) {
return $a['line_total'] $b['line_total'];
});

foreach ($eligible_products as $cart_item) {
if ($free_count set_price(0);
$free_count--;
}
}



Подробнее здесь: https://stackoverflow.com/questions/793 ... oocommerce
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Php»