WordPress.org

Make WordPress Core

Ticket #16248: 16248.3.diff

File 16248.3.diff, 5.1 KB (added by PeteMall, 7 years ago)

Fixed ajax search query vars.

  • wp-admin/users.php

     
    3232
    3333if ( empty($_REQUEST) ) {
    3434        $referer = '<input type="hidden" name="wp_http_referer" value="'. esc_attr(stripslashes($_SERVER['REQUEST_URI'])) . '" />';
    35 } elseif ( isset($_REQUEST['wp_http_referer']) ) {
    36         $redirect = remove_query_arg(array('wp_http_referer', 'updated', 'delete_count'), stripslashes($_REQUEST['wp_http_referer']));
    37         $referer = '<input type="hidden" name="wp_http_referer" value="' . esc_attr($redirect) . '" />';
     35} elseif ( $ref = wp_get_referer() ) {
     36        $redirect = remove_query_arg( array( '_wp_http_referer', 'updated', 'delete_count' ), stripslashes( $ref ) );
     37        $referer = '<input type="hidden" name="_wp_http_referer" value="' . esc_attr($redirect) . '" />';
    3838} else {
    3939        $redirect = 'users.php';
    4040        $referer = '';
  • wp-admin/includes/class-wp-users-list-table.php

     
    208208         * @return string
    209209         */
    210210        function single_row( $user_object, $style = '', $role = '', $numposts = 0 ) {
    211                 global $wp_roles;
     211                global $wp_roles, $usersearch;
    212212
    213213                if ( !( is_object( $user_object ) && is_a( $user_object, 'WP_User' ) ) )
    214214                        $user_object = new WP_User( (int) $user_object );
     
    228228                        if ( get_current_user_id() == $user_object->ID ) {
    229229                                $edit_link = 'profile.php';
    230230                        } else {
    231                                 $edit_link = esc_url( add_query_arg( 'wp_http_referer', urlencode( esc_url( stripslashes( $_SERVER['REQUEST_URI'] ) ) ), "user-edit.php?user_id=$user_object->ID" ) );
     231                                $referer = defined('DOING_AJAX') ? add_query_arg( array( 'paged' => $this->get_pagenum(), 's' => $usersearch ), wp_get_referer() ) : $_SERVER['REQUEST_URI'];
     232                                $edit_link = add_query_arg( '_wp_http_referer', urlencode( $referer ), "user-edit.php?user_id=$user_object->ID" );
    232233                        }
    233234
    234235                        // Set up the hover actions for this user
  • wp-admin/includes/class-wp-ms-users-list-table.php

     
    131131        }
    132132
    133133        function display_rows() {
    134                 global $current_site, $mode;
     134                global $current_site, $mode, $usersearch;
    135135
    136136                $alt = '';
    137137                $super_admins = get_super_admins();
     
    174174                                                if ( get_current_user_id() == $user->ID ) {
    175175                                                        $edit_link = esc_url( network_admin_url( 'profile.php' ) );
    176176                                                } else {
    177                                                         $edit_link = esc_url( network_admin_url( add_query_arg( 'wp_http_referer', urlencode( stripslashes( $_SERVER['REQUEST_URI'] ) ), 'user-edit.php?user_id=' . $user->ID ) ) );
     177                                                        $referer = defined('DOING_AJAX') ? add_query_arg( array( 'paged' => $this->get_pagenum(), 's' => $usersearch ), wp_get_referer() ) : $_SERVER['REQUEST_URI'];
     178                                                        $edit_link = add_query_arg( '_wp_http_referer', urlencode( $referer ), "user-edit.php?user_id=$user->ID" );
    178179                                                }
    179180
    180181                                                echo "<td $attributes>"; ?>
  • wp-admin/user-edit.php

     
    99/** WordPress Administration Bootstrap */
    1010require_once('./admin.php');
    1111
    12 wp_reset_vars(array('action', 'redirect', 'profile', 'user_id', 'wp_http_referer'));
     12wp_reset_vars(array('action', 'redirect', 'profile', 'user_id', '_wp_http_referer'));
    1313
    1414$user_id = (int) $user_id;
    1515$current_user = wp_get_current_user();
     
    4848    '<p>' . __('<a href="http://wordpress.org/support/" target="_blank">Support Forums</a>') . '</p>'
    4949);
    5050
     51$wp_http_referer = remove_query_arg(array('update', 'delete_count'), stripslashes(wp_get_referer()));
    5152
    52 $wp_http_referer = remove_query_arg(array('update', 'delete_count'), stripslashes($wp_http_referer));
    53 
    5453$all_post_caps = array('posts', 'pages');
    5554$user_can_edit = false;
    5655foreach ( $all_post_caps as $post_cap )
     
    148147if ( !is_wp_error( $errors ) ) {
    149148        $redirect = (IS_PROFILE_PAGE ? "profile.php?" : "user-edit.php?user_id=$user_id&"). "updated=true";
    150149        if ( $wp_http_referer )
    151                 $redirect = add_query_arg('wp_http_referer', urlencode($wp_http_referer), $redirect);
     150                $redirect = add_query_arg('_wp_http_referer', urlencode($wp_http_referer), $redirect);
    152151        wp_redirect($redirect);
    153152        exit;
    154153}
     
    184183<form id="your-profile" action="<?php echo esc_url( self_admin_url( IS_PROFILE_PAGE ? 'profile.php' : 'user-edit.php' ) ); ?>" method="post"<?php do_action('user_edit_form_tag'); ?>>
    185184<?php wp_nonce_field('update-user_' . $user_id) ?>
    186185<?php if ( $wp_http_referer ) : ?>
    187         <input type="hidden" name="wp_http_referer" value="<?php echo esc_url($wp_http_referer); ?>" />
     186        <input type="hidden" name="_wp_http_referer" value="<?php echo esc_url($wp_http_referer); ?>" />
    188187<?php endif; ?>
    189188<p>
    190189<input type="hidden" name="from" value="profile" />