1. 好易之首页
  2. 咨询文档
  3. 技术文档

WordPress禁止一个帐号多人同时登录

郑家喜的博客,点击查看详情

对于开放注册的 WordPress 站点来说,尤其是有会员购买服务的站点,可能需要禁止用户共享账号,也就是要禁止多个人同时登录一个账号。笨笨今天分享老外的一个方法,大家不妨试试。

将下面的代码到主题的 functions.php 中即可:

//禁止重复登录  
  
/** 
 * Detect if the current user has concurrent sessions 
 * 
 * @return bool 
 */  
function pcl_user_has_concurrent_sessions() {  
    return ( is_user_logged_in() && count( wp_get_all_sessions() ) > 1 );  
}  
   
/** 
 * Get the user's current session array 
 * 
 * @return array 
 */  
function pcl_get_current_session() {  
    $sessions = WP_Session_Tokens::get_instance( get_current_user_id() );  
   
    return $sessions->get( wp_get_session_token() );  
}  
   
/** 
 * Only allow one session per user 
 * 
 * If the current user's session has been taken over by a newer 
 * session then we will destroy their session automattically and 
 * they will have to login again to continue. 
 * 
 * @action init 
 * 
 * @return void 
 */  
function pcl_disallow_account_sharing() {  
    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();  
    }  
}  
add_action( 'init', 'pcl_disallow_account_sharing' );

原创文章,作者:郑家喜,如若转载,请注明出处:https://www.zhengjiaxi.com/zxwd/jswd/78.html

发表评论

登录后才能评论

联系我们

400-800-8888

在线咨询:点击这里给我发消息

邮件:766103754@qq.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注公众号