Merge pull request #748 from ultimatemember/fix/sanitize_user_login_on_registration

Sanitize the user_login created from first_name and last_name
This commit is contained in:
Nikita Sinelnikov
2021-02-10 14:09:45 +02:00
committed by GitHub
+24 -16
View File
@@ -314,24 +314,32 @@ function um_submit_form_register( $args ) {
if ( ! empty( $first_name ) && ! empty( $last_name ) && empty( $user_login ) ) {
if ( UM()->options()->get( 'permalink_base' ) == 'name' ) {
$user_login = rawurlencode( strtolower( str_replace( " ", ".", $first_name . " " . $last_name ) ) );
} elseif ( UM()->options()->get( 'permalink_base' ) == 'name_dash' ) {
$user_login = rawurlencode( strtolower( str_replace( " ", "-", $first_name . " " . $last_name ) ) );
} elseif ( UM()->options()->get( 'permalink_base' ) == 'name_plus' ) {
$user_login = strtolower( str_replace( " ", "+", $first_name . " " . $last_name ) );
} else {
$user_login = strtolower( str_replace( " ", "", $first_name . " " . $last_name ) );
}
switch ( UM()->options()->get( 'permalink_base' ) ) {
case 'name':
$user_login = str_replace( " ", ".", $first_name . " " . $last_name );
break;
// if full name exists
$count = 1;
$temp_user_login = $user_login;
while ( username_exists( $temp_user_login ) ) {
$temp_user_login = $user_login . $count;
$count++;
case 'name_dash':
$user_login = str_replace( " ", "-", $first_name . " " . $last_name );
break;
case 'name_plus':
$user_login = str_replace( " ", "+", $first_name . " " . $last_name );
break;
default:
$user_login = str_replace( " ", "", $first_name . " " . $last_name );
break;
}
if ( $temp_user_login !== $user_login ) {
$user_login = sanitize_user( strtolower( remove_accents( $user_login ) ), true );
if ( $user_login ) {
$count = 1;
$temp_user_login = $user_login;
while ( username_exists( $temp_user_login ) ) {
$temp_user_login = $user_login . $count;
$count++;
}
$user_login = $temp_user_login;
}
}