diff --git a/src/wp-admin/network/user-new.php b/src/wp-admin/network/user-new.php index 0f7eba1c2d650..0a1402955ae5a 100644 --- a/src/wp-admin/network/user-new.php +++ b/src/wp-admin/network/user-new.php @@ -77,6 +77,15 @@ } } +$username = ''; +$email = ''; +if ( isset( $_REQUEST['action'] ) && 'add-user' === $_REQUEST['action'] && ! empty( $add_user_errors ) && is_wp_error( $add_user_errors ) ) { + if ( isset( $_POST['user'] ) && is_array( $_POST['user'] ) ) { + $username = isset( $_POST['user']['username'] ) ? wp_unslash( $_POST['user']['username'] ) : ''; + $email = isset( $_POST['user']['email'] ) ? wp_unslash( $_POST['user']['email'] ) : ''; + } +} + $message = ''; if ( isset( $_GET['update'] ) ) { if ( 'added' === $_GET['update'] ) { @@ -139,11 +148,11 @@ - + - + diff --git a/src/wp-admin/user-new.php b/src/wp-admin/user-new.php index cdc1dfef1e8d9..a606706420c2e 100644 --- a/src/wp-admin/user-new.php +++ b/src/wp-admin/user-new.php @@ -32,8 +32,15 @@ if ( isset( $_REQUEST['action'] ) && 'adduser' === $_REQUEST['action'] ) { check_admin_referer( 'add-user', '_wpnonce_add-user' ); - $user_details = null; - $user_email = wp_unslash( $_REQUEST['email'] ); + $user_details = null; + $redirect_args = array(); + foreach ( array( 'email', 'role', 'noconfirmation' ) as $redirect_arg ) { + if ( isset( $_REQUEST[ $redirect_arg ] ) ) { + $redirect_args[ $redirect_arg ] = $_REQUEST[ $redirect_arg ]; + } + } + + $user_email = wp_unslash( $_REQUEST['email'] ); if ( str_contains( $user_email, '@' ) ) { $user_details = get_user_by( 'email', $user_email ); @@ -41,13 +48,15 @@ if ( current_user_can( 'manage_network_users' ) ) { $user_details = get_user_by( 'login', $user_email ); } else { - wp_redirect( add_query_arg( array( 'update' => 'enter_email' ), 'user-new.php' ) ); + $redirect_args['update'] = 'enter_email'; + wp_redirect( add_query_arg( $redirect_args, 'user-new.php' ) ); die(); } } if ( ! $user_details ) { - wp_redirect( add_query_arg( array( 'update' => 'does_not_exist' ), 'user-new.php' ) ); + $redirect_args['update'] = 'does_not_exist'; + wp_redirect( add_query_arg( $redirect_args, 'user-new.php' ) ); die(); } @@ -469,15 +478,26 @@ + - + @@ -485,7 +505,7 @@