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

Диагностика проблемы: почему поле почтового индекса обязательно

По умолчанию WooCommerce требует заполнение поля «Почтовый индекс» в адресных формах на странице оформления заказа. Это связано с необходимостью корректного расчёта стоимости доставки и проверки валидности адреса. Однако в ряде случаев, особенно при виртуальных товарах или доставке без адреса, это поле можно сделать необязательным или полностью скрыть. Если попытаться просто убрать поле через CSS, это не снимет требование заполнения, и форма выдаст ошибку.

Пошаговое решение: удаляем обязательность поля почтового индекса

1. Отключаем валидацию поля почтового индекса

Для этого нужно использовать фильтр woocommerce_billing_fields или woocommerce_shipping_fields, если у вас есть отдельная форма для адреса доставки. В примере ниже мы убираем обязательность в поле «billing_postcode».

add_filter('woocommerce_billing_fields', 'wpdo_remove_postcode_required', 20, 1);
function wpdo_remove_postcode_required($fields) {
    if (isset($fields['billing_postcode'])) {
        $fields['billing_postcode']['required'] = false;
    }
    return $fields;
}

2. (Опционально) Скрываем поле почтового индекса из формы

Если вы хотите полностью убрать поле с формы, можно добавить фильтр, который удалит поле из массива.

add_filter('woocommerce_billing_fields', 'wpdo_remove_postcode_field', 20, 1);
function wpdo_remove_postcode_field($fields) {
    unset($fields['billing_postcode']);
    return $fields;
}

Для доставки (shipping) замените woocommerce_billing_fields на woocommerce_shipping_fields.

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

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

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

  • Ошибка «Пожалуйста, введите почтовый индекс» при отправке формы: значит, поле всё ещё обязательное. Проверьте приоритеты фильтров и правильность хука (woocommerce_billing_fields vs woocommerce_shipping_fields).
  • Удаление поля вызывает проблемы с расчетом доставки или налогов: убедитесь, что у вас нет плагинов, которые жёстко требуют почтовый индекс. В таком случае лучше оставить поле, но сделать его необязательным.
  • Поле отображается, но не сохраняется: проверьте, не перезаписывает ли тему или другой плагин поля в checkout.

Практические советы по безопасности и производительности

  • Не удаляйте поле, если используете интеграции с доставкой, которые зависят от почтового индекса — это может привести к неправильным расчетам.
  • Используйте дочерние темы или плагины для добавления кода, чтобы при обновлении WooCommerce изменения не пропали.
  • Проверяйте работу checkout на разных устройствах и браузерах после внесения изменений.

Сравнение вариантов решения

МетодПреимуществаНедостаткиКогда использовать
Отключить обязательность поля (изменить required = false)Поле остается, пользователи могут заполнить по желанию, минимальный риск для плагинов доставкиПоле все еще отображается, может вызывать вопросы у пользователейЕсли нужны данные, но не обязательные
Удалить поле полностью из формыЧистый интерфейс, нет поля, которое нужно игнорироватьРиск нарушить работу доставки или интеграций, если поле требуетсяДля цифровых товаров, или когда адрес не нужен
Скрыть поле через CSSПросто и быстроПоле остается обязательным, ошибка при отправке формыНе рекомендуется
Как удалить скрипты и стили в WordPress для оптимизации загрузки
26.02.2026
Как удалить категорию из URL в WordPress
22.02.2026
Как создать автопостинг в WordPress через REST API с примерами кода
03.01.2026
WooCommerce: отладка проблем с оплатой через Яндекс.Кассу
13.05.2026
WooCommerce: как убрать обязательное поле телефона при оформлении заказа
06.06.2026