如何在不注销的情况下更新用户角色

时间:2016-05-11 作者:Mohamed Salem Lamiri

我正在使用以下插件进行wordpress项目:

我正在努力upgrade the user role 添加作业后,用户可以访问wp管理员并编辑自己的产品。

现在,用户可以升级以管理其供应商仪表板,但问题是,第一次添加作业时,他必须登录/注销才能刷新角色并能够访问仪表板。

以下是我的尝试:

        $current_user = wp_get_current_user();

        //Code 1 : 
        $user_id = wp_update_user( array( \'ID\' => $current_user->ID, \'role\' => \'wc_product_vendors_manager_vendor\' ) );

        //Code 2 : 
        $user = new WP_User( $current_user->ID );
        $user->remove_role( \'customer\' );
        $user->set_role( \'wc_product_vendors_manager_vendor\' );

        //Code 3 : ( this will make the user with 2 roles )
        $current_user->add_role( \'wc_product_vendors_manager_vendor\' );
是否可以通过删除wp_cache_delete ... 是否有人知道一个不用登录/注销即可升级用户角色的好解决方案?

谢谢你的帮助!

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

我想你走对了,wp_cache_delete 是什么最终帮助我得到了一个自动登录插件工作自动注册。。。我从那里得到了这个:

wp_cache_delete($current_user->ID, \'users\');
wp_cache_delete($current_user->user_login, \'userlogins\');
然后看看接下来你将扮演什么角色:

$current_user = wp_get_current_user();

SO网友:Shane

更改后是否尝试登录用户?

例如:

 wp_set_current_user( $current_user->ID, $current_user->user_login );

 wp_set_auth_cookie( $current_user->ID );

 do_action( \'wp_login\', $current_user->user_login );

相关推荐

GET_USERS丢失或跳过循环中的用户

我想分页通过所有用户在一个可湿性粉剂网站在100组。以下代码是简化版本:for($offset = 0; $offset < 100; $offset++) $args = ["number" => 100, \'orderby\' => \'ID\']; $args[\'offset\'] = ($offset - 1) * (int) $args[\'number\']; $users