我已为网站中的一个用户角色(“客户”)禁用了发票付款方式,但现在我需要在此规则中添加另一个用户角色(“业务”),但我不知道如何进行这行得通。当我添加第二个角色时,代码完全停止工作,并且最终向所有用户显示网关。
这是我用来禁用网关的代码:
我对PHP不太了解,因此将不胜感激。如果有机会您可以更正我的代码以适应用例,我将不胜感激。
add_filter( 'woocommerce_available_payment_gateways', 'payment_gateway_disable_private' );
function payment_gateway_disable_private( $available_gateways ) {
$user = wp_get_current_user();
if ( isset( $available_gateways['igfw_invoice_gateway'] ) && !is_user_logged_in() || isset( $available_gateways['igfw_invoice_gateway'] ) && in_array('customer', $user->roles) ) {
unset( $available_gateways['igfw_invoice_gateway'] );
}
return $available_gateways;
}
有什么想法?
if语句中有一个错误((您也可以将current_user_can()
函数用作用户角色],例如:
add_filter( 'woocommerce_available_payment_gateways', 'payment_gateway_disable_private' );
function payment_gateway_disable_private( $available_gateways ) {
if ( ( ! is_user_logged_in() || current_user_can('customer') || current_user_can('business') )
&& isset( $available_gateways['igfw_invoice_gateway'] ) ) {
unset( $available_gateways['igfw_invoice_gateway'] );
}
return $available_gateways;
}
现在应该更好地工作。