В WooCommerce часто возникает потребность убрать ненужные методы оплаты, чтобы упростить выбор для покупателей и оптимизировать процесс оформления заказа. В этой статье разберём, как программно отключить или полностью удалить конкретные методы оплаты в WooCommerce. Это особенно полезно, если вы хотите исключить встроенные или сторонние платежные шлюзы без установки дополнительных плагинов.
Почему стоит удалять методы оплаты через код, а не через настройки WooCommerce
В стандартной панели WooCommerce можно просто отключить методы оплаты через настройки, но такой способ не всегда удобен, особенно если нужно динамически управлять доступностью способов оплаты в зависимости от условий. Программное удаление даёт больше гибкости, позволяет реализовать логику на PHP, например, отключать методы оплаты для определённых категорий товаров, пользователей, стран или при других кастомных условиях.
Кроме того, программное управление помогает избежать ошибок и конфликтов с другими плагинами, и позволяет поддерживать чистоту настроек магазина.
Как удалить методы оплаты из WooCommerce с помощью фильтра wp-code_woocommerce_available_payment_gateways
Для удаления методов оплаты в WooCommerce можно использовать фильтр woocommerce_available_payment_gateways. Ниже пример функции с префиксом wpcode_, которая удаляет метод оплаты по ID.
function wpcode_remove_payment_gateways( $gateways ) {
// Укажите ID методов оплаты, которые нужно удалить
$remove_gateways = array( 'cod', 'cheque' ); // Пример: Оплата при доставке и чек
foreach ( $remove_gateways as $gateway_id ) {
if ( isset( $gateways[ $gateway_id ] ) ) {
unset( $gateways[ $gateway_id ] );
}
}
return $gateways;
}
add_filter( 'woocommerce_available_payment_gateways', 'wpcode_remove_payment_gateways' );
В этом примере мы удаляем два стандартных метода оплаты: «Оплата при доставке» (cod) и «Чек» (cheque). Вы можете указать свои ID методов оплаты, которые хотите отключить.
Как узнать ID методов оплаты
Чтобы найти ID метода оплаты, зайдите в WooCommerce → Настройки → Оплата. В URL или в атрибутах плагина вы увидите идентификаторы методов. Также можно вывести массив доступных шлюзов программно с помощью временной отладки:
add_action( 'woocommerce_checkout_process', function() {
error_log( print_r( WC()->payment_gateways->get_available_payment_gateways(), true ) );
} );
Или использовать функцию отладки в шаблоне.
Динамическое отключение методов оплаты в зависимости от условий
Часто требуется не просто удалить метод оплаты навсегда, а сделать это условно. Например, отключать метод оплаты «Наличные» для удалённых регионов или для выбранных категорий товаров.
Пример отключения метода оплаты для определённой категории товаров
function wpcode_disable_payment_for_category( $gateways ) {
if ( ! is_checkout() ) {
return $gateways;
}
$category_to_disable = 'digital'; // slug категории
$cart = WC()->cart->get_cart();
$has_category = false;
foreach ( $cart as $cart_item ) {
if ( has_term( $category_to_disable, 'product_cat', $cart_item['product_id'] ) ) {
$has_category = true;
break;
}
}
if ( $has_category && isset( $gateways['cod'] ) ) {
unset( $gateways['cod'] ); // Убираем оплату при доставке для цифровых товаров
}
return $gateways;
}
add_filter( 'woocommerce_available_payment_gateways', 'wpcode_disable_payment_for_category' );
Такой подход позволяет гибко настраивать методы оплаты без лишних плагинов.
Удаление методов оплаты через плагин Clearfy Pro
Если вы хотите более простой способ без кода и с дополнительными функциями оптимизации, рассмотрите плагин Clearfy Pro. Он позволяет отключать ненужные методы оплаты, а также оптимизировать загрузку и безопасность WooCommerce.
Советы по улучшению UX при ограничении методов оплаты
Если вы программно отключаете методы оплаты, не забудьте уведомить пользователя. Например, добавьте сообщение в корзину или на страницу оформления заказа, объясняющее, почему тот или иной способ оплаты недоступен. Это улучшит взаимодействие клиента с магазином и снизит количество вопросов в поддержку.
Итоги и рекомендации
- Используйте фильтр
woocommerce_available_payment_gatewaysдля программного управления методами оплаты. - Определяйте методы оплаты для удаления по их ID, которые можно узнать через настройки или отладку.
- Реализуйте условное удаление методов оплаты для гибкого управления бизнес-логикой.
- Рассмотрите использование плагинов, например, Clearfy Pro, для упрощения задач и дополнительной оптимизации WooCommerce.
- Добавляйте пользовательские уведомления, чтобы покупатели понимали ограничения при оплате.
Таким образом, программное удаление методов оплаты в WooCommerce — это мощный инструмент, который помогает максимально адаптировать ваш интернет-магазин под нужды бизнеса и клиентов.