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

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');

Использовал этот код когда нужно было протестировать оплату на сайте перед включением боевого режима эквайринга.

Чтобы узнать название метода, который надо скрыть (в данном примере это rbspayment), нужно зайти в WooCommerce -> Настройки -> Платежи

Наведите на нужный метод и в ссылке вы увидите его название в GET-параметре section: ...&section=rbspayment

Перейти к верхней панели