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

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

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

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

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

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

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

1. Удаление обязательности поля почтового индекса

Добавьте следующий код в файл functions.php вашей дочерней темы или используйте плагин для пользовательских сниппетов:

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

add_filter('woocommerce_shipping_fields', 'wpdo_remove_postcode_required_shipping', 20, 1);
function wpdo_remove_postcode_required_shipping($fields) {
    if (isset($fields['shipping_postcode'])) {
        $fields['shipping_postcode']['required'] = false;
    }
    return $fields;
}

Этот код снимает обязательность с почтового индекса как для адреса оплаты, так и доставки.

2. Скрытие поля почтового индекса из формы оформления заказа

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

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

add_filter('woocommerce_shipping_fields', 'wpdo_hide_shipping_postcode', 20, 1);
function wpdo_hide_shipping_postcode($fields) {
    if (isset($fields['shipping_postcode'])) {
        unset($fields['shipping_postcode']);
    }
    return $fields;
}

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

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

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

1. Поле продолжает быть обязательным

  • Причина: кеширование страницы оформления заказа. Очистите кеш сайта и браузера.
  • Причина: конфликт с плагинами, которые переопределяют поля. Отключите по очереди плагины, связанные с оформлением заказа.

2. Ошибки при отправке заказа после удаления поля

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

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

  • Изменение полей формы не должно влиять на валидацию на стороне сервера. Всегда проверяйте, что сервер не отклоняет запросы из-за отсутствия обязательных данных.
  • Не используйте большие сторонние плагины ради простой модификации полей — лучше код в functions.php или сниппеты.
  • Если у вас много кастомизаций оформления заказа, оформите их в отдельный плагин, чтобы не потерять при смене темы.

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

МетодПреимуществаНедостатки
Снятие обязательности (set required=false)Простое решение, не ломает логику WooCommerceПоле остаётся на форме, может путать пользователя
Полное удаление (unset поле)Чистый интерфейс, меньше данных для пользователяВозможны конфликты с плагинами/темами, которые ожидают поле
Использование плагинов для кастомизации полей (например, Checkout Field Editor)Удобный UI без кодаДополнительная нагрузка, может конфликтовать
WooCommerce: как удалить обязательное поле email при оформлении заказа
20.07.2026
Как удалить Emoji из WordPress для ускорения сайта
11.03.2026
Как создать адаптивный блок с видео в WordPress с помощью OmniVideo
22.01.2026
Как использовать WPCommunity для создания внутреннего комьюнити в WordPress
05.03.2026
Как создать свой плагин WordPress с названием wpdo
01.11.2025