我已經在wp_usermeta
表中插入了兩個名爲user_login_status
和activation_code
的自定義字段。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
表。
函數wp_signon
未檢查其他meta_data
驗證?