user_login_status
및 activation_code
이라는 사용자 정의 필드를 wp_usermeta
테이블에 삽입했습니다.Wordpress 사용자 정의 사용자 인증
내가 계정이 아직 활성화되지 않은 경우 사용자를 확인 할 수없는 오전 login
페이지 여기
function dlf_auth($username, $password) {
global $user;
get_currentuserinfo();
$creds = array();
$creds['user_login'] = $username;
$creds['user_password'] = $password;
$creds['remember'] = true;
$user = wp_signon($creds, false);
if (is_wp_error($user)) {
//get user email
$email = $_POST['login_name'];
$users= get_user_by('email', $email);//
$key = 'user_login_status';
//get user login status
$user_status = get_user_meta($users->ID, $key);
$user_approve = $user_status[0];
$error_msg = '';
//if email does not exist in DB
if(!email_exists($email)){
$error_msg = 'ERROR: E-mail address does not exist.';
//if user is not approved
}elseif($user_approve == 0){
$error_msg = 'ERROR: Your account is not activated.';
//if invalid email or password
}else{
$error_msg = 'ERROR: Invalid e-mail address or password.';
}
echo $error_msg;
}
if (!is_wp_error($user)) {
wp_redirect(site_url().'/overview');
exit();
}
}
에 내 코드입니다. 사용자는 계속 로그인 할 수 있습니다.
meta_data 사용자를 사용하여 인증을 확인하려면 어떻게해야합니까? 나는 코어 wp_user
코어를 수정 wanmt하지 않습니다.
wp_signon
이 meta_data
유효성 검사를 추가로 확인하지 않습니까?