Make WordPress Core

Changeset 36695


Ignore:
Timestamp:
02/24/2016 09:42:02 PM (7 years ago)
Author:
jeremyfelt
Message:

Multisite: Provide an "Edit user" link after adding a new user

Props codex-m, jeremyfelt.
Fixes #35705.

Location:
trunk/src/wp-admin
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/wp-admin/network/user-new.php

    r36556 r36695  
    6060              */
    6161            do_action( 'network_user_new_created_user', $user_id );
    62             wp_redirect( add_query_arg( array('update' => 'added'), 'user-new.php' ) );
     62            wp_redirect( add_query_arg( array('update' => 'added', 'user_id' => $user_id ), 'user-new.php' ) );
    6363            exit;
    6464        }
     
    6868if ( isset($_GET['update']) ) {
    6969    $messages = array();
    70     if ( 'added' == $_GET['update'] )
    71         $messages[] = __('User added.');
     70    if ( 'added' == $_GET['update'] ) {
     71        $edit_link = '';
     72        if ( isset( $_GET['user_id'] ) ) {
     73            $user_id_new = absint( $_GET['user_id'] );
     74            if ( $user_id_new ) {
     75                $edit_link = esc_url( add_query_arg( 'wp_http_referer', urlencode( wp_unslash( $_SERVER['REQUEST_URI'] ) ), get_edit_user_link( $user_id_new ) ) );
     76            }
     77        }
     78
     79        if ( empty( $edit_link ) ) {
     80            $messages[] = __( 'User added.' );
     81        } else {
     82            $messages[] = sprintf( __( 'User added. <a href="%1$s">Edit User</a>' ), $edit_link );
     83        }
     84    }
    7285}
    7386
  • trunk/src/wp-admin/user-edit.php

    r36679 r36695  
    5656);
    5757
    58 $wp_http_referer = remove_query_arg(array('update', 'delete_count'), $wp_http_referer );
     58$wp_http_referer = remove_query_arg( array( 'update', 'delete_count', 'user_id' ), $wp_http_referer );
    5959
    6060$user_can_edit = current_user_can( 'edit_posts' ) || current_user_can( 'edit_pages' );
     
    180180    <p><strong><?php _e('User updated.') ?></strong></p>
    181181    <?php endif; ?>
    182     <?php if ( $wp_http_referer && !IS_PROFILE_PAGE ) : ?>
     182    <?php if ( $wp_http_referer && false === strpos( $wp_http_referer, 'user-new.php' ) && ! IS_PROFILE_PAGE ) : ?>
    183183    <p><a href="<?php echo esc_url( $wp_http_referer ); ?>"><?php _e('&larr; Back to Users'); ?></a></p>
    184184    <?php endif; ?>
  • trunk/src/wp-admin/user-new.php

    r35742 r36695  
    6969        if ( isset( $_POST[ 'noconfirmation' ] ) && current_user_can( 'manage_network_users' ) ) {
    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 );
     
    148148            if ( isset( $_POST[ 'noconfirmation' ] ) && current_user_can( 'manage_network_users' ) ) {
    149149                $key = $wpdb->get_var( $wpdb->prepare( "SELECT activation_key FROM {$wpdb->signups} WHERE user_login = %s AND user_email = %s", $new_user_login, $new_user_email ) );
    150                 wpmu_activate_signup( $key );
    151                 $redirect = add_query_arg( array('update' => 'addnoconfirmation'), 'user-new.php' );
     150                $new_user = wpmu_activate_signup( $key );
     151                if ( ! is_wp_error( $new_user ) ) {
     152                    $redirect = add_query_arg( array( 'update' => 'addnoconfirmation' ), 'user-new.php' );
     153                } else {
     154                    $redirect = add_query_arg( array( 'update' => 'addnoconfirmation', 'user_id' => $new_user['user_id'] ), 'user-new.php' );
     155                }
    152156            } else {
    153157                $redirect = add_query_arg( array('update' => 'newuserconfirmation'), 'user-new.php' );
     
    224228    $messages = array();
    225229    if ( is_multisite() ) {
     230        $edit_link = '';
     231        if ( ( isset( $_GET['user_id'] ) ) ) {
     232            $user_id_new = absint( $_GET['user_id'] );
     233            if ( $user_id_new ) {
     234                $edit_link = esc_url( add_query_arg( 'wp_http_referer', urlencode( wp_unslash( $_SERVER['REQUEST_URI'] ) ), get_edit_user_link( $user_id_new ) ) );
     235            }
     236        }
     237
    226238        switch ( $_GET['update'] ) {
    227239            case "newuserconfirmation":
     
    232244                break;
    233245            case "addnoconfirmation":
    234                 $messages[] = __('User has been added to your site.');
     246                if ( empty( $edit_link ) ) {
     247                    $messages[] = __( 'User has been added to your site.' );
     248                } else {
     249                    $messages[] = sprintf( __( 'User has been added to your site. <a href="%1$s">Edit User</a>' ), $edit_link );
     250                }
    235251                break;
    236252            case "addexisting":
Note: See TracChangeset for help on using the changeset viewer.