Skip to:
Content

bbPress.org

Ticket #3144: trac-3144-1-user-import-update-existing-user.patch

File trac-3144-1-user-import-update-existing-user.patch, 1.7 KB (added by jrf, 2 years ago)

Update existing user instead of importing as new

  • src/includes/admin/classes/class-bbp-converter-base.php

     
    477477                                                        /** New user **************************************/
    478478
    479479                                                        case 'user':
    480                                                                 if ( username_exists( $insert_post['user_login'] ) ) {
    481                                                                         $insert_post['user_login'] = 'imported_' . $insert_post['user_login'];
    482                                                                 }
    483480
    484                                                                 if ( email_exists( $insert_post['user_email'] ) ) {
    485                                                                         $insert_post['user_email'] = 'imported_' . $insert_post['user_email'];
     481                                                                $sanitized_user_login = sanitize_user( $insert_post['user_login'], true );
     482
     483                                                                // Both return the user's ID on success, and false on failure.
     484                                                                $user_exists  = username_exists( $sanitized_user_login );
     485                                                                $email_exists = email_exists( $insert_post['user_email'] );
     486
     487                                                                if ( $user_exists !== false && $email_exists !== false
     488                                                                        && $user_exists === $email_exists
     489                                                                ) {
     490                                                                        // Update an existing user instead of inserting a new one.
     491                                                                        $insert_post['ID'] = $user_exists;
     492                                                                } else {
     493                                                                        if ( $user_exists ) {
     494                                                                                $insert_post['user_login'] = 'imported_' . $sanitized_user_login;
     495                                                                        }
     496
     497                                                                        if ( $email_exists ) {
     498                                                                                $insert_post['user_email'] = 'imported_' . $insert_post['user_email'];
     499                                                                        }
    486500                                                                }
    487501
    488502                                                                if ( empty( $insert_post['user_pass'] ) ) {
     
    502516                                                                                }
    503517                                                                        }
    504518                                                                }
     519
     520                                                                unset( $sanitized_user_login, $user_exists, $email_exists );
    505521                                                                break;
    506522
    507523                                                        /** New Topic-Tag *********************************/