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

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

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

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

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

При этом WooCommerce не предоставляет в админке опцию для изменения обязательности этого поля — придется править через код.

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

Откройте страницу оформления заказа, используйте инспектор браузера и найдите input с name="billing_phone". Проверьте наличие атрибута required. Если есть — поле обязательное клиентом.

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

Самый безопасный способ — использовать фильтр woocommerce_billing_fields для изменения свойства required поля billing_phone.

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

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

Особенности и дополнительная проверка

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

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

Для проверки:

  1. Очистите кэш сайта и браузера.
  2. Перейдите на страницу оформления заказа в режиме инкогнито.
  3. Попробуйте оформить заказ без ввода телефона.
  4. Если заказ проходит без ошибок — задача выполнена.
  5. Если ошибка сохраняется, проверьте, нет ли конфликтов с другими плагинами или темой.

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

Ошибка 1: Поле по-прежнему обязательное после внесения кода

  • Причина: код добавлен в неправильный файл или приоритет фильтра слишком низкий.
  • Решение: убедитесь, что код находится в functions.php активной дочерней темы, и попробуйте повысить приоритет фильтра, например, до 50.

Ошибка 2: Платежный шлюз требует телефон

  • Причина: некоторые шлюзы (например, PayPal) проверяют наличие телефона в данных заказа.
  • Решение: либо оставьте поле обязательным, либо настройте шлюз в его настройках, если такая опция есть.

Ошибка 3: Кастомные формы оформления заказа игнорируют изменения

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

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

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

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

МетодОписаниеПлюсыМинусы
Код через woocommerce_billing_fieldsИзменение свойства required у поляЛегко, быстро, не требует плагиновМожно пропустить при кастомных решениях
Плагин для кастомизации CheckoutПлагины типа Checkout Field EditorУправление через интерфейс, больше возможностейДополнительная нагрузка, возможные конфликты
Кастомные шаблоны оформленияПолное изменение формы оформления заказаМаксимальный контрольСложно, требует поддержки при обновлениях

Дополнительный пример: отключение обязательности телефона только для цифровых товаров

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

add_filter('woocommerce_billing_fields', 'wpdo_conditional_phone_required', 20, 1);
function wpdo_conditional_phone_required($fields) {
    $only_virtual = true;
    foreach (WC()->cart->get_cart() as $cart_item) {
        if (!$cart_item['data']->is_virtual()) {
            $only_virtual = false;
            break;
        }
    }
    if ($only_virtual && isset($fields['billing_phone'])) {
        $fields['billing_phone']['required'] = false;
    }
    return $fields;
}
WooCommerce: отладка проблем с оплатой через QIWI после обновления
09.06.2026
WooCommerce: как удалить обязательное поле почтового индекса при оформлении заказа
17.07.2026
Как использовать хуки для динамического изменения заголовков страниц в WordPress
01.03.2026
WooCommerce: Как изменить страницу «Спасибо» после оформления заказа
16.06.2026
Автоматическое создание бэкапов WordPress с помощью плагинов
22.11.2025