$messages[] = '<div id="message" class="error"><p>' . __('Please enter a valid menu name.') . '</p></div>';
             $menu_title = $_menu_object->name;
         }
         if (!is_wp_error($_menu_object)) {
             $_nav_menu_selected_id = wp_update_nav_menu_object($nav_menu_selected_id, array('menu-name' => $menu_title));
             if (is_wp_error($_nav_menu_selected_id)) {
                 $_menu_object = $_nav_menu_selected_id;
                 $messages[] = '<div id="message" class="error"><p>' . $_nav_menu_selected_id->get_error_message() . '</p></div>';
             } else {
                 $_menu_object = wp_get_nav_menu_object($_nav_menu_selected_id);
                 $nav_menu_selected_title = $_menu_object->name;
             }
         }
         // Update menu items
         if (!is_wp_error($_menu_object)) {
             $messages = array_merge($messages, wp_nav_menu_update_menu_items($nav_menu_selected_id, $nav_menu_selected_title));
         }
     }
     break;
 case 'locations':
     if (!$num_locations) {
         wp_redirect(admin_url('nav-menus.php'));
         exit;
     }
     add_filter('screen_options_show_screen', '__return_false');
     if (isset($_POST['menu-locations'])) {
         check_admin_referer('save-menu-locations');
         $new_menu_locations = array_map('absint', $_POST['menu-locations']);
         $menu_locations = array_merge($menu_locations, $new_menu_locations);
         // Set menu locations
         set_theme_mod('nav_menu_locations', $menu_locations);
 /**
  * Saves wordpress menu using ajax calls
  *
  * @return json messages from nav-menus.php
  * @author
  **/
 public function wp_ajax_oxy_save_menu()
 {
     @error_reporting(0);
     // Don't break the JSON result
     // parse variables sent from $.serialize into an array
     $oxy_menu_to_save = json_decode(stripslashes($_POST['menu']), true);
     // set request and post to parsed menu data to fake the request
     $_REQUEST = $oxy_menu_to_save;
     $_POST = $oxy_menu_to_save;
     require_once ABSPATH . 'wp-admin/includes/nav-menu.php';
     // Container for any messages displayed to the user
     $messages = array();
     // Container that stores the name of the active menu
     $nav_menu_selected_title = '';
     // The menu id of the current menu being edited
     $nav_menu_selected_id = isset($_REQUEST['menu']) ? (int) $_REQUEST['menu'] : 0;
     // Get existing menu locations assignments
     $locations = get_registered_nav_menus();
     $menu_locations = get_nav_menu_locations();
     $num_locations = count(array_keys($locations));
     check_admin_referer('update-nav_menu', 'update-nav-menu-nonce');
     // Remove menu locations that have been unchecked
     foreach ($locations as $location => $description) {
         if ((empty($_POST['menu-locations']) || empty($_POST['menu-locations'][$location])) && isset($menu_locations[$location]) && $menu_locations[$location] == $nav_menu_selected_id) {
             unset($menu_locations[$location]);
         }
     }
     // Merge new and existing menu locations if any new ones are set
     if (isset($_POST['menu-locations'])) {
         $new_menu_locations = array_map('absint', $_POST['menu-locations']);
         $menu_locations = array_merge($menu_locations, $new_menu_locations);
     }
     // Set menu locations
     set_theme_mod('nav_menu_locations', $menu_locations);
     // Add Menu
     if (0 == $nav_menu_selected_id) {
         $new_menu_title = trim(esc_html($_POST['menu-name']));
         if ($new_menu_title) {
             $_nav_menu_selected_id = wp_update_nav_menu_object(0, array('menu-name' => $new_menu_title));
             if (is_wp_error($_nav_menu_selected_id)) {
                 $messages[] = '<div id="message" class="error"><p>' . $_nav_menu_selected_id->get_error_message() . '</p></div>';
             } else {
                 $_menu_object = wp_get_nav_menu_object($_nav_menu_selected_id);
                 $nav_menu_selected_id = $_nav_menu_selected_id;
                 $nav_menu_selected_title = $_menu_object->name;
                 if (isset($_REQUEST['menu-item'])) {
                     wp_save_nav_menu_items($nav_menu_selected_id, absint($_REQUEST['menu-item']));
                 }
                 if (isset($_REQUEST['zero-menu-state'])) {
                     // If there are menu items, add them
                     wp_nav_menu_update_menu_items($nav_menu_selected_id, $nav_menu_selected_title);
                     // Auto-save nav_menu_locations
                     $locations = get_nav_menu_locations();
                     foreach ($locations as $location => $menu_id) {
                         $locations[$location] = $nav_menu_selected_id;
                         break;
                         // There should only be 1
                     }
                     set_theme_mod('nav_menu_locations', $locations);
                 }
                 if (isset($_REQUEST['use-location'])) {
                     $locations = get_registered_nav_menus();
                     $menu_locations = get_nav_menu_locations();
                     if (isset($locations[$_REQUEST['use-location']])) {
                         $menu_locations[$_REQUEST['use-location']] = $nav_menu_selected_id;
                     }
                     set_theme_mod('nav_menu_locations', $menu_locations);
                 }
                 // $messages[] = '<div id="message" class="updated"><p>' . sprintf(__('<strong>%s</strong> has been created.'), $nav_menu_selected_title) . '</p></div>';
                 wp_redirect(admin_url('nav-menus.php?menu=' . $_nav_menu_selected_id));
                 exit;
             }
         } else {
             $messages[] = '<div id="message" class="error"><p>' . __('Please enter a valid menu name.', 'lambda-admin-td') . '</p></div>';
         }
         // Update existing menu
     } else {
         $_menu_object = wp_get_nav_menu_object($nav_menu_selected_id);
         $menu_title = trim(esc_html($_POST['menu-name']));
         if (!$menu_title) {
             $messages[] = '<div id="message" class="error"><p>' . __('Please enter a valid menu name.', 'lambda-admin-td') . '</p></div>';
             $menu_title = $_menu_object->name;
         }
         if (!is_wp_error($_menu_object)) {
             $_nav_menu_selected_id = wp_update_nav_menu_object($nav_menu_selected_id, array('menu-name' => $menu_title));
             if (is_wp_error($_nav_menu_selected_id)) {
                 $_menu_object = $_nav_menu_selected_id;
                 $messages[] = '<div id="message" class="error"><p>' . $_nav_menu_selected_id->get_error_message() . '</p></div>';
             } else {
                 $_menu_object = wp_get_nav_menu_object($_nav_menu_selected_id);
                 $nav_menu_selected_title = $_menu_object->name;
             }
         }
         // Update menu items
         if (!is_wp_error($_menu_object)) {
             $messages = array_merge($messages, wp_nav_menu_update_menu_items($nav_menu_selected_id, $nav_menu_selected_title));
         }
     }
     header('Content-Type: application/json');
     echo json_encode(array('messages' => $messages, 'nav_menu_selected_id' => $nav_menu_selected_id));
     die;
 }