WordPress.org

Make WordPress Core

Ticket #37373: 37373.1.diff

File 37373.1.diff, 3.4 KB (added by ocean90, 4 years ago)
  • src/wp-admin/includes/ajax-actions.php

     
    37883788function wp_ajax_search_plugins() {
    37893789        check_ajax_referer( 'updates' );
    37903790
    3791         global $wp_list_table, $hook_suffix, $s;
    3792         $hook_suffix = 'plugins.php';
     3791        $pagenow = wp_unslash( $_POST['pagenow'] );
     3792        if ( 'plugins-network' === $pagenow || 'plugins' === $pagenow ) {
     3793                set_current_screen( $pagenow );
     3794        }
    37933795
    37943796        /** @var WP_Plugins_List_Table $wp_list_table */
    3795         $wp_list_table = _get_list_table( 'WP_Plugins_List_Table' );
    3796         $status        = array();
     3797        $wp_list_table = _get_list_table( 'WP_Plugins_List_Table', array(
     3798                'screen' => get_current_screen(),
     3799        ) );
    37973800
     3801        $status = array();
     3802
    37983803        if ( ! $wp_list_table->ajax_user_can() ) {
    37993804                $status['errorMessage'] = __( 'Sorry, you are not allowed to manage plugins for this site.' );
    38003805                wp_send_json_error( $status );
     
    38063811                'action'      => null,
    38073812        ) ), network_admin_url( 'plugins.php', 'relative' ) );
    38083813
     3814        global $s;
    38093815        $s = sanitize_text_field( $_POST['s'] );
    38103816
    38113817        $wp_list_table->prepare_items();
     
    38223828 * Ajax handler for searching plugins to install.
    38233829 *
    38243830 * @since 4.6.0
    3825  *
    3826  * @global WP_List_Table $wp_list_table Current list table instance.
    3827  * @global string        $hook_suffix   Current admin page.
    38283831 */
    38293832function wp_ajax_search_install_plugins() {
    38303833        check_ajax_referer( 'updates' );
    38313834
    3832         global $wp_list_table, $hook_suffix;
    3833         $hook_suffix = 'plugin-install.php';
     3835        $pagenow = wp_unslash( $_POST['pagenow'] );
     3836        if ( 'plugin-install-network' === $pagenow || 'plugin-install' === $pagenow ) {
     3837                set_current_screen( $pagenow );
     3838        }
    38343839
    38353840        /** @var WP_Plugin_Install_List_Table $wp_list_table */
    3836         $wp_list_table = _get_list_table( 'WP_Plugin_Install_List_Table' );
    3837         $status        = array();
     3841        $wp_list_table = _get_list_table( 'WP_Plugin_Install_List_Table', array(
     3842                'screen' => get_current_screen(),
     3843        ) );
    38383844
     3845        $status = array();
     3846
    38393847        if ( ! $wp_list_table->ajax_user_can() ) {
    38403848                $status['errorMessage'] = __( 'Sorry, you are not allowed to manage plugins for this site.' );
    38413849                wp_send_json_error( $status );
  • src/wp-admin/js/updates.js

     
    20332033                                        _ajax_nonce: wp.updates.ajaxNonce,
    20342034                                        s:           $( '<p />' ).html( $( this ).val() ).text(),
    20352035                                        tab:         'search',
    2036                                         type:        $( '#typeselector' ).val()
     2036                                        type:        $( '#typeselector' ).val(),
     2037                                        pagenow:     pagenow
    20372038                                }, { type: 'term' } );
    20382039
    20392040                        if ( wp.updates.searchTerm === data.s ) {
     
    20432044                        }
    20442045
    20452046                        if ( history.pushState ) {
    2046                                 history.pushState( null, '', location.href.split( '?' )[ 0 ] + '?' + $.param( _.omit( data, '_ajax_nonce' ) ) );
     2047                                history.pushState( null, '', location.href.split( '?' )[ 0 ] + '?' + $.param( _.omit( data, [ '_ajax_nonce', 'pagenow' ] ) ) );
    20472048                        }
    20482049
    20492050                        if ( 'undefined' !== typeof wp.updates.searchRequest ) {
     
    20712072                $pluginSearch.on( 'keyup input', _.debounce( function( event ) {
    20722073                        var data = {
    20732074                                _ajax_nonce: wp.updates.ajaxNonce,
    2074                                 s:           event.target.value
     2075                                s:           event.target.value,
     2076                                pagenow:     pagenow
    20752077                        };
    20762078
    20772079                        // Clear on escape.