Процентная скидка на доставку на основе суммы заказа в WooCommerce

Я пытаюсь найти способ через плагин или через functions.php, как снизить стоимость доставки только на 50%, если заказ составляет от 25 до 50 фунтов стерлингов.

Я использую Установите процентную скидку на способ доставки «Местный самовывоз» в Woocommerce, которая предусматривает скидки в зависимости от способа доставки, но я хочу, чтобы он делал скидку. все способы доставки, так как у нас их много, и нет правила для минимального заказа.


person Eagle Agency    schedule 26.06.2020    source источник


Ответы (1)


  • Вы можете использовать крючок woocommerce_package_rates

  • Это даст скидку на доставку на 50%, если заказ составляет от 25 до 50 фунтов стерлингов.

function filter_woocommerce_package_rates( $rates, $package ) {
    /* Settings */
    $min = 25;
    $max = 50;
    $discount_percent = 50;

    // Get cart total
    $cart_total = WC()->cart->cart_contents_total;

    // Condition
    if ( $cart_total >= $min && $cart_total <= $max ) {
        // (Multiple)
        foreach ( $rates as $rate_key => $rate ) {
            // Get rate cost            
            $cost = $rates[$rate_key]->cost;
            
            // Set rate cost
            $rates[$rate_key]->cost = $cost - ( ( $cost * $discount_percent ) / 100 );
        }
    }

    return $rates;
}
add_filter( 'woocommerce_package_rates', 'filter_woocommerce_package_rates', 10, 2 );
person 7uc1f3r    schedule 26.06.2020
comment
Идеально! Спасибо друг! - person Eagle Agency; 26.06.2020
comment
это совсем не сработало для меня - person FoamyMedia; 15.06.2021
comment
@FoamyMedia Это принятый ответ, поэтому будьте уверены, он сработает. Я проверил это снова и могу подтвердить, что он все еще работает. Допустим, это будет ваше незнание. - person 7uc1f3r; 15.06.2021