WooCommerce: как убрать обязательное поле телефона при оформлении заказа

Почему WooCommerce делает поле телефона обязательным?

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

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

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

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

Как убрать обязательность телефона через код

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

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

Этот код меняет параметр required на false, делая поле телефона необязательным.

Дополнительно: убрать звёздочку и текст ошибки

Если поле не обязательное, но вёрстка остаётся прежней, можно дополнительно убрать отмеченный CSS класс:

add_filter('woocommerce_form_field_billing_phone', 'wpdo_remove_phone_required_html', 10, 4);
function wpdo_remove_phone_required_html($field, $key, $args, $value) {
    if (isset($args['required']) && !$args['required']) {
        $field = str_replace('required', '', $field);
        $field = str_replace('<abbr class="required" title="обязательно">*</abbr>', '', $field);
    }
    return $field;
}

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

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

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

  • Код не работает — поле остаётся обязательным: вероятно, тема или плагин переопределяют поля позже, чем ваш фильтр. Попробуйте увеличить приоритет фильтра, например, add_filter(..., 99).
  • Ошибка с валидацией JavaScript: некоторые темы используют собственный JS для проверки полей. Проверьте консоль браузера и отключите скрипты, если нужно.
  • Телефон всё равно сохраняется как обязательный в базе: убедитесь, что в REST API или сторонних интеграциях не накладывается ограничение.

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

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

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

МетодПлюсыМинусы
Через фильтр woocommerce_billing_fieldsПростой, не требует плагинов, гибкийМожет конфликтовать с темой/плагинами
Использование плагинов для кастомизации CheckoutУдобный UI, дополнительные функцииДополнительная нагрузка, может быть платным
Изменение шаблонов WooCommerceПолный контроль над формойСложнее в поддержке, требует обновления шаблонов
Как создать настройку для оптимизации базы данных WordPress
19.02.2026
WooCommerce: Как изменить страницу «Спасибо» после оформления заказа
16.06.2026
WooCommerce: не работает оплата через PayPal после обновления
18.04.2026
WooCommerce: как убрать обязательное поле телефона при оформлении заказа
06.06.2026
WooCommerce: отладка проблем с оплатой через QIWI после обновления
09.06.2026