mirror of
https://github.com/gosticks/wordpress-develop.git
synced 2026-06-28 22:30:04 +00:00
Users: Fetch user by login in retrieve_password() if not found by email.
This ensures that sending a password reset link works as expected if the user's login and email were initially the same, but the email address was subsequently updated and no longer matches the login, which is still set to the old address. Follow-up to [6643], [18513], [19056], [37474], [50129], [50140]. Props donmhico, pbearne, azouamauriac, boblindner, daxelrod, audrasjb, SergeyBiryukov. Fixes #53634. git-svn-id: https://develop.svn.wordpress.org/trunk@54477 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
@@ -3038,15 +3038,22 @@ function retrieve_password( $user_login = null ) {
|
||||
$user_login = $_POST['user_login'];
|
||||
}
|
||||
|
||||
$user_login = trim( wp_unslash( $user_login ) );
|
||||
|
||||
if ( empty( $user_login ) ) {
|
||||
$errors->add( 'empty_username', __( '<strong>Error:</strong> Please enter a username or email address.' ) );
|
||||
} elseif ( strpos( $user_login, '@' ) ) {
|
||||
$user_data = get_user_by( 'email', trim( wp_unslash( $user_login ) ) );
|
||||
$user_data = get_user_by( 'email', $user_login );
|
||||
|
||||
if ( empty( $user_data ) ) {
|
||||
$user_data = get_user_by( 'login', $user_login );
|
||||
}
|
||||
|
||||
if ( empty( $user_data ) ) {
|
||||
$errors->add( 'invalid_email', __( '<strong>Error:</strong> There is no account with that username or email address.' ) );
|
||||
}
|
||||
} else {
|
||||
$user_data = get_user_by( 'login', trim( wp_unslash( $user_login ) ) );
|
||||
$user_data = get_user_by( 'login', $user_login );
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user