我正在使用当前版本的Wordpress(4.2.4)和woocommerce(2.3.6)。
问题:不要让用户将他们的登录详细信息分享到网站。
旧解决方案:此问题的答案一直有效。
我需要什么:任何人都可以看到此代码的错误。为什么它不能使用新的Wordpress更新(4.2.4)。 或提供另一种解决方案。
来自@ manoj-dhiman的回答代码: how can I prevent multiple login from same user id from different browsers in wordpress?
if( !class_exists( 'WPSingleUserLoggin' ) ) {
class WPSingleUserLoggin
{
private $session_id;
function __construct()
{
if ( ! session_id() )
session_start();
$this->session_id = session_id();
add_action( 'init', array( $this, 'init' ) );
add_action( 'wp_login', array( $this, 'wp_login' ), 10, 2 );
}
function init()
{
if( ! is_user_logged_in() )
return;
$stored_sess_id = get_user_meta( get_current_user_id(), '_wp_single_user_hash', true );
if( $stored_sess_id != $this->session_id )
{
wp_logout();
wp_redirect( wp_login_url() );
exit;
}
}
function wp_login( $user_login, $user )
{
update_user_meta( $user->ID, '_wp_single_user_hash', $this->session_id );
return;
}
}
new WPSingleUserLoggin();
}