WooCommerce: как отключить обязательное поле адреса доставки при оформлении заказа

Диагностика: почему WooCommerce требует адрес доставки

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

Проверьте в WooCommerce > Настройки > Доставка, включена ли зона доставки и активированы ли методы доставки. Если доставка отключена, но поле адреса все равно отображается, значит, тема или плагин добавляют его вручную.

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

1. Отключение поля через фильтр checkout_fields

Самый безопасный и рекомендуемый способ — использовать хук woocommerce_checkout_fields, чтобы изменить параметры поля и убрать обязательность.

add_filter('woocommerce_checkout_fields', 'wpdo_remove_required_shipping_fields');
function wpdo_remove_required_shipping_fields($fields) {
    if (isset($fields['shipping']['shipping_address_1'])) {
        $fields['shipping']['shipping_address_1']['required'] = false;
    }
    if (isset($fields['shipping']['shipping_address_2'])) {
        $fields['shipping']['shipping_address_2']['required'] = false;
    }
    if (isset($fields['shipping']['shipping_city'])) {
        $fields['shipping']['shipping_city']['required'] = false;
    }
    if (isset($fields['shipping']['shipping_postcode'])) {
        $fields['shipping']['shipping_postcode']['required'] = false;
    }
    if (isset($fields['shipping']['shipping_state'])) {
        $fields['shipping']['shipping_state']['required'] = false;
    }
    return $fields;
}

Этот код нужно добавить в файл functions.php вашей дочерней темы или в кастомный плагин.

2. Удаление блока адреса доставки из формы

Если нужно полностью убрать раздел доставки (не только сделать поля необязательными), можно удалить блок с помощью фильтра woocommerce_cart_needs_shipping_address:

add_filter('woocommerce_cart_needs_shipping_address', '__return_false');

Это отключит отображение формы адреса доставки полностью.

Проверка результата после внедрения

  • Откройте страницу оформления заказа (checkout).
  • Если вы сделали поля необязательными, попробуйте оформить заказ без заполнения адреса доставки — он должен пройти успешно.
  • Если вы удалили блок адреса доставки, он должен полностью отсутствовать на странице.
  • Проверьте, что доставка не активна для выбранных товаров (цифровые или виртуальные), иначе WooCommerce может вернуть поле обратно.

Частые ошибки и как их исправить

  • Поле адреса доставки не исчезает или остается обязательным: Скорее всего, тема или другой плагин переопределяет стандартные хуки. Проверьте конфликт, временно переключитесь на стандартную тему (например, Twenty Twenty-Three) и отключите все плагины кроме WooCommerce.
  • После удаления поля доставка перестает работать корректно: Убедитесь, что для товаров не задан тип «выполняемый» (virtual), если адрес все же нужен. Для цифровых товаров активируйте флаг virtual в настройках товара.
  • Ошибки валидации при оформлении заказа: Проверьте, что в коде нет опечаток и что фильтры подключены правильно. Используйте отладку и включите WP_DEBUG для выявления ошибок.

Практические советы по оптимизации и безопасности

  • Не удаляйте поля адреса доставки полностью, если ваш магазин продает физические товары — это может привести к ошибкам доставки и возвратам.
  • Если используете сторонние плагины для доставки, проверьте их совместимость с вашими изменениями.
  • Для комплексного контроля оформления заказа рассмотрите использование плагинов, например, Clearfy Pro, которые позволяют гибко настраивать чек-аут.

Чек-лист для отключения обязательного поля адреса доставки

  1. Проверьте, что доставка отключена в настройках WooCommerce.
  2. Добавьте фильтр для снятия обязательности полей shipping_address_1 и других.
  3. Если нужно, полностью удалите форму адреса с помощью woocommerce_cart_needs_shipping_address.
  4. Проверьте оформление заказа без заполнения адреса.
  5. Тестируйте на стандартной теме для исключения конфликтов.
  6. Обратите внимание на совместимость с плагинами доставки.

Сравнение вариантов отключения обязательного адреса доставки

МетодОписаниеПлюсыМинусы
Изменение обязательности полейОставить поля, но сделать их необязательными через woocommerce_checkout_fieldsСохраняется форма, минимальное вмешательство, совместим с большинством темПоля все еще видны, может запутать пользователя
Полное удаление формы адресаФильтр woocommerce_cart_needs_shipping_address отключает форму доставкиУбирает визуально, удобно для цифровых товаровМожет сломать доставку для физических товаров, требует тестирования
Как удалить Emoji из WordPress для ускорения сайта
11.03.2026
Как изменить вывод CSS-классов в меню WordPress
12.11.2025
WooCommerce: отладка проблем с отправкой писем после оформления заказа
13.06.2026
Как создать свой виджет для WordPress
25.11.2025
Как автоматически удалять старые черные списки комментариев в WordPress
28.03.2026