Wordpress单用户会话

时间:2015-08-10 07:37:35

标签: php wordpress

我正在使用当前版本的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();
}

0 个答案:

没有答案