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: ...§ion=rbspayment