WooCommerce: как правильно отключить неиспользуемые платёжные системы

Диагностика проблемы с платёжными системами в WooCommerce

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

Первым шагом проверьте текущие активные методы оплаты на странице WooCommerce > Настройки > Платежи. Если платёжная система активна, но не нужна, её нужно корректно отключить. Иногда плагины или кастомный код могут автоматически подключать методы, даже если они отключены в настройках.

Как проверить, какие платёжные системы активны программно

add_action('wp_footer', function() {
    if(current_user_can('administrator')) {
        $gateways = WC()->payment_gateways()->get_available_payment_gateways();
        echo '<pre>'.print_r(array_keys($gateways), true).'</pre>';
    }
});

Этот код выводит список доступных платёжных систем внизу сайта для администратора. Если вы видите там платёжные шлюзы, которые не должны отображаться — значит, они включены.

Пошаговое решение: отключение платёжных систем через код

Если стандартное отключение через админку не срабатывает (например, из-за сторонних плагинов или кастомных интеграций), используйте фильтр woocommerce_available_payment_gateways, чтобы убрать нужные шлюзы программно.

add_filter('woocommerce_available_payment_gateways', 'disable_unused_payment_gateways', 99);
function disable_unused_payment_gateways($gateways) {
    // Список ID платёжных систем для отключения
    $disabled_gateways = ['cod', 'bacs']; // Пример: наложенный платеж и банковский перевод

    foreach ($disabled_gateways as $disabled_gateway) {
        if (isset($gateways[$disabled_gateway])) {
            unset($gateways[$disabled_gateway]);
        }
    }
    return $gateways;
}

Замените 'cod' и 'bacs' на ID платёжных систем, которые хотите отключить. ID можно узнать в настройках WooCommerce или с помощью предыдущего кода.

Если нужно отключить платёжную систему только для определённых условий

Например, отключить cheque для пользователей, которые не вошли в систему:

add_filter('woocommerce_available_payment_gateways', 'conditional_disable_gateway', 99);
function conditional_disable_gateway($gateways) {
    if (!is_user_logged_in() && isset($gateways['cheque'])) {
        unset($gateways['cheque']);
    }
    return $gateways;
}

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

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

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

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

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

  • Не удаляйте платёжные системы через базу данных — это может повредить настройки. Используйте фильтры и настройки.
  • Минимизируйте количество активных платёжных систем, чтобы ускорить загрузку страницы оформления заказа и снизить риск ошибок.
  • Регулярно обновляйте WooCommerce и плагины оплаты для безопасности и совместимости.
  • Используйте хук с высоким приоритетом (например, 99), чтобы ваш фильтр срабатывал после других.

Сравнительная таблица способов отключения платёжных систем в WooCommerce

МетодПреимуществаНедостатки
Отключение в админкеПросто, не требует кодаМожет игнорироваться сторонними плагинами
Фильтр woocommerce_available_payment_gatewaysГибко, можно задать условия отключенияТребует базовых навыков программирования
Удаление/деактивация плагина оплатыПолное удаление методаМожет повлиять на другие функции, требует доступа к админке
Автоматическое удаление неиспользуемых таксономий в WordPress
01.04.2026
Как удалить старые ревизии записей WordPress для оптимизации базы данных
29.12.2025
WordPress автоматическое удаление спама в комментариях: эффективные решения
30.11.2025
Как отключить XML-RPC в WordPress для повышения безопасности
27.01.2026
WooCommerce: автоматическое изменение статусов заказов при вводе платежа
16.07.2026