Menu Settings page */ class Mega_Menu_General { /** * Constructor * * @since 1.0 */ public function __construct() { add_action( 'admin_post_megamenu_save_settings', array( $this, 'save_settings' ) ); add_filter( 'megamenu_menu_tabs', array( $this, 'add_general_tab' ), 4 ); add_action( 'megamenu_page_general_settings', array( $this, 'general_settings_page' ) ); } /** * Add the Menu Locations tab to our available tabs * * @param array $tabs * @since 2.8 */ public function add_general_tab( $tabs ) { $tabs['general_settings'] = __( 'General Settings', 'megamenu' ); return $tabs; } /** * Sanitize multidimensional array * * @since 2.7.5 */ public function sanitize_array( &$array ) { foreach ( $array as &$value ) { if ( ! is_array( $value ) ) { $value = sanitize_textarea_field( $value ); } else { $this->sanitize_array( $value ); } } return $array; } /** * Save menu general settings. * * @since 1.0 */ public function save_settings() { check_admin_referer( 'megamenu_save_settings' ); if ( isset( $_POST['settings'] ) && is_array( $_POST['settings'] ) ) { $settings = $this->sanitize_array( $_POST['settings'] ); $submitted_settings = apply_filters( 'megamenu_submitted_settings', $settings ); $existing_settings = get_option( 'megamenu_settings' ); $new_settings = array_merge( (array) $existing_settings, $submitted_settings ); update_option( 'megamenu_settings', $new_settings ); } delete_option( 'megamenu_failed_to_write_css_to_filesystem' ); do_action( 'megamenu_after_save_general_settings' ); do_action( 'megamenu_delete_cache' ); $url = isset( $_POST['_wp_http_referer'] ) ? $_POST['_wp_http_referer'] : admin_url( 'admin.php?page=maxmegamenu&saved=true' ); $this->redirect( $url ); } /** * Redirect and exit * * @since 1.8 */ public function redirect( $url ) { wp_redirect( $url ); exit; } /** * Content for 'Settings' tab * * @since 1.4 */ public function general_settings_page( $saved_settings ) { $css = isset( $saved_settings['css'] ) ? $saved_settings['css'] : 'fs'; $locations = get_registered_nav_menus(); ?>