Woocommerce скидка на второй товар, когда нет в продаже товаров в корзине - PullRequest
0 голосов
/ 25 декабря 2018

Теперь у меня есть следующая скидка Woocommerce: 1) на один товар -> 10% только для не продаваемых товаров 2) на два товара 20% для самого дешевого товара, включая товары в продаже

Я пробовалиспользуйте Скидка в корзине на основе количества товаров в корзине и только для товаров, которых нет в продаже и Скидка в корзине на продукт, который дешевле в Woocommerce код ответа.

Как можноЯ добавляю 10% скидку, когда у меня есть два предмета, ко второму предмету?

Как добавить скидку только на не продаваемые товары, если у меня есть две вещи, ко второй вещи?

1 Ответ

0 голосов
/ 25 декабря 2018

Следующее сделает скидку 10% на 2-й товар, если в корзине нет товаров на продажу:

add_action('woocommerce_cart_calculate_fees' , 'custom_2nd_item_discount', 10, 1);
function custom_2nd_item_discount( $cart ){

    if ( is_admin() && ! defined( 'DOING_AJAX' ) )
        return;

    // Only for 2 items or more
    if ( $cart->get_cart_contents_count() < 2 )
        return;

    // Initialising variable
    $has_on_sale = false;
    $count_items = $discount = 0;
    $percentage  = 10; // 10 %

    // Iterating through each item in cart
    foreach( $cart->get_cart() as $cart_item ){
        $count_items++;
        if( $cart_item['data']->is_on_sale() ){
            $has_on_sale = true;
        }
        if( 2 == $count_items ){
            $discount = wc_get_price_excluding_tax( $cart_item['data'] ) * $percentage / 100;
        }
    }

    // Apply discount to 2nd item for non on sale items in cart
    if( ! $has_on_sale && $discount > 0 )
        $cart->add_fee( sprintf( __("2nd item %s%% Discount"), $percentage), -$discount );
}

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...