WooCommerce — купите 10, получите 3 бесплатно — только самые дешевые 3 бесплатныPhp

Кемеровские программисты php общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 WooCommerce — купите 10, получите 3 бесплатно — только самые дешевые 3 бесплатны

Сообщение Anonymous »

В настоящее время у меня есть клиент, который продает краску для разметки линий, и ему нужно предложение на своем сайте, которое работает следующим образом:

Если клиент покупает 10 + краски (они могут смешивать и сочетать), они получат 3 бесплатно, но только самые дешевые 3, бесплатно...

Пример приведен ниже:

Пример:

p>
  • Купите 10 из x (99,99 фунтов стерлингов), 1 из y (20,99 фунтов стерлингов) и 2 из z (30,99 фунтов стерлингов). Клиент должен получить 3 самых дешевых товара бесплатно, поэтому в этом сценарии он должен получить бесплатно и z, и y...
  • Купить 14 из x (99,99 фунтов стерлингов), 2 из y (фунтов стерлингов) 20.00) и 2 из z (30,99 фунтов стерлингов). В этом сценарии клиент должен получить оба y бесплатно и один из z...
Я изо всех сил пытаюсь добиться этого в WooCommerce, несмотря на то, что я пытался дольше, чем хотелось бы признать!!!

Надеюсь, сказанное выше имеет смысл!

Будем очень признательны за любую помощь или указания!

РЕДАКТИРОВАТЬ:

Код, который у меня есть до сих пор: ниже. Он возвращает массив самых дешевых товаров в корзине по порядку и с указанием их количества. Проблема в том, что мне нужно применить скидку только к трем товарам, поэтому, если количество первого товара в массиве равно только двум, мне также нужно применить ее ко второму самому дешевому товару... и так далее... < /p>

function get_cheapest_x_products_in_cart($cat_id)
{

global $woocommerce;
$cat_products = [];
$cheapest_products;

// Add all cart items with correct category to array ($cat_products)
foreach( WC()->cart->get_cart() as $cart_item ) {
if( has_term( $cat_id, 'product_cat', $cart_item['product_id'])) {
$product = wc_get_product( $cart_item['product_id'] );
$price = $product->get_regular_price();
$cat_products[
$cart_item['product_id'] ] = [
'price' => floatval($price),
'quantity' => $cart_item['quantity'],
];
}
}

uasort($cat_products, "sort_this");

$cheapest_three_products = array_slice($cat_products, 0, 3, true);
return $cheapest_three_products;

}


Подробнее здесь: https://stackoverflow.com/questions/467 ... 3-are-free
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

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

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