我在wordpress中的wp_update_user有问题。下面的代码可以工作,但不是我想要的。
add_action('user_register', 'register_role', 10 , 1);
function register_role($user_id) {
$userdata = array();
$userdata['ID'] = $user_id;
$userdata['role'] = $_POST['Newrole']; //value for example 'Goldmember'
wp_update_user($userdata);
}
我有几个问题:
- “Goldmember”是用户角色的显示名。我在数据库中看到了新的用户元(a:2:{s:6:“Goldmember”; B:1;s:6:“订户”; B:1;})
- “黄金会员”在wordpress用户管理中不起作用,用户激活了默认角色
- 如果我使用strtolower($_POST ['Newrole'])将“黄金会员”更改为“黄金会员”,代码将不再工作
- 如果我将数据库中的“黄金会员”更改为“黄金会员”(a:2:{s:6:“黄金会员”; B:1;s:6:“订户”; B:1;}),它在wordpress用户管理和工作中可见
我需要在代码中修改什么,我没有看到任何错误。
非常感谢
1条答案
按热度按时间0md85ypi1#
我已经改变了我的方式来解决这个问题。我用了另一个钩子来改变注册时的用户角色。我用了“uwp_after_process_register”,这个钩子会在注册过程结束时被触发,所以我可以做任何我想做的事情。
这是现在我的解决方案,所以我的每一个问题都解决了,你只需要采取UsersWP: