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

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

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

Чтобы проверить, что именно поле «Телефон» активно и обязательно, откройте страницу оформления заказа и обратите внимание на форму «Billing phone» (платёжный телефон). Если рядом с полем стоит звёздочка, значит оно обязательное.

Как убрать обязательность поля телефона в WooCommerce

Пошаговое решение через functions.php

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

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

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

Удаление поля телефона из формы (если нужно)

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

add_filter('woocommerce_checkout_fields', 'wpdo_unset_phone_field');
function wpdo_unset_phone_field($fields) {
    unset($fields['billing']['billing_phone']);
    return $fields;
}

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

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

  • Очистите кеш браузера и кеш сайта, если он есть.
  • Зайдите на страницу оформления заказа в режиме инкогнито.
  • Проверьте, что поле «Телефон» либо не содержит звёздочки обязательности, либо отсутствует.
  • Попробуйте оформить заказ без указания телефона — заказ должен успешно пройти.

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

  • Код не сработал или поле осталось обязательным. Проверьте, что код добавлен в правильный файл и что нет конфликтов с другими плагинами, которые могут переопределять поля оформления заказа.
  • После удаления поля телефон не передаётся в интеграции с курьером или оплатой. Убедитесь, что используемые сервисы не требуют телефон, иначе могут возникнуть ошибки при оформлении заказа.
  • Код добавлен в родительскую тему и пропадает после обновления. Используйте дочернюю тему или отдельный плагин для кастомного кода.
  • Ошибки синтаксиса PHP. Проверьте код через онлайн-парсер или IDE перед загрузкой на сервер.

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

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

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

МетодОписаниеПлюсыМинусы
Снять обязательность поля (изменение required)Поле остаётся, но не обязательно для заполненияСохраняется совместимость с плагинами, форма полнаяПользователь может оставить поле пустым, что нежелательно в некоторых случаях
Удалить поле полностьюПоле «Телефон» не выводится в формеУпрощение формы, меньше полей для заполненияВозможны ошибки в интеграциях, потеря данных для связи
Как создать собственный тип записей (Custom Post Type) в WordPress с примерами кода
01.02.2026
WooCommerce: отладка проблем с оплатой через PayPal после обновления
25.04.2026
Как удалить раздел из админки WordPress без потери функциональности
10.02.2026
Как удалить скрипты и стили в WordPress для оптимизации загрузки
26.02.2026
Как динамически удалить CSS-класс из меню WordPress по условию
03.04.2026