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

Почему стоит удалять ненужные поля в форме оплаты WooCommerce

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

Диагностика: какие поля можно и нужно удалить

Стандартные поля оплаты в WooCommerce включают такие как billing_company, billing_address_2, order_comments и другие. Для начала стоит определить, какие из них реально не нужны. Сделать это можно визуально в форме оформления заказа и сверить с требованиями бизнеса.

Для вывода полей можно использовать следующий код (например, для отладки в functions.php):

add_action('woocommerce_after_checkout_form', function() {
    echo '<pre>';
    print_r(WC()->checkout()->get_checkout_fields());
    echo '</pre>';
});

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

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

Для удаления полей нужно воспользоваться фильтром woocommerce_checkout_fields. Пример удаления нескольких полей:

add_filter('woocommerce_checkout_fields', 'custom_remove_checkout_fields');
function custom_remove_checkout_fields($fields) {
    // Удаляем поле "Компания"
    unset($fields['billing']['billing_company']);
    // Удаляем дополнительный адрес
    unset($fields['billing']['billing_address_2']);
    // Удаляем комментарии к заказу
    unset($fields['order']['order_comments']);
    return $fields;
}

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

Удаление полей для конкретных способов оплаты

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

add_filter('woocommerce_checkout_fields', 'remove_fields_for_cod');
function remove_fields_for_cod($fields) {
    if (isset(WC()->session) && WC()->session->get('chosen_payment_method') === 'cod') {
        unset($fields['billing']['billing_company']);
    }
    return $fields;
}

Этот код удалит поле "Компания" только при выборе оплаты при получении (cod).

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

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

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

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

  • Поля не удаляются: возможно, код не активен или добавлен в неправильное место. Проверьте, что функция подключена и нет синтаксических ошибок.
  • Ошибки валидации после удаления: если удаляете обязательное поле, нужно снять с него атрибут required или отключить валидацию. Например:
$fields['billing']['billing_company']['required'] = false;
  • Поля появляются после обновления WooCommerce: проверьте, что изменения в functions.php не перезаписываются темой или плагинами.

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

  • Не используйте плагины для удаления полей, если задача простая — это снизит нагрузку.
  • Делайте изменения в дочерней теме, чтобы не потерять при обновлении.
  • Тестируйте изменения на тестовом сайте перед внедрением на рабочем.
  • Убедитесь, что удаление полей не повлияет на интеграции с платежными системами и CRM.

Таблица сравнения вариантов удаления полей

МетодПлюсыМинусы
Код через woocommerce_checkout_fieldsЛёгкий, без плагинов, гибкийТребует навыков программирования
Плагины (например, Checkout Field Editor)Простота, визуальный интерфейсНагрузка, возможные конфликты
Изменение шаблонов WooCommerceПолный контроль над формойСложно, требует глубоких знаний
Автоматическое изменение стоимости товаров WooCommerce по заданным условиям
08.07.2026
Как автоматически отключать неиспользуемые плагины в WordPress по расписанию
26.04.2026
Как использовать кастомные колонки в WooCommerce для управления продуктами
22.05.2026
Как удалить или изменить поля в форме оплаты WooCommerce без плагинов
17.06.2026
Как использовать PHPMailer в WordPress для отправки писем
04.03.2026