Базовая скидка на количество тележек WooCommerce

Как в WooCommerce установить скидку для корзины на основе общего количества товаров в корзине?

Например:

  • От 1 до 4 позиций - без скидки
  • От 5 до 10 позиций - 5%
  • От 11 до 15 позиций - 10%
  • От 16 до 20 позиций - 15%
  • С 21 по 25 шт - 20%
  • От 26 до 30 позиций - 25%

Я поискал в Интернете, но не нашел ни одного решения или доступных плагинов.

Спасибо.


person Fiona Tan    schedule 01.07.2017    source источник


Ответы (1)


Вы можете использовать отрицательную комиссию за корзину, чтобы получить скидку. Затем вы добавите свои условия и вычисления в пользовательскую функцию, подключенную к хуку действия woocommerce_cart_calculate_fees, следующим образом:

## Tested and works on WooCommerce 2.6.x and 3.0+
add_action( 'woocommerce_cart_calculate_fees','wc_cart_quantity_discount', 10, 1 );
function wc_cart_quantity_discount( $cart_object ) {
    if ( is_admin() && ! defined( 'DOING_AJAX' ) )
        return;

    ## -------------- DEFINIG VARIABLES ------------- ##
    $discount = 0;
    $cart_item_count = $cart_object->get_cart_contents_count();
    $cart_total_excl_tax = $cart_object->subtotal_ex_tax;

    ## ----------- CONDITIONAL PERCENTAGE ----------- ##
    if( $cart_item_count <= 4 )
        $percent = 0;
    elseif( $cart_item_count >= 5 && $cart_item_count <= 10 )
        $percent = 5;
    elseif( $cart_item_count > 10 && $cart_item_count <= 15 )
        $percent = 10;
    elseif( $cart_item_count > 15 && $cart_item_count <= 20 )
        $percent = 15;
    elseif( $cart_item_count > 20 && $cart_item_count <= 25 )
        $percent = 20;
    elseif( $cart_item_count > 25 )
        $percent = 25;


    ## ------------------ CALCULATION ---------------- ##
    $discount -= ($cart_total_excl_tax / 100) * $percent;

    ## ----  APPLYING CALCULATED DISCOUNT TAXABLE ---- ##
    if( $percent > 0 )
        $cart_object->add_fee( __( "Quantity discount $percent%", "woocommerce" ), $discount, true);
}

Код находится в файле function.php вашей активной дочерней темы (или темы) или также в любом файле плагина.

Протестировано и работает на WooCommerce 2.6.x и 3.0+.

person LoicTheAztec    schedule 01.07.2017
comment
Приведенный выше код, который мне нужно назначить для определенной категории, возможен? - person Saravana; 16.04.2018
comment
@Sharvan Да, это возможно ... Вы также можете просмотреть эту связанную тему - person LoicTheAztec; 17.04.2018
comment
скидку, которую мы можем добавить на странице сведений о продукте вместо страницы корзины? - person Saravana; 17.04.2018
comment
@Sharvan Нет, это глобальная скидка на корзину… - person LoicTheAztec; 17.04.2018
comment
@Giuls Я тестировал это, и это полная скидка. Как нам установить скидку только на эти дополнительные предметы, а не на все? - person HoseinIT; 29.10.2018