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: практические решения для ускорения сайта
08.12.2025
WooCommerce: автоматическое обновление остатков товаров при продаже
27.05.2026
Как автоматизировать создание бэкапов в WordPress с помощью плагинов
19.12.2025
Как запретить индексацию отдельных страниц в WordPress через robots.txt и noindex
18.08.2026
Как создать автоматические отзывы в WordPress с помощью Expert Review
06.01.2026
×
Сайт, который вау!
-15%

на премиум-тему
JournalX для WordPress

Хватай промо и действуй ⋙