WordPress管理员无需密码一键登陆站点注册用户

Author: 陌小雨Date: 2024-12-20View: 314

对于开放注册用户的站点而言,有时候需要切换不同的用户角色来查看后台或者前台的不同显示效果,那么一键登陆站点注册用户这个功能就比较实用了,也方便注册用户出出现问题的时候直接以第一视觉解决问题。

话不多说,直接上菜

/* 
 * WordPress管理员无需密码一键登陆站点注册用户
 * ====================================================
*/

function wpcool_user_switch_action($actions, $user){
    $capability = (is_multisite())?'manage_site':'manage_options';
    if(current_user_can($capability)){
        $actions['login_as'] = '<a title="以此身份登录" href="'.wp_nonce_url(">ID", 'bulk-users').'">以此身份登录</a>';
    }
    return $actions;
}
add_filter('user_row_actions', 'wpcool_user_switch_action', 10, 2);
 
function wpcool_handle_user_switch_action($sendback, $action, $user_ids){
    if($action == 'login_as'){
        wp_set_auth_cookie($user_ids, true);
        wp_set_current_user($user_ids);
    }
    return admin_url();
}
add_filter('handle_bulk_actions-users','wpcool_handle_user_switch_action', 10, 3);

添加到主题functions.php文件中后在用户那里会看到多出了一个超链接文本

这样就可以一键切换啦。

这种方法有一点体验不是很好,就是不能一键切换回来,有此需求的话可以试试插件:User Switching