用户名为电子邮件与主电子邮件不同时出现登录错误

时间:2022-02-02 作者:Mike

"E;未知的电子邮件地址。请再次检查或尝试您的用户名"E;

我知道用户可以使用用户名或电子邮件登录。但是,当用户名是一封电子邮件(尤其是与实际电子邮件不同的电子邮件)时,我想它会被上面的消息吓坏。我可以想象,如果它找到一个@符号,它会假定它是一封电子邮件,只查找电子邮件而不查找用户名。在我的测试中,每个用户的用户名电子邮件与主电子邮件不同,这是一个问题。是否可以插入一个片段来捕获此信息?

1 个回复
SO网友:Mike

答案是:通过电子邮件禁用标准身份验证,并通过首先尝试查找电子邮件来更新用户名。

remove_filter( \'authenticate\', \'wp_authenticate_email_password\', 100 );
add_action(\'wp_authenticate\',\'login_verification\'); 

function login_verification($username) { 
    $username = sanitize_user( $username );
    //check if this is an email 
    $user = get_user_by(\'email\',$username);  
    if(!empty($user->user_login)) {  
        $username = $user->user_login; 
    }
    //else just leave as username
    return $username;  
}