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
如有侵权,请邮件联系 766103754@qq.com 删除。
本站发布的文章及附件仅限用于学习和研究目的;不得将上述内容用于商业或非法用途,否则后果请用户自负。
本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。
如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。

发表评论

登录后才能评论

联系我们

400-800-8888

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

 

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

关注公众号