我有自定义登录,想要检查用户是否已经激活。
我还有我的自定义注册,它会发送激活密钥,当点击激活密钥时,它会自动更改用户元值。那已经没事了。我的问题是当用户登录时即使它尚未激活也可以登录。似乎我的验证代码不起作用,我遇到了麻烦。这是我的代码
add_action( 'authenticate', 'check_username_password', 1, 3);
function check_username_password( $login, $username, $password ) {
$referrer = $_SERVER['HTTP_REFERER'];
$user = $username->ID;
$status = get_user_meta($user, 'ja_disable_user', true);
if( !empty( $referrer ) && !strstr( $referrer,'wp-login' ) && !strstr( $referrer,'wp-admin' ) ) {
if( $username == "" || $password == "" ){
if ( !strstr($referrer, '?login=empty' )) {
wp_redirect( home_url('/login/?login=empty') );
}
else {
wp_redirect( $referrer );
}
exit;
}
if($status == 2){ //when meta value is 2 user account is pending
if ( !strstr($referrer, '?login=not_activated' )) {
//wp_redirect( $referrer . '?login=empty');
wp_redirect( home_url('/login/?login=not_activated') );
}
else {
wp_redirect( $referrer );
}
exit;
}
}
}