opt = ( null !== $astm ) ? $astm->opt : get_option( 'add_search_to_menu' ); $this->networkactive = ( is_multisite() && array_key_exists( plugin_basename( ASTM_PLUGIN_FILE ), (array) get_site_option( 'active_sitewide_plugins' ) ) ); } /** * Gets the instance of this class. * * @return self */ public static function getInstance() { if ( ! ( self::$_instance instanceof self ) ) { self::$_instance = new self(); } return self::$_instance; } /** * Loads plugin javascript and stylesheet files in the admin area. */ function admin_script_style(){ wp_register_script( 'add-search-to-menu-scripts', plugins_url( '/admin/js/add-search-to-menu-admin.js', ASTM_PLUGIN_FILE ), array( 'jquery' ), ASTM_VERSION, true ); wp_localize_script( 'add-search-to-menu-scripts', 'add_search_to_menu', array( 'ajax_url' => admin_url( 'admin-ajax.php' ) ) ); wp_enqueue_script( 'add-search-to-menu-scripts' ); } /** * Adds a link to the settings page in the plugins list. * * @param array $links array of links for the plugins, adapted when the current plugin is found. * @param string $file the filename for the current plugin, which the filter loops through. * * @return array $links */ function plugin_settings_link( $links, $file ) { if ( false !== strpos( $file, 'add-search-to-menu' ) ) { $mylinks = array( '' . esc_html__( 'Get Support', 'add-search-to-menu' ) . '', '' . esc_html__( 'Settings', 'add-search-to-menu' ) . '' ); $links = array_merge( $mylinks, $links ); } return $links; } /** * Displays plugin configuration notice in admin area. */ function setup_notice(){ if ( 0 === strpos( get_current_screen()->id, 'settings_page_add_search_to_menu' ) ) { return; } $hascaps = $this->networkactive ? is_network_admin() && current_user_can( 'manage_network_plugins' ) : current_user_can( 'manage_options' ); if ( $hascaps ) { $url = is_network_admin() ? network_site_url() : site_url( '/' ); echo '
'; } } /** * Handles plugin notice dismiss functionality using AJAX. */ function dismiss_notice() { if ( defined( 'DOING_AJAX' ) && DOING_AJAX ) { $this->opt['dismiss_admin_notices'] = 1; update_option( 'add_search_to_menu', $this->opt ); } die(); } /** * Registers plugin admin menu item. */ function admin_menu_setup(){ add_submenu_page( 'options-general.php', __( 'Add Search To Menu Settings', 'add-search-to-menu' ), __( 'Add Search To Menu', 'add-search-to-menu' ), 'manage_options', 'add_search_to_menu', array( $this, 'admin_page_screen' ) ); } /** * Renders the settings page for this plugin. */ function admin_page_screen() { include_once( 'partials/admin-page.php' ); } /** * Registers plugin settings. */ function settings_init(){ add_settings_section( 'add_search_to_menu_section', __( 'Add Search To Menu Settings', 'add-search-to-menu' ), array( $this, 'settings_section_desc'), 'add_search_to_menu' ); add_settings_field( 'add_search_to_menu_locations', __( 'Add Search to Menu : ', 'add-search-to-menu' ), array( $this, 'menu_locations' ), 'add_search_to_menu', 'add_search_to_menu_section' ); add_settings_field( 'add_search_to_menu_posts', __( 'Search Post Types : ', 'add-search-to-menu' ), array( $this, 'post_posts' ), 'add_search_to_menu', 'add_search_to_menu_section' ); add_settings_field( 'add_search_to_menu_style', __( 'Search Form Style : ', 'add-search-to-menu' ), array( $this, 'form_style' ), 'add_search_to_menu', 'add_search_to_menu_section' ); add_settings_field( 'add_search_to_menu_title', __( 'Search Menu Title : ', 'add-search-to-menu' ), array( $this, 'menu_title' ), 'add_search_to_menu', 'add_search_to_menu_section' ); add_settings_field( 'add_search_to_menu_classes', __( 'Search Menu Classes : ', 'add-search-to-menu' ), array( $this, 'menu_classes' ), 'add_search_to_menu', 'add_search_to_menu_section' ); add_settings_field( 'add_search_to_menu_gcse', __( 'Google CSE : ', 'add-search-to-menu' ), array( $this, 'google_cse' ), 'add_search_to_menu', 'add_search_to_menu_section' ); add_settings_field( 'add_search_to_menu_display_in_header', __( 'Mobile Display : ', 'add-search-to-menu' ), array( $this, 'display_in_header' ), 'add_search_to_menu', 'add_search_to_menu_section' ); add_settings_field( 'add_search_to_menu_close_icon', __( 'Close Icon: ', 'add-search-to-menu' ), array( $this, 'close_icon' ), 'add_search_to_menu', 'add_search_to_menu_section' ); add_settings_field( 'add_search_to_menu_css', __( 'Custom CSS : ', 'add-search-to-menu' ), array( $this, 'custom_css' ), 'add_search_to_menu', 'add_search_to_menu_section' ); add_settings_field( 'do_not_load_plugin_files', __( 'Do not load plugin files : ', 'add-search-to-menu' ), array( $this, 'plugin_files' ), 'add_search_to_menu', 'add_search_to_menu_section' ); register_setting( 'add_search_to_menu', 'add_search_to_menu' ); } /** * Displays plugin description text. */ function settings_section_desc(){ echo '' . esc_html__( 'Configure the Add Search To Menu plugin settings here.', 'add-search-to-menu' ) . '
'; } /** * Displays choose menu locations field. */ function menu_locations() { $html = ''; $menus = get_registered_nav_menus(); if ( ! empty( $menus ) ){ foreach ( $menus as $location => $description ) { $check_value = isset( $this->opt['add_search_to_menu_locations'][ $location ] ) ? $this->opt['add_search_to_menu_locations'][ $location ] : 0; $html .= ''; $html .= '