array( 'label' => __( 'General Settings', 'astra' ), 'show' => ! is_network_admin(), ), ); self::$view_actions = apply_filters( 'ast_menu_options', $actions ); } return self::$view_actions; } /** * Save All admin settings here */ static public function save_settings() { // Only admins can save settings. if ( ! current_user_can( 'manage_options' ) ) { return; } // Let extensions hook into saving. do_action( 'ast_admin_settings_save' ); } /** * Enqueues the needed CSS/JS for Backend. * * @since 1.0 */ static public function admin_scripts() { // Styles. wp_enqueue_style( 'ast-admin', AST_THEME_URI . 'inc/assets/css/ast-admin.css', array(), AST_THEME_VERSION ); } /** * Enqueues the needed CSS/JS for the builder's admin settings page. * * @since 1.0 */ static public function styles_scripts() { // Styles. wp_enqueue_style( 'ast-admin-settings', AST_THEME_URI . 'inc/assets/css/ast-admin-menu-settings.css', array(), AST_THEME_VERSION ); } /** * Init Nav Menu * * @param mixed $action Action name. * @since 1.0 */ static public function init_nav_menu( $action = '' ) { $settings = Ast_Admin_Helper::get_admin_settings_option( '_ast_ext_white_label' ); // Menu position. $position = isset( $settings['menu_position'] ) ? $settings['menu_position'] : false; if ( $position ) { self::$default_menu_position = $position; } self::$is_top_level_page = in_array( self::$default_menu_position, array( 'top', 'middle', 'bottom' ), true ); if ( '' !== $action ) { self::render_tab_menu( $action ); } } /** * Render tab menu * * @param mixed $action Action name. * @since 1.0 */ static public function render_tab_menu( $action = '' ) { echo '
'; } /** * Prints HTML content for tabs * * @param mixed $action Action name. * @since 1.0 */ static public function render( $action ) { $output = ''; echo $output; // Settings update message. if ( isset( $_REQUEST['message'] ) && ( 'saved' == $_REQUEST['message'] || 'saved_ext' == $_REQUEST['message'] ) ) { printf( '%s
', __( 'Settings saved successfully.', 'astra' ) ); } } /** * Get and return page URL * * @param string $menu_slug Menu name. * @since 1.0 * @return string page url */ static public function get_page_url( $menu_slug ) { $plugin_slug = self::$plugin_slug; if ( self::$is_top_level_page ) { if ( self::$network_admin_active ) { if ( $menu_slug == self::$parent_page_slug ) { $url = network_admin_url( 'admin.php?page=' . $plugin_slug ); } else { $url = network_admin_url( 'admin.php?page=' . $plugin_slug . '-' . $menu_slug ); } } else { if ( $menu_slug == self::$parent_page_slug ) { $url = admin_url( 'admin.php?page=' . $plugin_slug ); } else { $url = admin_url( 'admin.php?page=' . $plugin_slug . '-' . $menu_slug ); } } } else { $parent_page = self::$default_menu_position; if ( strpos( $parent_page, '?' ) !== false ) { $query_var = '&page=' . $plugin_slug; } else { $query_var = '?page=' . $plugin_slug; } if ( self::$network_admin_active ) { $parent_page_url = network_admin_url( $parent_page . $query_var ); } else { $parent_page_url = admin_url( $parent_page . $query_var ); } $url = $parent_page_url . '&action=' . $menu_slug; }// End if(). return esc_url( $url ); } /** * Add main menu * * @since 1.0 */ static public function add_admin_menu() { $parent_page = self::$default_menu_position; $page_title = self::$menu_page_title; $capability = 'manage_options'; $page_menu_slug = self::$plugin_slug; $page_menu_func = __CLASS__ . '::menu_callback'; add_theme_page( $parent_page, $page_title, $capability, $page_menu_slug, $page_menu_func ); } /** * Menu callback * * @since 1.0 */ static public function menu_callback() { if ( self::$is_top_level_page ) { $screen_base = $_REQUEST['page']; if ( self::$network_admin_active ) { $current_slug = str_replace( array( self::$plugin_slug . '-' ), '', $screen_base ); } else { $current_slug = str_replace( array( self::$plugin_slug . '-' ), '', $screen_base ); } if ( 'astra' == $current_slug ) { $current_slug = self::$parent_page_slug; } } else { $current_slug = isset( $_GET['action'] ) ? esc_attr( $_GET['action'] ) : self::$current_slug; } $active_tab = str_replace( '_', '-', $current_slug ); $current_slug = str_replace( '-', '_', $current_slug ); echo ''; } /** * Include general page * * @since 1.0 */ static public function general_page() { $settings = self::get_options(); require_once AST_THEME_DIR . 'inc/core/view-general.php'; } /** * Get Astra Options * * @since 1.0 */ static public function get_options() { $stored = Ast_Admin_Helper::get_admin_settings_option( '_ast_general_settings' ); $defaults = self::defaults(); return wp_parse_args( $stored, $defaults ); } /** * Get Options default values * * @since 1.0 */ static public function defaults() { return apply_filters( 'ast_page_general_settings', array() ); } } new AST_Admin_Settings; }// End if().