根据积分系统问题更改用户角色

时间:2013-07-10 作者:pixelngrain

正在尝试基于点更改用户角色。这似乎很好,直到它保持增长点。

如果我们降低分数,角色就不会回到舞台以下,问题就出现了。

意味着如果管理员角色我有600分,并且用户收入和角色更改为管理员。之后,如果由于某种类型的负面系统,分数下降到500,则应将角色更改回低于管理员的状态,但这不会发生。

一旦角色设置为上限,即使点数减少,也不会下降。

global $wpdb;
$pref = self::qa_prefix();
$u = new WP_User($u_id);

$user_point = $wpdb->get_row("SELECT userid, points FROM {$pref}userpoints WHERE userid = {$u_id}");

if(!is_super_admin()) {    

    if($user_point->points >= 600) {
        $u->set_role(\'administrator\');
    } elseif($user_point->points >= 150 && $user_point->points < 600) {
        $u->set_role(\'editor\');                
    } elseif($user_point->points >= 100 && $user_point->points < 150) {
        $u->set_role(\'contributor\');                
    } else {
        $u->set_role(\'subscriber\');
    }

}
请提供任何建议或想法……)

1 个回复
最合适的回答,由SO网友:ksr89 整理而成

您必须先删除以前的角色,然后添加新角色,如

$u = new WP_User( $user_ID);
$role_of_user= $u->roles[0];
$u->remove_role($role_of_user);
$u->add_role(\'new_role\');
如果用户具有多个角色,则

$u = new WP_User( $user_ID);
foreach($u->roles as $role){
    $u->remove_role($role);
}
$u->add_role(\'new_role\');

结束

相关推荐

get_users meta_query

我无法使meta\\u查询在get\\u users()上正常工作。我一辈子都不知道自己做错了什么。 $args = array( \'meta_query\' => array( \'relation\' => \'AND\', array( \'key\' => \'minbeds\',&