WordPress.org

Make WordPress Core

Ticket #19470: 19470.3.patch

File 19470.3.patch, 9.5 KB (added by SergeyBiryukov, 3 years ago)

An attempt to add the link to all the "Add User" screens (unfinished)

  • wp-admin/network/site-users.php

     
    8383                                        wp_new_user_notification( $user_id, $password ); 
    8484                                        add_user_to_blog( $id, $user_id, $_POST['new_role'] ); 
    8585                                        $update = 'newuser'; 
     86                                        $referer = add_query_arg( 'user_id', $user_id, $referer ); 
    8687                                } 
    8788                        } 
    8889                        break; 
     
    9293                        if ( !empty( $_POST['newuser'] ) ) { 
    9394                                $update = 'adduser'; 
    9495                                $newuser = $_POST['newuser']; 
    95                                 $userid = $wpdb->get_var( $wpdb->prepare( "SELECT ID FROM " . $wpdb->users . " WHERE user_login = %s", $newuser ) ); 
    96                                 if ( $userid ) { 
    97                                         $user = $wpdb->get_var( "SELECT user_id FROM " . $wpdb->usermeta . " WHERE user_id='$userid' AND meta_key='{$blog_prefix}capabilities'" ); 
    98                                         if ( $user == false ) 
    99                                                 add_user_to_blog( $id, $userid, $_POST['new_role'] ); 
    100                                         else 
     96                                $user_id = $wpdb->get_var( $wpdb->prepare( "SELECT ID FROM " . $wpdb->users . " WHERE user_login = %s", $newuser ) ); 
     97                                if ( $user_id ) { 
     98                                        $user = $wpdb->get_var( "SELECT user_id FROM " . $wpdb->usermeta . " WHERE user_id = '$user_id' AND meta_key='{$blog_prefix}capabilities'" ); 
     99                                        if ( $user == false ) { 
     100                                                add_user_to_blog( $id, $user_id, $_POST['new_role'] ); 
     101                                                $referer = add_query_arg( 'user_id', $user_id, $referer ); 
     102                                        } else { 
    101103                                                $update = 'err_add_member'; 
     104                                        } 
    102105                                } else { 
    103106                                        $update = 'err_add_notfound'; 
    104107                                } 
     
    202205</h3><?php 
    203206 
    204207if ( isset($_GET['update']) ) : 
     208        if ( !empty( $_GET['user_id'] ) ) 
     209                $edit_link = esc_url( add_query_arg( 'wp_http_referer', urlencode( stripslashes( $_SERVER['REQUEST_URI'] ) ), 'user-edit.php?user_id=' . absint( $_GET['user_id'] ) ) ); 
     210 
    205211        switch($_GET['update']) { 
    206212        case 'adduser': 
    207                 echo '<div id="message" class="updated"><p>' . __( 'User added.' ) . '</p></div>'; 
     213                echo '<div id="message" class="updated"><p>' . sprintf( __( 'User added. <a href="%s">Edit User</a>' ), $edit_link ) . '</p></div>'; 
    208214                break; 
    209215        case 'err_add_member': 
    210216                echo '<div id="message" class="error"><p>' . __( 'User is already a member of this site.' ) . '</p></div>'; 
     
    225231                echo '<div id="message" class="error"><p>' . __( 'Select a user to remove.' ) . '</p></div>'; 
    226232                break; 
    227233        case 'newuser': 
    228                 echo '<div id="message" class="updated"><p>' . __( 'User created.' ) . '</p></div>'; 
     234                echo '<div id="message" class="updated"><p>' . sprintf( __( 'User created. <a href="%s">Edit User</a>' ), $edit_link ) . '</p></div>'; 
    229235                break; 
    230236        case 'err_new': 
    231237                echo '<div id="message" class="error"><p>' . __( 'Enter the username and email.' ) . '</p></div>'; 
  • wp-admin/network/user-new.php

     
    5151                        $add_user_errors = new WP_Error( 'add_user_fail', __( 'Cannot add user.' ) ); 
    5252                } else { 
    5353                        wp_new_user_notification( $user_id, $password ); 
    54                         wp_redirect( add_query_arg( array('update' => 'added'), 'user-new.php' ) ); 
     54                        wp_redirect( add_query_arg( array( 'update' => 'added', 'user_id' => $user_id ), 'user-new.php' ) ); 
    5555                        exit; 
    5656                } 
    5757        } 
     
    5959 
    6060if ( isset($_GET['update']) ) { 
    6161        $messages = array(); 
    62         if ( 'added' == $_GET['update'] ) 
    63                 $messages[] = __('User added.'); 
     62        if ( 'added' == $_GET['update'] ) { 
     63                $edit_link = esc_url( network_admin_url( 'user-edit.php?user_id=' . absint( $_GET['user_id'] ) ) ); 
     64                $messages[] = sprintf( __( 'User added. <a href="%s">Edit User</a>' ), $edit_link ); 
     65        } 
    6466} 
    6567 
    6668$title = __('Add New User'); 
  • wp-admin/network/users.php

     
    267267                                _e( 'Users deleted.' ); 
    268268                        break; 
    269269                        case 'add': 
    270                                 _e( 'User added.' ); 
     270                                $edit_link = esc_url( network_admin_url( add_query_arg( 'wp_http_referer', urlencode( stripslashes( $_SERVER['REQUEST_URI'] ) ), 'user-edit.php?user_id=' . absint( $_GET['user_id'] ) ) ) ); 
     271                                printf( __( 'User added. <a href="%s">Edit User</a>' ), $edit_link ); 
    271272                        break; 
    272273                } 
    273274                ?> 
  • wp-admin/user-new.php

     
    6868        } else { 
    6969                if ( isset( $_POST[ 'noconfirmation' ] ) && is_super_admin() ) { 
    7070                        add_existing_user_to_blog( array( 'user_id' => $user_id, 'role' => $_REQUEST[ 'role' ] ) ); 
    71                         $redirect = add_query_arg( array('update' => 'addnoconfirmation'), 'user-new.php' ); 
     71                        $redirect = add_query_arg( array( 'update' => 'addnoconfirmation', 'user_id' => $user_id ), 'user-new.php' ); 
    7272                } else { 
    7373                        $newuser_key = substr( md5( $user_id ), 0, 5 ); 
    7474                        add_option( 'new_user_' . $newuser_key, array( 'user_id' => $user_id, 'email' => $user_details->user_email, 'role' => $_REQUEST[ 'role' ] ) ); 
     
    9999                        $add_user_errors = $user_id; 
    100100                } else { 
    101101                        if ( current_user_can('edit_users') ) { 
    102                                 $new_user_login = apply_filters('pre_user_login', sanitize_user(stripslashes($_REQUEST['user_login']), true)); 
    103                                 $redirect = 'users.php?usersearch='. urlencode($new_user_login) . '&update=add' . '#user-' . $user_id; 
     102                                $new_user_login = apply_filters( 'pre_user_login', sanitize_user( stripslashes( $_REQUEST['user_login'] ), true ) ); 
     103                                $redirect = 'users.php?usersearch='. urlencode( $new_user_login ) . '&update=add&user_id=' . $user_id; 
    104104                        } else { 
    105105                                $redirect = add_query_arg( 'update', 'add', 'user-new.php' ); 
    106106                        } 
     
    122122                        if ( isset( $_POST[ 'noconfirmation' ] ) && is_super_admin() ) { 
    123123                                $key = $wpdb->get_var( $wpdb->prepare( "SELECT activation_key FROM {$wpdb->signups} WHERE user_login = %s AND user_email = %s", $new_user_login, $_REQUEST[ 'email' ] ) ); 
    124124                                wpmu_activate_signup( $key ); 
    125                                 $redirect = add_query_arg( array('update' => 'addnoconfirmation'), 'user-new.php' ); 
     125                                $redirect = add_query_arg( array( 'update' => 'addnoconfirmation', 'user_id' => get_user_by( 'login', $new_user_login )->ID ), 'user-new.php' ); 
    126126                        } else { 
    127                                 $redirect = add_query_arg( array('update' => 'newuserconfimation'), 'user-new.php' ); 
     127                                $redirect = add_query_arg( array( 'update' => 'newuserconfimation' ), 'user-new.php' ); 
    128128                        } 
    129129                        wp_redirect( $redirect ); 
    130130                        die(); 
     
    190190 
    191191if ( isset($_GET['update']) ) { 
    192192        $messages = array(); 
     193 
     194        if ( !empty( $_GET['user_id'] ) ) 
     195                $edit_link = esc_url( admin_url( 'user-edit.php?user_id=' . absint( $_GET['user_id'] ) ) ); 
     196 
    193197        if ( is_multisite() ) { 
    194198                switch ( $_GET['update'] ) { 
    195                         case "newuserconfimation": 
    196                                 $messages[] = __('Invitation email sent to new user. A confirmation link must be clicked before their account is created.'); 
     199                        case 'newuserconfimation': 
     200                                $messages[] = __( 'Invitation email sent to new user. A confirmation link must be clicked before their account is created.' ); 
    197201                                break; 
    198                         case "add": 
    199                                 $messages[] = __('Invitation email sent to user. A confirmation link must be clicked for them to be added to your site.'); 
     202                        case 'add': 
     203                                $messages[] = __( 'Invitation email sent to user. A confirmation link must be clicked for them to be added to your site.' ); 
    200204                                break; 
    201                         case "addnoconfirmation": 
    202                                 $messages[] = __('User has been added to your site.'); 
     205                        case 'addnoconfirmation': 
     206                                $messages[] =  sprintf( __( 'User has been added to your site. <a href="%s">Edit User</a>' ), $edit_link ); 
    203207                                break; 
    204                         case "addexisting": 
    205                                 $messages[] = __('That user is already a member of this site.'); 
     208                        case 'addexisting': 
     209                                $messages[] = __( 'That user is already a member of this site.' ); 
    206210                                break; 
    207                         case "does_not_exist": 
    208                                 $messages[] = __('The requested user does not exist.'); 
     211                        case 'does_not_exist': 
     212                                $messages[] = __( 'The requested user does not exist.' ); 
    209213                                break; 
    210                         case "does_not_exist": 
    211                                 $messages[] = __('Please enter a valid email address.'); 
     214                        case 'does_not_exist': 
     215                                $messages[] = __( 'Please enter a valid email address.' ); 
    212216                                break; 
    213217                } 
    214218        } else { 
    215219                if ( 'add' == $_GET['update'] ) 
    216                         $messages[] = __('User added.'); 
     220                        $messages[] = sprintf( __( 'User added. <a href="%s">Edit User</a>' ), $edit_link ); 
    217221        } 
    218222} 
    219223?> 
  • wp-admin/users.php

     
    346346                case 'del': 
    347347                case 'del_many': 
    348348                        $delete_count = isset($_GET['delete_count']) ? (int) $_GET['delete_count'] : 0; 
    349                         $messages[] = '<div id="message" class="updated"><p>' . sprintf(_n('%s user deleted', '%s users deleted', $delete_count), $delete_count) . '</p></div>'; 
     349                        $messages[] = '<div id="message" class="updated"><p>' . sprintf( _n( '%s user deleted', '%s users deleted', $delete_count ), $delete_count ) . '</p></div>'; 
    350350                        break; 
    351351                case 'add': 
    352                         $messages[] = '<div id="message" class="updated"><p>' . __('New user created.') . '</p></div>'; 
     352                        $edit_link = esc_url( add_query_arg( 'wp_http_referer', urlencode( stripslashes( $_SERVER['REQUEST_URI'] ) ), 'user-edit.php?user_id=' . absint( $_GET['user_id'] ) ) ); 
     353                        $messages[] = '<div id="message" class="updated"><p>' . sprintf( __( 'New user created. <a href="%s">Edit User</a>' ), $edit_link ) . '</p></div>'; 
    353354                        break; 
    354355                case 'promote': 
    355356                        $messages[] = '<div id="message" class="updated"><p>' . __('Changed roles.') . '</p></div>';