我在网站上使用钱包系统,如果用户的余额低于0
,我该如何更改用户的角色? meta_value 可以采用 -500
到 0
之间的值。
add_action('init', 'changerole');
function changerole() {
if(!current_user_can('administrator')) {
$user_id = get_current_user_id();
$user_meta = get_user_meta($user_id, 'current_my_wallet_balance', true);
if ( $user_meta == 0) { //Which operator can I use?
$user = new WP_User( $user_id );
$user->set_role( 'subscriber' );
}
}
}
这也不起作用:
$user_meta = min(max($user_meta , -500), 0);
最佳答案
尝试以下修改后的代码,如果其钱包余额低于0
,则将“客户”用户角色更改为“订阅者”:
add_action('init', 'change_user_role_based_on_wallet_balance');
function change_user_role_based_on_wallet_balance() {
global $current_user;
if( $current_user && count(array_intersect(['adminisfqtrator','subscriber'], $current_user->roles)) === 0
&& floatval($current_user->current_my_wallet_balance) < 0 ) {
$current_user->set_role( 'subscriber' );
}
}
经过测试并有效。
关于php - 根据 WooCommerce 中的自定义用户元数据值更改用户角色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/77360637/