Перейти к содержимому
🚫 Чистим чекаут WooCommerce: убираем ненужные способы оплаты по стране, сумме и роли

🚫 Чистим чекаут WooCommerce: убираем ненужные способы оплаты по стране, сумме и роли

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

Каждый лишний шлюз на чекауте — это трение. Покупатель тратит лишние секунды на выбор, а если выберет нерабочий метод, бросает корзину. По данным Baymard Institute, 22% пользователей уходят с чекаута именно из-за сложного или запутанного процесса оформления.

Ниже, три способа навести порядок в платёжных методах WooCommerce: от встроенной панели для быстрой чистки до построчного кода под любые условия. Каждый проверен на живом магазине, с конкретными примерами и подводными камнями.

Что нужно знать до отключения

💡 Быстрый обзор:

  • Способ 1: WooCommerce → Settings → Payments, два клика, выключает шлюз для всех покупателей разом
  • Способ 2: фильтр woocommerce_available_payment_gateways в functions.php, условия по стране, сумме корзины, роли пользователя
  • Способ 3: бесплатный плагин Conditional Payments for WooCommerce, визуальный конструктор, ни строчки кода

Перед любыми изменениями, полный бэкап. Бесплатный UpdraftPlus закрывает задачу: пара кликов, и копия сайта лежит в облаке. После отключения шлюзов обязательно пройдите тестовый заказ от корзины до «спасибо», убедитесь, что оставшиеся методы принимают оплату без ошибок.

И главное: никогда не выключайте ВСЕ шлюзы одновременно. Оставьте хотя бы один рабочий способ оплаты, иначе покупатели просто не смогут завершить заказ, а вы узнаете об этом по звенящей тишине в почте.

Способ 1: Панель WooCommerce, два клика, ноль риска

Самый простой и безопасный путь. Подходит, если нужно убрать конкретный шлюз для ВСЕХ покупателей без всяких условий.

Откройте WooCommerce → Settings в боковом меню админки и перейдите на вкладку Payments. Перед вами, таблица всех зарегистрированных платёжных методов с колонкой Enabled. Активные шлюзы подсвечены фиолетовым, отключённые, серым.

Чтобы отключить метод, щёлкните по тогглу в колонке Enabled, он станет серым. Всё. Шлюз мгновенно исчезает с чекаута. Ни кода, ни плагинов.

Альтернативный путь к тому же результату: кликните по названию метода в списке, снимите галку Enable this payment gateway и сохраните.

Что этот способ НЕ умеет

Ограничение ровно одно, но существенное: вы отключаете шлюз глобально. Если магазин работает на несколько стран или вам нужно прятать метод только при определённых условиях (сумма заказа ниже порога, товар из категории «цифровые», покупатель из ЕС), панель не поможет. Для условной логики переходите к способам 2 и 3.

Способ 2: Код, фильтр woocommerce_available_payment_gateways

WooCommerce предоставляет хук woocommerce_available_payment_gateways. Он срабатывает прямо перед выводом списка методов на чекауте и позволяет убирать шлюзы по десятку разных условий: страна, сумма корзины, роль пользователя, категория товара в заказе.

Код добавляется в functions.php дочерней темы или через плагин Code Snippets. Если дочерней темы ещё нет, создайте её до правок, иначе всё слетит при первом же обновлении родительской темы.

2.1. Скрыть все платёжные методы разом

Иногда нужно полностью убрать форму оплаты: например, сайт в режиме обслуживания, а вы тестируете корзину. Одна строка в functions.php:

1add_filter( 'woocommerce_cart_needs_payment', '__return_false' );

Фильтр говорит WooCommerce: «оплата не нужна». Платёжная форма исчезает с чекаута целиком. Нажмите Update file, и не забудьте удалить строку после тестов, иначе ни один реальный заказ не пройдёт.

2.2. Отключить шлюз для конкретной страны

Предположим, вы принимаете заказы из США и Европы. Покупатели из Штатов платят через PayPal, а европейцам он ни к чему, у них локальные шлюзы. Код ниже убирает PayPal для платёжного адреса в США:

1add_filter( 'woocommerce_available_payment_gateways', 'quadlayers_payment_gateway_disable_country' );
2function quadlayers_payment_gateway_disable_country( $available_gateways ) {
3 if ( is_admin() ) return $available_gateways;
4 if ( isset( $available_gateways['paypal'] ) && WC()->customer->get_billing_country() === 'US' ) {
5 unset( $available_gateways['paypal'] );
6 }
7 return $available_gateways;
8}

Ключевой момент, gateway ID. У каждого шлюза он свой: paypal (PayPal), stripe (Stripe), bacs (прямой перевод) и cod (наложенный платеж). Если не знаете ID, откройте WooCommerce → Settings → Payments, кликните правой кнопкой по названию метода и выберите «Inspect», в разметке найдите атрибут data-gateway_id:

