diff --git a/wp-admin/network/site-users.php b/wp-admin/network/site-users.php index 3d68111c50..fe15095a68 100644 --- a/wp-admin/network/site-users.php +++ b/wp-admin/network/site-users.php @@ -22,11 +22,6 @@ $wp_list_table->prepare_items(); $action = $wp_list_table->current_action(); -$s = isset($_REQUEST['s']) ? $_REQUEST['s'] : ''; - -// Clean up request URI from temporary args for screen options/paging uri's to work as expected. -$_SERVER['REQUEST_URI'] = remove_query_arg(array('enable', 'disable', 'enable-selected', 'disable-selected'), $_SERVER['REQUEST_URI']); - $id = isset( $_REQUEST['id'] ) ? intval( $_REQUEST['id'] ) : 0; if ( ! $id ) @@ -55,9 +50,27 @@ if ( $action ) { switch_to_blog( $id ); switch ( $action ) { + case 'newuser': + $user = $_POST['user']; + if ( !is_array( $_POST['user'] ) || empty( $user['username'] ) || empty( $user['email'] ) ) { + $update = 'err_new'; + } else { + $password = wp_generate_password( 12, false); + $user_id = wpmu_create_user( esc_html( strtolower( $user['username'] ) ), $password, esc_html( $user['email'] ) ); + + if ( false == $user_id ) { + $update = 'err_new_dup'; + } else { + wp_new_user_notification( $user_id, $password ); + add_user_to_blog( $id, $user_id, $_POST['new_role'] ); + $update = 'newuser'; + } + } + break; + case 'adduser': if ( !empty( $_POST['newuser'] ) ) { - $update = 'add'; + $update = 'adduser'; $newuser = $_POST['newuser']; $userid = $wpdb->get_var( $wpdb->prepare( "SELECT ID FROM " . $wpdb->users . " WHERE user_login = %s", $newuser ) ); if ( $userid ) { @@ -151,7 +164,7 @@ foreach ( $tabs as $tab_id => $tab ) { if ( isset($_GET['update']) ) : switch($_GET['update']) { - case 'add': + case 'adduser': echo '

' . __( 'User added.' ) . '

'; break; case 'err_add_member': @@ -167,11 +180,20 @@ if ( isset($_GET['update']) ) : echo '

' . __( 'Select a user to change role.' ) . '

'; break; case 'remove': - echo '

' . __( 'User removed from this site.' ) . '

'; + echo '

' . __( 'User removed from this site.' ) . '

'; break; case 'err_remove': echo '

' . __( 'Select a user to remove.' ) . '

'; break; + case 'newuser': + echo '

' . __( 'User created.' ) . '

'; + break; + case 'err_new': + echo '

' . __( 'Enter the username and email.' ) . '

'; + break; + case 'err_new_dup': + echo '

' . __( 'Duplicated username or email address.' ) . '

'; + break; } endif; ?> @@ -193,15 +215,15 @@ endif; ?> -

-

-
+

+

+ - + @@ -219,7 +241,42 @@ endif; ?>
-
+ + +

+

+
+ + + + + + + + + + + + + + + + + + +
+ + +