首页 网站建设 Wordpress 浏览内容

WordPress非插件禁止多人同时登录一个账号

2790 2 BaiDu已收录 评论留言

关于 WordPress 禁止多个人同时登录一个用户账号,可以使用插件Prevent Concurrent Logins、 Wp Single Login来实现,

Wp Single Login是通过wordpress3.6新增的Heartbeat API来实现的。

纯代码菜鸟可后台插件安装界面搜索 Wp Single Login在线安装

直接安装启用即可,不需要设置。

小伙伴不想用插件或想自定义某些代码,下面就是该插件的源代码(添加到funtion文件里面,使用方法不再叙述):

< ?php/*Plugin name: WP Single LoginPlugin URI: http://magnigenie.com/wp-single-login/Description: This plugin will automatically logout the already logged in user when a user with the same login details tries to login from different browser or different computer. This plugin needs zero configuration to run. Just install it if you want single login functionality on your site.Version: 1.0Author: Nirmal RamAuthor URI: http://magnigenie.com/about-me/License: GPLv2 or laterLicense URI: http://www.gnu.org/licenses/gpl-2.0.html*/if( !class_exists( 'wp_single_login' ) ) { class wp_single_login { private $session_id; function __construct() { if ( ! session_id() ) session_start(); $this->session_id = session_id(); add_action( 'init', array( $this, 'wpsl_init' ) ); add_action( 'wp_login', array( $this, 'wpsl_login' ), 10, 2 ); add_filter('heartbeat_received', array( $this, 'wpsl_heartbeat_received' ), 10, 2); add_filter('heartbeat_nopriv_received', array( $this, 'wpsl_heartbeat_received' ), 10, 2); add_filter( 'login_message', array( $this, 'wpsl_loggedout_msg' ), 10 ); } function wpsl_init() { if( ! is_user_logged_in() ) return; //enqueue the Heartbeat API wp_enqueue_script('heartbeat'); wp_enqueue_script('jquery'); //load our Javascript in the footer add_action("wp_footer", array( $this, 'wpsl_scripts' ) ); $user_sess_id = get_user_meta( get_current_user_id(), '_wpsl_hash', true ); if( $user_sess_id != $this->session_id ) { wp_logout(); wp_redirect( site_url( 'wp-login.php?wpsl=loggedout' ) ); exit; } } function wpsl_login( $user_login, $user ) { update_user_meta( $user->ID, '_wpsl_hash', $this->session_id ); return; } function wpsl_loggedout_msg() { if ( isset($_GET['wpsl']) && $_GET['wpsl'] == 'loggedout' ) { $msg = __( "Your session has been terminated as you are logged in from another browser." ) ; $message = '

'.$msg.'


'; return $message; } }function wpsl_heartbeat_received($response, $data) { $user_sess_id = get_user_meta( get_current_user_id(), '_wpsl_hash', true ); if( $data['user_hash'] && $data['user_hash'] != $user_sess_id ){ $response['wpsl_response'] = 1; wp_logout(); } else $response['wpsl_response'] = 0; return $response;} function wpsl_scripts() { ?>< ?php} } new wp_single_login();}
标签:
墨月的头像
  • 本文由墨月网络整理编辑,转载请以链接形式注明本文地址:https://www.moyoo.net/12481.html
    版权所有© 墨月网络 | 本文采用 BY-NC-SA 进行授权丨发布于:2015-11-29 21:18
    若未注明,均为原创;部分内容源于网络,版权归原作者所有,如有侵权,请联系我们删除。
已有 2 条评论 新浪微博
  1. 既然来了 就留个爪儿吧

    2015年12月3日 11:40 回复

关注我们,实时联系

AD

AD