Скрыть метод оплаты для не авторизованных пользователей Woocommerce

Часто бывает необходимо скрыть от пользователей метод оплаты. Как пример: у нас есть интернет-магазин, где пользователи покупают товары без авторизации и создания аккаунтов. Для тестирования эквайринга на сайте (в нашем случае это эквайринг от Сбербанка) нужно скрыть этот метод оплаты от всех, кроме админа, который авторизовался.

Нужно добавить следующий код в файл functions.php:

function sberbank_for_logged_user($available_gateways)
{
  global $woocommerce;
 
  if ( !is_user_logged_in() ) { unset($available_gateways['rbspayment']); }
 
  return $available_gateways;
}
add_action('woocommerce_available_payment_gateways', 'sberbank_for_logged_user');

Обратите внимание на $available_gateways['rbspayment'] - где взять название метода?

Все очень просто, можно посмотреть в админке, в ссылке на этот метод, в параметре §ion=rbspayment:

методы оплаты Woocommerce
Наведите мышкой на способ оплаты, чтобы увидеть ссылку

© 2016 — 2020. При копировании материалов обязательна активная индексируемая ссылка на источник.