WordPress.org

Make WordPress Core

Ticket #22367: 22367.3.patch

File 22367.3.patch, 2.1 KB (added by gravitylover, 5 years ago)

patch incorporating modifications by JJJ and johnbillion

  • src/wp-admin/user-new.php

     
    3434
    3535        $user_details = null;
    3636        $user_email = wp_unslash( $_REQUEST['email'] );
    37         if ( false !== strpos( $user_email, '@' ) ) {
     37        if ( is_email( $user_email ) ) {
    3838                $user_details = get_user_by( 'email', $user_email );
    3939        } else {
    4040                if ( is_super_admin() ) {
  • src/wp-includes/class-wp-user-query.php

     
    373373                        if ( $qv['search_columns'] )
    374374                                $search_columns = array_intersect( $qv['search_columns'], array( 'ID', 'user_login', 'user_email', 'user_url', 'user_nicename' ) );
    375375                        if ( ! $search_columns ) {
    376                                 if ( false !== strpos( $search, '@') )
    377                                         $search_columns = array('user_email');
     376                                if ( false !== strpos( $search, '@' ) )
     377                                        $search_columns = array( 'user_email', 'user_login' );
    378378                                elseif ( is_numeric($search) )
    379379                                        $search_columns = array('user_login', 'ID');
    380380                                elseif ( preg_match('|^https?://|', $search) && ! ( is_multisite() && wp_is_large_network( 'users' ) ) )
  • src/wp-login.php

     
    282282
    283283        if ( empty( $_POST['user_login'] ) ) {
    284284                $errors->add('empty_username', __('<strong>ERROR</strong>: Enter a username or email address.'));
    285         } elseif ( strpos( $_POST['user_login'], '@' ) ) {
     285        } elseif ( is_email( $_POST['user_login'] ) ) {
    286286                $user_data = get_user_by( 'email', trim( $_POST['user_login'] ) );
    287287                if ( empty( $user_data ) )
     288                        $user_data = get_user_by( 'login', trim( $_POST['user_login'] ) );
     289                if ( empty( $user_data ) )
    288290                        $errors->add('invalid_email', __('<strong>ERROR</strong>: There is no user registered with that email address.'));
    289291        } else {
    290292                $login = trim($_POST['user_login']);