WordPress.org

Make WordPress Core

Ticket #13378: 13378.nonce.diff

File 13378.nonce.diff, 2.0 KB (added by koopersmith, 4 years ago)
  • wp-admin/admin-ajax.php

     
    11061106case 'menu-locations-save': 
    11071107        if ( ! current_user_can( 'edit_theme_options' ) ) 
    11081108                die('-1'); 
     1109        check_ajax_referer( 'add-menu_item', 'menu-settings-column-nonce' ); 
    11091110        if ( ! isset( $_POST['menu-locations' ] ) ) 
    11101111                die('0'); 
    11111112        set_theme_mod( 'nav_menu_locations', $_POST['menu-locations'] ); 
  • wp-admin/js/nav-menu.dev.js

     
    3434                        this.setupInputWithDefaultTitle(); 
    3535                        this.attachAddMenuItemListeners(); 
    3636                        this.attachQuickSearchListeners(); 
     37                        this.attachThemeLocationsListeners(); 
    3738 
    3839                        this.attachTabsPanelListeners(); 
    3940 
     
    329330                }, 
    330331 
    331332                attachAddMenuItemListeners : function() { 
    332                         var form = $('#nav-menu-meta'), loc = form.find('#nav-menu-theme-locations'); 
     333                        var form = $('#nav-menu-meta'); 
    333334                 
    334335                        form.find('.add-to-menu input').click(function(){ 
    335336                                $(this).trigger('wp-add-menu-item', [api.addMenuItemToBottom]); 
     
    341342                        form.find('.posttypediv, .taxonomydiv').bind('wp-add-menu-item', function(e, processMethod) { 
    342343                                $(this).addSelectedToMenu( processMethod ); 
    343344                        }); 
     345                }, 
     346                 
     347                attachThemeLocationsListeners : function() { 
     348                        var loc = $('#nav-menu-theme-locations'), 
     349                        params = { 
     350                                'action': 'menu-locations-save', 
     351                                'menu-locations': loc.find('select').serialize(), 
     352                                'menu-settings-column-nonce': $('#menu-settings-column-nonce').val() 
     353                        }; 
    344354                        loc.find('input[type=submit]').click(function() { 
    345355                                loc.find('.waiting').show(); 
    346                                 $.post( ajaxurl, loc.find('select').serialize() + '&action=menu-locations-save', function(r) { 
     356                                $.post( ajaxurl, params, function(r) { 
    347357                                        loc.find('.waiting').hide(); 
    348358                                }); 
    349359                                return false;