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; }