| @@ -12,8 +12,11 @@ | ||
| 12 | 12 | $controller = get_responsive_menu_service('admin_controller'); |
| 13 | 13 | echo $controller->export(); |
| 14 | 14 | exit(); |
| 15 | 15 | |
| 16 | + elseif(isset($_POST['responsive-menu-rebuild-db']) && isset($_GET['page']) && $_GET['page'] == 'responsive-menu'): | |
| 17 | + update_option('responsive_menu_version', '2.8.9'); | |
| 18 | + | |
| 16 | 19 | endif; |
| 17 | 20 | |
| 18 | 21 | add_menu_page( |
| 19 | 22 | 'Responsive Menu', |
| @@ -21,76 +24,41 @@ | ||
| 21 | 24 | 'manage_options', |
| 22 | 25 | 'responsive-menu', |
| 23 | 26 | function() { |
| 24 | 27 | $controller = get_responsive_menu_service('admin_controller'); |
| 28 | + $menus_array = []; | |
| 29 | + $location_menus = ['' => 'None']; | |
| 30 | + foreach(get_terms('nav_menu') as $menu) $menus_array[$menu->slug] = $menu->name; | |
| 31 | + foreach(get_registered_nav_menus() as $location => $menu) $location_menus[$location] = $menu; | |
| 25 | 32 | |
| 26 | 33 | if(isset($_POST['responsive-menu-current-page'])) |
| 27 | 34 | update_option('responsive_menu_current_page', $_POST['responsive-menu-current-page']); |
| 28 | 35 | |
| 29 | 36 | if(isset($_POST['responsive-menu-submit'])): |
| 30 | - update_option('hide_pro_options', isset($_POST['hide-pro-options']) ? 'yes' : 'no'); | |
| 37 | + update_option('hide_pro_options', isset($_POST['hide-pro-options']) ? "yes" : "no"); | |
| 31 | 38 | $valid_nonce = wp_verify_nonce($_POST['responsive-menu-nonce'], 'update'); |
| 32 | - echo $controller->update($valid_nonce, wp_unslash($_POST['menu'])); | |
| 39 | + echo $controller->update($valid_nonce, wp_unslash($_POST['menu']), $menus_array, $location_menus); | |
| 33 | 40 | |
| 34 | 41 | elseif(isset($_POST['responsive-menu-reset'])): |
| 35 | - $valid_nonce = wp_verify_nonce( $_POST['responsive-menu-nonce'], 'update' ); | |
| 42 | + update_option('hide_pro_options', "no"); | |
| 43 | + echo $controller->reset(get_responsive_menu_default_options(), $menus_array, $location_menus); | |
| 36 | 44 | |
| 37 | - echo $controller->reset(get_responsive_menu_default_options(), $valid_nonce ); | |
| 38 | - | |
| 39 | - elseif(isset($_POST['responsive-menu-theme'])): | |
| 40 | - $valid_nonce = wp_verify_nonce( $_POST['responsive-menu-nonce'], 'update' ); | |
| 41 | - | |
| 42 | - echo $controller->apply_theme($_POST['menu']['menu_theme'], $valid_nonce ); | |
| 43 | - | |
| 44 | 45 | elseif(isset($_POST['responsive-menu-import'])): |
| 45 | - $valid_nonce = wp_verify_nonce( $_POST['responsive-menu-nonce'], 'update' ); | |
| 46 | - | |
| 47 | 46 | $file = $_FILES['responsive-menu-import-file']; |
| 48 | 47 | $file_options = isset($file['tmp_name']) ? (array) json_decode(file_get_contents($file['tmp_name'])) : null; |
| 49 | - echo $controller->import( $file_options, $valid_nonce ); | |
| 48 | + echo $controller->import($file_options, $menus_array, $location_menus); | |
| 50 | 49 | |
| 51 | - elseif(isset($_POST['responsive-menu-import-theme'])): | |
| 52 | - $valid_nonce = wp_verify_nonce( $_POST['responsive-menu-nonce'], 'update' ); | |
| 53 | - | |
| 54 | - $file = $_FILES['responsive-menu-import-theme-file']; | |
| 55 | - $theme = isset($file['tmp_name']) && $file['tmp_name'] ? $file['tmp_name'] : null; | |
| 56 | - | |
| 57 | - echo $controller->import_theme( $theme, $valid_nonce ); | |
| 58 | - | |
| 59 | 50 | elseif(isset($_POST['responsive-menu-rebuild-db'])): |
| 60 | - $valid_nonce = wp_verify_nonce( $_POST['responsive-menu-nonce'], 'update' ); | |
| 51 | + update_option('hide_pro_options', "no"); | |
| 52 | + echo $controller->rebuild($menus_array, $location_menus); | |
| 61 | 53 | |
| 62 | - echo $controller->rebuild( $valid_nonce ); | |
| 63 | - | |
| 64 | 54 | else: |
| 65 | - echo $controller->index(); | |
| 55 | + echo $controller->index($menus_array, $location_menus); | |
| 66 | 56 | |
| 67 | 57 | endif; |
| 68 | 58 | }, |
| 69 | 59 | 'dashicons-menu'); |
| 70 | 60 | }); |
| 71 | - | |
| 72 | - /** Function to move to the new version */ | |
| 73 | - add_action('wp_ajax_rmp_switch_version', function() { | |
| 74 | - | |
| 75 | - if ( empty ( update_option( 'is_rmp_new_version', 1 ) ) ) { | |
| 76 | - add_option( 'is_rmp_new_version', 1 ); | |
| 77 | - } | |
| 78 | - | |
| 79 | - update_option( 'rm_upgrade_admin_notice', true ); | |
| 80 | - wp_send_json_success( ['redirect' => admin_url('edit.php?post_type=rmp_menu')] ); | |
| 81 | - | |
| 82 | - }); | |
| 83 | - | |
| 84 | - add_action( "wp_ajax_rmp_version_admin_notice_dismiss", "rmp_version_admin_notice_dismiss"); | |
| 85 | - /** | |
| 86 | - * Function to hide the version upgrade admin notice permanent. | |
| 87 | - */ | |
| 88 | - function rmp_version_admin_notice_dismiss() { | |
| 89 | - update_option( 'rm_upgrade_admin_notice', true ); | |
| 90 | - } | |
| 91 | - | |
| 92 | - | |
| 93 | 61 | else: |
| 94 | 62 | add_action('template_redirect', function() { |
| 95 | 63 | $controller = get_responsive_menu_service('front_controller'); |
| 96 | 64 | if(isset($_GET['responsive-menu-preview']) && isset($_POST['menu'])) |