如何在管理员更新用户角色时运行MySQL查询? 时间:2016-07-11 作者:João Capinha 我需要在管理员更改管理面板中的用户角色时运行查询。现在,这是我的代码:add_action( \'set_user_role\', \'my_function\' ); function my_function ($user_id){ $user = new WP_User( $user_id ); global $wpdb; $wpdb->query(" "); }这不起作用。所以我的问题是,当更新用户供应商时,这是否是运行查询的正确挂钩。如果是,我是否获得了正确的用户id? 1 个回复 SO网友:Owais Alam 您走错了方向,在从后端更改管理员时,无法获取用户角色。您可以通过调用get\\u role()来检索当前用户的角色对象,但这是一个对象,而不是角色名称的字符串。function get_user_role($uid) { global $wpdb; $role = $wpdb->get_var("SELECT meta_value FROM {$wpdb->usermeta} WHERE meta_key = \'wp_capabilities\' AND user_id = {$uid}"); if(!$role) return \'non-user\'; $rarr = unserialize($role); $roles = is_array($rarr) ? array_keys($rarr) : array(\'non-user\'); return $roles[0]; } 文章导航