Woocommerce - 隐藏支付网关“cod - 货到付款”并显示 bacs - 银行转账
Woocommerce - Hide payment gateway “cod - cash on delivery” and show bacs - Bank Transfer
伙计们,
我在结帐页面上使用了两个支付网关:
1° bacs = 银行转帐
2° cod = 货到付款
我需要隐藏支付网关COD = 货到付款,如果用户没有管理员配置文件(!is_user_admin()),||或者没有记录,|| ! is_user_logged_in() 然后隐藏。
这是我正在使用的代码,它正在运行。
add_filter( 'woocommerce_available_payment_gateways', 'bbloomer_cod_hide' );
function bbloomer_cod_hide( $available_gateways ) {
if ( isset( $available_gateways['cod']) && !is_user_admin() ) {
unset( $available_gateways['cod'] );
}
return $available_gateways;
}
问题是...支付网关 bacs = 银行转账 也受到影响并被隐藏:)
所以我尝试了另一个钩子
add_filter( 'woocommerce_available_payment_gateways', 'transfer_enable_bacs' );
function transfer_enable_bacs( $available_gateways ) {
if ( isset( $available_gateways['bacs']) && !is_user_admin() ) {
//unset( $available_gateways['bacs'] );
}
return $available_gateways;
}
但这不是正确的解决方案。两个支付网关都被隐藏了。
请问我做错了什么?
感恩!
我认为您需要将 is_user_admin
替换为 current_user_can
add_filter( 'woocommerce_available_payment_gateways', 'bbloomer_cod_hide' );
function bbloomer_cod_hide( $available_gateways ) {
if ( isset( $available_gateways['cod'] ) && ! current_user_can( 'administrator' ) ) {
unset( $available_gateways['cod'] );
}
return $available_gateways;
}
is_user_admin
不检查用户是否是管理员;使用 current_user_can()
检查角色和能力。
https://developer.wordpress.org/reference/functions/is_user_admin/
试试下面的代码:
add_filter('woocommerce_available_payment_gateways','bbloomer_cod_hide');
function bbloomer_cod_hide( $available_gateways ) {
if ( !is_user_logged_in() ) || !current_user_can( 'install_themes' ) ) {
unset( $available_gateways['cod'] );
}
return $available_gateways;
}
伙计们,
我在结帐页面上使用了两个支付网关:
1° bacs = 银行转帐
2° cod = 货到付款
我需要隐藏支付网关COD = 货到付款,如果用户没有管理员配置文件(!is_user_admin()),||或者没有记录,|| ! is_user_logged_in() 然后隐藏。
这是我正在使用的代码,它正在运行。
add_filter( 'woocommerce_available_payment_gateways', 'bbloomer_cod_hide' );
function bbloomer_cod_hide( $available_gateways ) {
if ( isset( $available_gateways['cod']) && !is_user_admin() ) {
unset( $available_gateways['cod'] );
}
return $available_gateways;
}
问题是...支付网关 bacs = 银行转账 也受到影响并被隐藏:)
所以我尝试了另一个钩子
add_filter( 'woocommerce_available_payment_gateways', 'transfer_enable_bacs' );
function transfer_enable_bacs( $available_gateways ) {
if ( isset( $available_gateways['bacs']) && !is_user_admin() ) {
//unset( $available_gateways['bacs'] );
}
return $available_gateways;
}
但这不是正确的解决方案。两个支付网关都被隐藏了。
请问我做错了什么?
感恩!
我认为您需要将 is_user_admin
替换为 current_user_can
add_filter( 'woocommerce_available_payment_gateways', 'bbloomer_cod_hide' );
function bbloomer_cod_hide( $available_gateways ) {
if ( isset( $available_gateways['cod'] ) && ! current_user_can( 'administrator' ) ) {
unset( $available_gateways['cod'] );
}
return $available_gateways;
}
is_user_admin
不检查用户是否是管理员;使用 current_user_can()
检查角色和能力。
https://developer.wordpress.org/reference/functions/is_user_admin/
试试下面的代码:
add_filter('woocommerce_available_payment_gateways','bbloomer_cod_hide');
function bbloomer_cod_hide( $available_gateways ) {
if ( !is_user_logged_in() ) || !current_user_can( 'install_themes' ) ) {
unset( $available_gateways['cod'] );
}
return $available_gateways;
}