Add payment gateway for certain users only

add_filter( 'woocommerce_available_payment_gateways', 'hide_payment_gateway' );
 
function hide_payment_gateway( $available_gateways ) {
global $woocommerce;


if ( isset( $available_gateways['cod'] ) && !current_user_can('administrator') && !current_user_can('staff') && !current_user_can('editor')   ) {
unset( $available_gateways['cod'] );
} 


return $available_gateways;
}

Author: Wojciech Borowicz

I hope this post will help you to do what you need.
In case you want some assistance click here to get in touch 

check out other blog posts