Php 反转此函数,使其仅限于1个用户角色
我一直在寻找解决办法,但似乎找不到。我想让一个支付网关只对一个用户角色可用,但我只能找到这段代码。有谁能帮我想出一个主意,除了防止未登录的用户使用外,如何编写只允许我的4个不同用户角色中的1个使用此功能的内容Php 反转此函数,使其仅限于1个用户角色,php,wordpress,user-roles,Php,Wordpress,User Roles,我一直在寻找解决办法,但似乎找不到。我想让一个支付网关只对一个用户角色可用,但我只能找到这段代码。有谁能帮我想出一个主意,除了防止未登录的用户使用外,如何编写只允许我的4个不同用户角色中的1个使用此功能的内容 function wdm_disable_woocommerce_gateway_purchase_order( $available_gateways ) { //check whether the avaiable payment gateways have Cash on deli
function wdm_disable_woocommerce_gateway_purchase_order( $available_gateways ) {
//check whether the avaiable payment gateways have Cash on delivery and user is not logged in or he is a user with role customer
if ( isset($available_gateways['woocommerce_gateway_purchase_order']) && (current_user_can('customer') || ! is_user_logged_in()) ) {
//remove the cash on delivery payment gateway from the available gateways.
unset($available_gateways['woocommerce_gateway_purchase_order']);
}
return $available_gateways;
}
add_filter('woocommerce_available_payment_gateways', 'wdm_disable_woocommerce_gateway_purchase_order', 99, 1);
如果只允许具有特定用户角色的登录用户,只需更改您发布的代码段中的逻辑:
if ( isset($available_gateways['woocommerce_gateway_purchase_order']) && (!is_user_logged_in() || !current_user_can('customer')) ) {
unset($available_gateways['woocommerce_gateway_purchase_order']);
}
这将为以下用户删除网关:
只需将
customer
更改为您首选的用户角色或功能。如果只允许具有特定用户角色的登录用户,只需更改您发布的代码段中的逻辑即可:
if ( isset($available_gateways['woocommerce_gateway_purchase_order']) && (!is_user_logged_in() || !current_user_can('customer')) ) {
unset($available_gateways['woocommerce_gateway_purchase_order']);
}
这将为以下用户删除网关:
customer
更改为您首选的用户角色或功能