Удаляем ненужные контактные данные из вывода WooCommerce в WordPress

Диагностика проблемы: лишние контактные данные в выводе WooCommerce

В стандартном шаблоне WooCommerce в разделе оформления заказа (checkout) и в профиле пользователя часто выводятся контактные данные, такие как телефон, адрес электронной почты, адрес доставки и другие. Иногда требуется убрать или скрыть отдельные поля, например, номер телефона или дополнительный адрес, чтобы упростить интерфейс или соответствовать бизнес-требованиям.

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

Как WooCommerce выводит контактные поля: обзор

WooCommerce использует функции и хуки для отображения полей формы оформления заказа и данных профиля:

  • woocommerce_checkout_fields — фильтр для изменения полей формы оформления заказа;
  • woocommerce_billing_fields и woocommerce_shipping_fields — подмножества полей для адресов;
  • Шаблоны form-billing.php и form-shipping.php отвечают за вывод полей.

Пошаговое решение: удаляем ненужные контактные поля из оформления заказа

Чтобы убрать поле, например, телефон (billing_phone), нужно добавить фильтр в файл functions.php вашей темы или дочерней темы:

add_filter('woocommerce_checkout_fields', 'custom_remove_checkout_fields');
function custom_remove_checkout_fields($fields) {
    // Удаляем телефон из биллинга
    if (isset($fields['billing']['billing_phone'])) {
        unset($fields['billing']['billing_phone']);
    }
    // Можно удалить и другие поля, например, company
    // unset($fields['billing']['billing_company']);
    return $fields;
}

Если нужно убрать поле из адреса доставки:

add_filter('woocommerce_checkout_fields', 'custom_remove_shipping_phone');
function custom_remove_shipping_phone($fields) {
    if (isset($fields['shipping']['shipping_phone'])) {
        unset($fields['shipping']['shipping_phone']);
    }
    return $fields;
}

Обратите внимание, что поле shipping_phone по умолчанию в WooCommerce отсутствует, но если оно добавлено кастомными плагинами, такой код поможет удалить его.

Удаление контактов из профиля пользователя WooCommerce

Чтобы убрать отображение поля телефона в личном кабинете, используйте фильтр woocommerce_customer_meta_fields:

add_filter('woocommerce_customer_meta_fields', 'remove_phone_from_account');
function remove_phone_from_account($fields) {
    if (isset($fields['billing']['fields']['billing_phone'])) {
        unset($fields['billing']['fields']['billing_phone']);
    }
    return $fields;
}

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

1. Перейдите на страницу оформления заказа (checkout) на сайте. Поле телефона должно исчезнуть из формы.

2. В личном кабинете WooCommerce зайдите в раздел редактирования адреса биллинга — телефон не должен отображаться.

3. Проверьте, нет ли ошибок в консоли браузера и на сервере (логи PHP). Если форма работает корректно и поле отсутствует — решение успешно.

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

  • Поле не исчезает: Возможно, код добавлен в неправильный файл или активна кэш-система (кэш-плагины, серверный кэш). Очистите кэш и убедитесь, что functions.php в активной теме.
  • Ошибка PHP: Проверьте синтаксис и наличие функции с правильным именем. Ошибки на сайте могут привести к белому экрану.
  • Поле добавлено плагином: Некоторые плагины добавляют поля вне стандартных хуков. В этом случае нужно искать документацию плагина или фильтры для удаления.

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

  • Не удаляйте критичные для оплаты поля (email, имя), это может нарушить работу WooCommerce.
  • Добавляйте код в дочернюю тему, чтобы избежать потерь при обновлении темы.
  • Используйте isset() перед unset(), чтобы избежать предупреждений.
  • Тестируйте на локальной копии сайта перед внедрением на продакшн.
  • Для длительной поддержки кода используйте комментарии с описанием, какие поля удалены и зачем.

Сравнение способов удаления полей: код или плагины

МетодПреимуществаНедостаткиКогда использовать
Код в functions.phpПолный контроль, бесплатно, быстроТребует навыков, риск ошибокЕсли умеете работать с PHP и хотите минимальный набор изменений
Плагины (Checkout Field Editor)Удобный интерфейс, больше возможностейЗависимость от плагина, нагрузка на сайтЕсли нужны частые изменения без кода, или не хотите писать код
Как закрыть дубли страниц авторов в WordPress через robots.txt и noindex
16.08.2026