После добавления кода проверьте чекаут: с платёжным адресом в США PayPal исчезает, для остальных стран, остаётся.

2.3. Отключить шлюз по сумме корзины

Некоторые платёжные процессоры берут фиксированную комиссию, которая съедает маржу на мелких заказах. Скажем, при сумме до 200 $ вы хотите оставить только прямой банковский перевод, а PayPal подключать для более крупных чеков:

1add_filter( 'woocommerce_available_payment_gateways', 'quadlayers_disable_paypal_below_threshold' );
2function quadlayers_disable_paypal_below_threshold( $available_gateways ) {
3 $threshold = 200;
4 if ( WC()->cart->total < $threshold ) {
5 unset( $available_gateways['paypal'] );
6 }
7 return $available_gateways;
8}

Логика простая: если сумма корзины ниже $threshold, PayPal вырезается из списка. Значение порога замените на своё.

Способ 3: Плагин Conditional Payments, визуальный конструктор

Если лезть в functions.php не хочется, ту же задачу решает плагин Conditional Payments for WooCommerce. На июль 2026: версия 1.16.5, активные установки, совместимость с последними WordPress и WooCommerce. Обновлялся 11 июля 2025.

Установка стандартная: Plugins → Add New, вбейте «Conditional Payments for WooCommerce» в поиск, нажмите Install Now и Activate.

Настройка условий

После активации в меню WooCommerce появляется пункт Conditional Payment Methods. Зайдите в него, убедитесь, что галка «Enable conditions» активна, и нажмите Add condition.

На открывшейся странице задайте четыре параметра:

  • Title, название условия, например «Нет PayPal для мелких заказов».
  • Action, выберите Disable the payment method(s).
  • Payment methods, отметьте галками шлюзы, которые нужно отключить (можно несколько).
  • Conditions, логика срабатывания. Например: «Cart total < сумма порога» → PayPal отключается.

Нажмите Publish, условие работает сразу. Проверьте чекаут с суммой ниже и выше порога.

Бесплатная версия оперирует условиями: сумма корзины, подытог и подытог без налогов. Доступны операторы AND/OR, можно собрать правило «отключить PayPal, если сумма больше X И меньше Y».

Premium-версия добавляет фильтрацию по стране, городу, роли, категории товара, валюте и десятку других параметров. На практике, однако, бесплатного функционала хватает большинству магазинов.

⁉️🤔 Частые вопросы

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

Откройте WooCommerce → Settings → Payments и щёлкните по тогглу в колонке Enabled. Тоггл станет серым, метод исчезнет с чекаута для всех без исключения. Десять секунд, ноль рисков.

Можно ли скрыть шлюз только для определённой категории товаров?

Бесплатная версия Conditional Payments этого не умеет. Premium-версия фильтрует по категориям, продуктам и атрибутам. Альтернатива, код на woocommerce_available_payment_gateways с проверкой WC()->cart->get_cart() на наличие товаров из нужной категории.

Повлияет ли отключение шлюза на уже оформленные заказы?

Нет. Существующие заказы не затрагиваются. Изменение касается только будущих чекаутов, все предыдущие транзакции остаются в истории без изменений.

Что делать, если отключённый шлюз всё равно висит на чекауте?

Очистите кеш сайта и браузера. Если стоит плагин кеширования (WP Rocket, W3 Total Cache), сбросьте его кеш. Затем временно отключите остальные плагины по одному и проверьте чекаут, возможно, конфликт.

Можно ли вернуть отключённый метод обратно?

Да, в любой момент. Способ 1: снова щёлкните по тогглу в Payments. Способ 2: удалите или закомментируйте добавленный код. Способ 3: деактивируйте условие в Conditional Payment Methods.

Обязательно ли создавать дочернюю тему перед правкой functions.php?

Настоятельно рекомендуется. Без дочерней темы правки слетят при обновлении родительской. Плагин Code Snippets, безопасная альтернатива: хранит код в базе и не зависит от темы.

Итоги: что выбрать под вашу задачу

Три способа закрывают три разных сценария. Выбирайте под свою ситуацию:

  • Просто убрать ненужный шлюз для всех → Способ 1, панель WooCommerce. Десять секунд, никаких рисков.
  • Нужна логика: по стране, сумме, роли → Способ 2 (код) или Способ 3 (плагин). Код бесплатен и не добавляет зависимостей. Плагин даёт визуальный интерфейс и страхует от опечаток в functions.php.
  • Тестируете сайт, нужно временно скрыть оплату → одна строка add_filter( 'woocommerce_cart_needs_payment', '__return_false' ) из раздела 2.1. Не забудьте удалить после тестов.

На практике мы советуем начать с панели WooCommerce для базовой чистки, а для условной логики, поставить Conditional Payments. Бесплатной версии хватает для большинства сценариев, а визуальный конструктор исключает человеческую ошибку в коде. Когда условий становится больше пяти и магазин активно растёт, переходите на код: один раз написали в functions.php и забыли.