WooCommerce: автоматическое отключение неактивных методов оплаты

|

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

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

Чтобы проверить, есть ли такие методы, выполните следующие шаги:

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

Цель — программно скрывать из списка оплаты те методы, которые не применимы для текущего заказа.

WooCommerce предоставляет хук фильтра 'woocommerce_available_payment_gateways', с помощью которого можно отфильтровать методы.

Пример кода для functions.php вашей темы или плагина:

add_filter('woocommerce_available_payment_gateways', 'disable_inactive_payment_gateways', 10, 1);
function disable_inactive_payment_gateways($available_gateways) {
    if (is_admin()) return $available_gateways; // Не трогаем админку

    $cart = WC()->cart;
    if (!$cart) return $available_gateways;

    foreach ($available_gateways as $gateway_id => $gateway) {
        // Проверяем условие активности для каждого метода
        // Например, отключаем метод, если сумма заказа меньше минимальной или для недопустимой валюты

        // Минимальная сумма для метода
        $min_amount = isset($gateway->min_amount) ? $gateway->min_amount : 0;
        if ($min_amount > 0 && $cart->total < $min_amount) {
            unset($available_gateways[$gateway_id]);
            continue;
        }

        // Пример проверки валюты
        $allowed_currencies = isset($gateway->allowed_currencies) ? $gateway->allowed_currencies : [];
        if (!empty($allowed_currencies) && !in_array(get_woocommerce_currency(), $allowed_currencies)) {
            unset($available_gateways[$gateway_id]);
            continue;
        }

        // Добавьте свои условия для отключения
    }

    return $available_gateways;
}

В этом примере можно расширять условия, например, по геолокации, по ролям пользователей, по типам товаров в корзине и т.д.

Как добавить минимальные суммы и валюты в методы оплаты

Чтобы использовать кастомные свойства min_amount и allowed_currencies, добавьте код, например, в woocommerce_payment_gateways или настройте методы оплаты вручную:

add_filter('woocommerce_payment_gateways', 'add_custom_gateway_settings');
function add_custom_gateway_settings($gateways) {
    foreach ($gateways as $gateway) {
        // Пример: для платежного шлюза 'cod' задаём минимальную сумму и валюты
        if ($gateway->id === 'cod') {
            $gateway->min_amount = 1000; // минимальная сумма 1000
            $gateway->allowed_currencies = ['RUB', 'USD'];
        }
    }
    return $gateways;
}

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

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

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

Сравнение способов автоматического отключения методов оплаты

СпособПлюсыМинусыПример использования
Код в functions.phpГибкость, полный контроль, бесплатноТребует навыков, возможные ошибки при обновлениях WooCommerceФильтр woocommerce_available_payment_gateways
Плагин-менеджер способов оплатыПростота настройки, поддержка, обновленияМожет быть платным, лишние функцииПлагины типа Payment Gateways per Product
Использование Clearfy ProОптимизация, дополнительные настройки безопасностиПлатный продуктClearfy Pro
Создать автоматические отчёты в WordPress с помощью Expert Review
01.02.2026
Как изменить количество постов в выводах WordPress без плагинов
03.04.2026
Как создать и использовать атрибуты шорткода в WordPress с примерами кода
22.12.2025
WooCommerce: автоматическое отключение неактивных методов оплаты
15.05.2026
Как автоматически разделить длинные посты на страницы в WordPress
08.03.2026
×

AI-плагин от WPShop.ru

анализирует конкурентов

пишет статьи

готовит SEO

генерирует изображения

и еще кое-что...
WPGPT
Плагин, который наполняет ваш сайт WordPress
Узнать больше