Make WordPress Core

Ticket #53634: 53634.1.diff

File 53634.1.diff, 1.2 KB (added by azouamauriac, 2 years ago)

Hello please ignore the previous attachement, it was mistake. This is the fix i proposed.

Line 
1
2@@ -2864,9 +2864,11 @@
3  *
4  * @param string $user_login Optional. Username to send a password retrieval email for.
5  *                           Defaults to `$_POST['user_login']` if not set.
6+ * @param string $field Optional. The field to retrieve the user with. id | ID | slug | email | login.
7+ *                        Defaults to `login`
8  * @return true|WP_Error True when finished, WP_Error object on error.
9  */
10-function retrieve_password( $user_login = null ) {
11+function retrieve_password( $user_login = null, $field = 'login' ) {
12        $errors    = new WP_Error();
13        $user_data = false;
14 
15@@ -2877,13 +2879,11 @@
16 
17        if ( empty( $user_login ) ) {
18                $errors->add( 'empty_username', __( '<strong>Error</strong>: Please enter a username or email address.' ) );
19-       } elseif ( strpos( $user_login, '@' ) ) {
20-               $user_data = get_user_by( 'email', trim( wp_unslash( $user_login ) ) );
21+       } else {
22+               $user_data = get_user_by( $field, trim( wp_unslash( $user_login ) ) );
23                if ( empty( $user_data ) ) {
24                        $errors->add( 'invalid_email', __( '<strong>Error</strong>: There is no account with that username or email address.' ) );
25                }
26-       } else {
27-               $user_data = get_user_by( 'login', trim( wp_unslash( $user_login ) ) );
28        }
29 
30        /**