WPOrder

Как отключить ненужные способы доставки на странице оформления заказа

Если на странице оформления заказа покупателю показываются лишние способы доставки, это почти всегда мешает: человек видит варианты, которые не подходят по адресу, весу, складу или типу товара, и тратит время на лишний выбор. В WooCommerce такие ситуации обычно решаются не одной кнопкой, а настройкой зон доставки, методов доставки и условий их показа. Иногда достаточно убрать метод из зоны, иногда нужно ограничить его плагином или небольшим кодом.

Сначала полезно понять, что именно вы хотите скрыть. Одно дело — убрать курьерскую доставку для самовывоза. Другое — не показывать наложенный платеж для цифровых товаров или отключать бесплатную доставку, если заказ не дотягивает до нужной суммы. От этого зависит, где искать настройку: в WooCommerce, в плагине доставки, в платёжном модуле или в теме.

Что именно можно отключить в WooCommerce

В стандартном WooCommerce на checkout показываются не «случайные» варианты, а методы доставки, привязанные к зоне доставки и условиям корзины. Поэтому в первую очередь проверяют три вещи:

  • какие зоны доставки созданы;
  • какие методы доставки добавлены в каждую зону;
  • не добавляет ли дополнительные варианты плагин доставки или интеграция со службой доставки.

Если у вас магазин с физическими товарами, покупатель обычно должен видеть только те способы, которые реально доступны для его региона. Для цифровых товаров доставка часто вообще не нужна. Для смешанных корзин важно, чтобы доставка не навязывалась там, где она не имеет смысла.

Самый надёжный способ: настроить зоны доставки

В большинстве магазинов правильнее не «выключать» метод глобально, а ограничивать его зоной доставки. Тогда один и тот же способ может быть доступен, например, только для одного города или только для определённого региона.

Откройте WooCommerce → Настройки → Доставка. Если вкладка «Доставка» не видна, сначала убедитесь, что доставка включена в настройках магазина. Дальше проверьте зоны:

  1. Откройте нужную зону доставки.
  2. Посмотрите, какие методы в неё добавлены.
  3. Удалите лишний метод или оставьте только тот, который нужен в этой зоне.

Например, если в зоне «Москва» у вас должны быть курьер и самовывоз, а в зоне «Регионы» только транспортная компания, не нужно держать все методы в одной зоне и пытаться скрывать их на checkout вручную. Правильная настройка зон обычно решает проблему без кода.

После изменений проверьте корзину с адресом из нужного региона. WooCommerce подбирает зону по адресу покупателя, поэтому тестировать нужно не «вообще», а на конкретном адресе доставки.

Как убрать лишний способ доставки из конкретной зоны

Если способ доставки не должен показываться вообще, его можно удалить из зоны. Это самый простой вариант, когда метод не нужен ни при каких условиях. Внутри зоны нажмите на метод доставки и удалите его. После сохранения он перестанет появляться у покупателей, чьи адреса попадают в эту зону.

Такой подход удобен, если магазин небольшой и логика доставки простая. Но если у вас несколько складов, разные города или отдельные правила для крупногабаритных товаров, одной зоной дело обычно не ограничивается.

Есть важный нюанс: если метод добавлен не в ту зону, он может показываться там, где вы его не ожидали. Поэтому при лишних вариантах доставки сначала проверьте именно зоны, а не тему и не checkout-плагин.

Когда стандартных настроек WooCommerce недостаточно

Иногда нужно скрывать способ доставки не только по региону, но и по содержимому корзины, сумме заказа или типу товара. Например:

  • курьер не нужен для цифровых товаров;
  • самовывоз не показывается, если в корзине только товары со склада в другом городе;
  • бесплатная доставка доступна только от определённой суммы;
  • наложенный платеж отключается для дорогих заказов или отдельных категорий товаров.

В стандартном WooCommerce часть таких сценариев можно закрыть настройками зон и бесплатной доставки, но не все. Если логика зависит от категорий, тегов, атрибутов или состава корзины, обычно нужен плагин с условиями доставки либо кастомный код.

Здесь важно не смешивать задачи. Если способ доставки должен скрываться только для определённых товаров, проблема не в оплате и не в оформлении заказа как таковом, а в правилах показа доставки.

Как отключить способ доставки по условию через код

