簡體   English   中英

在WordPress中使用用戶名或電子郵件登錄

[英]login with username or email in wordpress

我正在使用登錄模板...但是我想使用用戶名以及電子郵件進行登錄。我得到了用於此的代碼,但是它不起作用,如下所示:

function login_with_email_address($username) {

    $user = get_user_by('email',$username);
    if(!empty($user->user_login))
        $username = $user->user_login;  
    return $username;
}
add_action('wp_authenticate','login_with_email_address',10,1);

我已經在“ 身份驗證 ”中添加了用於電子郵件驗證的操作,如下所示:

function check_user_status($user, $username, $password) {   

    if (in_array( 'subscriber', (array) $user->roles ) ) {
        if (get_user_meta($user->ID, 'confirm_mail', true) == 1) { return $user; }
        else{ return new WP_Error('Account Not Active.');  }
    }
    else{ return $user; }
}
add_filter('authenticate','check_user_status', 30, 3);

嘗試這個

remove_filter( 'authenticate', 'wp_authenticate_username_password', 20, 3 );
 add_filter( 'authenticate', 'tcb_authenticate_username_password', 20, 3 );


   function tcb_authenticate_username_password( $user, $username, $password ) {
      if ( ! empty( $username ) && is_email( $username ) ) :
        if ( $user = get_user_by_email( $username ) )
          $username = $user->user_login;
      endif;

      return wp_authenticate_username_password( null, $username, $password );
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM