From f31a966c9f98d7b2eb8e2f23e8d05c5033b5a6c4 Mon Sep 17 00:00:00 2001 From: Sergey Biryukov Date: Thu, 18 Jun 2020 20:22:16 +0000 Subject: [PATCH] Login and Registration: Introduce `lostpassword_errors` filter in `retrieve_password()` for errors encountered on a password reset request. This complements the `registration_errors` filter in `register_new_user()`. Props wpdo5ea, dilipbheda. Fixes #49521. git-svn-id: https://develop.svn.wordpress.org/trunk@48084 602fd350-edb4-49c9-b593-d223f7449a82 --- src/wp-includes/user.php | 2 +- src/wp-login.php | 17 +++++++++++++++++ 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/src/wp-includes/user.php b/src/wp-includes/user.php index fe2d8498f6..c174c3cedb 100644 --- a/src/wp-includes/user.php +++ b/src/wp-includes/user.php @@ -2553,7 +2553,7 @@ function register_new_user( $user_login, $user_email ) { * Filters the errors encountered when a new user is being registered. * * The filtered WP_Error object may, for example, contain errors for an invalid - * or existing username or email address. A WP_Error object should always returned, + * or existing username or email address. A WP_Error object should always be returned, * but may or may not contain errors. * * If any errors are present in $errors, this will abort the user's registration. diff --git a/src/wp-login.php b/src/wp-login.php index 51cd7de3ac..314e7fe42d 100644 --- a/src/wp-login.php +++ b/src/wp-login.php @@ -382,6 +382,23 @@ function retrieve_password() { */ do_action( 'lostpassword_post', $errors, $user_data ); + /** + * Filters the errors encountered on a password reset request. + * + * The filtered WP_Error object may, for example, contain errors for an invalid + * username or email address. A WP_Error object should always be returned, + * but may or may not contain errors. + * + * If any errors are present in $errors, this will abort the password reset request. + * + * @since 5.5.0 + * + * @param WP_Error $errors A WP_Error object containing any errors generated + * by using invalid credentials. + * @param WP_User|false WP_User object if found, false if the user does not exist. + */ + $errors = apply_filters( 'lostpassword_errors', $errors, $user_data ); + if ( $errors->has_errors() ) { return $errors; }