Скрыть особенности Плоские тарифы, когда бесплатная доставка доступна в WooCommerce 3

В WooCommerce 3 у меня есть эти параметры доставки (настройки):

  1. Бесплатная доставка: free_shipping:1 – Минимальная сумма заказа установлена ​​в $50 .
  2. Нормальная доставка flat_rate:3 – Amount $5 .
  3. Экспресс-доставка flat_rate:5 – сумма $10 .

Я бы хотел, чтобы опция « Экспресс-доставка» всегда была доступна (показана).

Но когда доступна бесплатная доставка (это означает, что у клиента больше, чем 50 долларов в корзине), я хотел бы скрыть только « Обычную доставку» .

Поэтому, когда Free shipping НЕ доступна (и скрыта), доступные тарифы доставки будут обычной доставкой и экспресс-доставкой.

Это возможно? Как я могу получить это на WooCommerce 3?

Solutions Collecting From Web of "Скрыть особенности Плоские тарифы, когда бесплатная доставка доступна в WooCommerce 3"

Основываясь на официальном коде кода WooCommerce , делая некоторые легкие изменения, вы сможете скрыть только свою первую фиксированную ставку, когда доступны бесплатные отгрузки:

 add_filter( 'woocommerce_package_rates', 'conditionally_hide_shipping_methods', 100, 2 ); function conditionally_hide_shipping_methods( $rates, $package ) { // HERE yours 2nd flat rate "Express Shipping" (that you never hide) in the array: $flat_rates_express = array( 'flat_rate:5', 'flat_rate:12', 'flat_rate:14' ); $free = $flat2 = array(); foreach ( $rates as $rate_key => $rate ) { // Updated Here To if ( in_array( $rate->id, $flat_rates_express ) ) $flat2[ $rate_key ] = $rate; if ( 'free_shipping' === $rate->method_id ) $free[ $rate_key ] = $rate; } return ! empty( $free ) ? array_merge( $free, $flat2 ) : $rates; } 

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

Протестировано на WooCommerce 3 и работает.

Обновите кеши для доставки:
1) Сначала пустую корзину.
2) Этот код уже сохранен в файле function.php.
3) Зайдите в настройки зоны доставки и отключите одну «фиксированную ставку» (например) и «сохранить». Затем снова включите эту «фиксированную скорость» и «сохранить». Вы закончили, и вы можете проверить его.