标签: 禁止登陆问题

  • wordpress禁止多地同时登录

    wordpress禁止用户在不同地点同时登录,管理员除外。

    function pcl_user_has_concurrent_sessions()
    {
        return (is_user_logged_in() && count(wp_get_all_sessions()) > 2);
    }
     
    add_action("init", function () {
        // 除了管理员,其他人不允许多地同时登陆。
        if (!current_user_can("manage_options")) {
            if (!pcl_user_has_concurrent_sessions()) {
                return;
            }
            $newest = max(wp_list_pluck(wp_get_all_sessions(), "login"));
            $session = pcl_get_current_session();
            if ($session["login"] === $newest) {
                wp_destroy_other_sessions();
            } else {
                wp_destroy_current_session();
            }
        }
    });