Код нужен не всегда, но он полезен, когда стандартных настроек и плагинов не хватает. Ниже пример для WooCommerce: он скрывает один конкретный способ доставки, если в корзине есть виртуальный товар. Такой подход подходит, когда доставка физически не нужна для части заказов.

Перед изменениями сделайте резервную копию и лучше проверьте решение на тестовом сайте или staging-окружении. Если код добавить с ошибкой, можно сломать оформление заказа.

add_filter( 'woocommerce_package_rates', function( $rates, $package ) {
    $has_virtual = false;

    foreach ( WC()->cart->get_cart() as $cart_item ) {
        if ( ! empty( $cart_item['data'] ) && $cart_item['data']->is_virtual() ) {
            $has_virtual = true;
            break;
        }
    }

    if ( $has_virtual ) {
        foreach ( $rates as $rate_id => $rate ) {
            if ( 'flat_rate:1' === $rate_id ) {
                unset( $rates[ $rate_id ] );
            }
        }
    }

    return $rates;
}, 10, 2 );

В этом примере flat_rate:1 — это ID конкретного способа доставки. У вас он может быть другим. Его нужно подставить из настроек WooCommerce. Если вы не уверены, какой именно метод скрывать, не копируйте код вслепую: сначала определите нужный rate ID.

Такой фильтр работает на уровне расчёта доступных тарифов. Это значит, что метод не просто скрывается визуально, а реально убирается из списка доступных вариантов на checkout.

Если способ доставки добавляет сторонний плагин

Многие магазины используют плагины служб доставки: СДЭК, Boxberry, Почта России, курьерские агрегаторы и другие сервисы. В этом случае лишний вариант может появляться не из WooCommerce, а из настроек самого плагина.

Что проверить:

  • есть ли у плагина собственные правила показа по городу, индексу, весу или стоимости;
  • не включён ли режим, при котором показываются все тарифы подряд;
  • не дублируются ли методы в нескольких зонах доставки;
  • не конфликтует ли плагин с кэшем, темой или другим модулем доставки.

Если после удаления метода в WooCommerce он всё равно появляется, почти наверняка источник — внешний плагин. Тогда искать настройку нужно в его интерфейсе, а не в общих настройках магазина.

Как проверить, что лишние способы действительно отключены

После настройки не ограничивайтесь одним тестом. Проверьте несколько сценариев, потому что доставка в WooCommerce может меняться в зависимости от адреса и состава корзины.

  • заказ с адресом из нужной зоны;
  • заказ с адресом из другой зоны;
  • корзина с физическим товаром;
  • корзина с цифровым товаром, если он есть в магазине;
  • заказ с разной суммой, если доставка зависит от порога;
  • оформление с компьютера и с телефона.

На мобильном устройстве лишние способы особенно заметны: длинный список доставки делает checkout тяжелее, а покупатель чаще ошибается при выборе. Если вы убрали ненужные варианты, форма становится короче и понятнее, а риск случайного выбора неправильного метода ниже.

Когда лучше не скрывать, а переименовать или перестроить логику

Иногда проблема не в том, что способ доставки лишний, а в том, что он назван непонятно. Например, «Тариф 1» или «Доставка по договорённости» на checkout выглядит как ошибка. В таких случаях не всегда нужно отключать метод: иногда достаточно переименовать его или разделить на более понятные варианты.

Если у вас несколько сценариев доставки, удобнее строить их по логике покупателя: самовывоз, курьер по городу, доставка транспортной компанией, цифровая доставка без физической отправки. Такой подход особенно полезен в магазинах с большим каталогом и повторными заказами, где клиенту важно быстро узнать, что именно ему доступно.

Если вы только выбираете тему для магазина и хотите, чтобы корзина и оформление заказа были проще для покупателя, посмотрите WPShop Bono: https://wpshop.ru/themes/bono. Для WooCommerce-темы важно не только как выглядит каталог, но и как читается checkout, где покупатель выбирает доставку и не путается в лишних вариантах.

Если коротко: сначала проверьте зоны доставки в WooCommerce, затем настройки плагина доставки, и только потом переходите к коду. В большинстве магазинов этого достаточно, чтобы убрать ненужные способы доставки на странице оформления заказа и сделать выбор понятнее для покупателя.

×

AI-плагин

WPGPT
Сам создает статьи для вашего сайта WordPress

SEO и мета-теги

Парсинг конкурентов

Изображения

Комментарии

Подробнее