_presets = Presets::get_all(); } /** * Load all field objects and add them to the sections set. * * @since 1.0.0 */ private function load_fields() { $this->_sections = Options::get_sections(); $this->_fields = Options::get_fields(); foreach ( $this->_fields as $key => $field ) { $this->_sections[ $field->args['section'] ]['fields'][] = $field; } $this->_options = Options::get_options(); } /** * Add theme settings links to the admin bar. * * @since 1.0.0 * * @param object $admin_bar Admin bar object. */ public function admin_bar_links( $admin_bar ) { $admin_bar->add_node( array( 'id' => 'theme-dashboard', 'title' => esc_html__( 'Theme Dashboard', 'woodmart' ), 'href' => admin_url( 'admin.php?page=xtemos_options' ), 'meta' => array( 'title' => esc_html__( 'Theme Dashboard', 'woodmart' ), ), ) ); $admin_bar->add_node( array( 'id' => 'theme-settings', 'title' => esc_html__( 'Theme Settings', 'woodmart' ), 'href' => admin_url( 'admin.php?page=xtemos_options' ), 'parent' => 'theme-dashboard', 'meta' => array( 'title' => esc_html__( 'Theme Settings', 'woodmart' ), ), ) ); $header = whb_get_header(); $hb_url = admin_url( 'admin.php?page=woodmart_dashboard&tab=builder' ); if ( $header && ! is_admin() ) { $header_id = $header->get_id(); $hb_url = admin_url( 'admin.php?page=woodmart_dashboard&tab=builder#/builder/' . $header_id ); } $admin_bar->add_node( array( 'id' => 'header-builder', 'title' => esc_html__( 'Edit header', 'woodmart' ), 'href' => $hb_url, 'parent' => 'theme-dashboard', 'meta' => array( 'title' => esc_html__( 'Edit header', 'woodmart' ), ), ) ); $active_presets = Presets::get_active_presets(); $all_presets = Presets::get_all(); if ( $active_presets ) { $admin_bar->add_node( array( 'id' => 'theme-settings-presets', 'title' => esc_html__( 'Active presets', 'woodmart' ), 'href' => admin_url( 'admin.php?page=xtemos_options' ), 'parent' => 'theme-dashboard', 'meta' => array( 'title' => esc_html__( 'Active presets', 'woodmart' ), ), ) ); foreach ( $active_presets as $preset ) { $name = isset( $all_presets[ $preset ]['name'] ) ? $all_presets[ $preset ]['name'] : 'Preset name'; $admin_bar->add_node( array( 'id' => 'theme-settings-presets-' . $preset, 'title' => $name, 'href' => admin_url( 'admin.php?page=xtemos_options&preset=' . $preset ), 'parent' => 'theme-settings-presets', 'meta' => array( 'title' => $name, ), ) ); } } } /** * Callback to register a page in the dashboard. * * @since 1.0.0 */ public function admin_page() { $this->load_fields(); $logo = WOODMART_ASSETS . '/images/theme-admin-icon.svg'; if ( woodmart_get_opt( 'white_label_sidebar_icon_logo' ) && woodmart_get_opt( 'white_label' ) ) { $image_data = woodmart_get_opt( 'white_label_sidebar_icon_logo' ); if ( isset( $image_data['url'] ) && $image_data['url'] ) { $logo = wp_get_attachment_image_url( $image_data['id'] ); } } // Create admin page. add_menu_page( esc_html__( 'Theme Settings', 'woodmart' ), esc_html__( 'Theme Settings', 'woodmart' ), 'manage_options', 'xtemos_options', array( &$this, 'page_content' ), $logo, 61 ); foreach ( $this->_sections as $key => $section ) { if ( isset( $section['parent'] ) ) { continue; } add_submenu_page( 'xtemos_options', $section['name'], $section['name'], 'manage_options', 'xtemos_options&tab=' . $key, array( &$this, 'page_content' ) ); } remove_submenu_page( 'xtemos_options', 'xtemos_options' ); } /** * Render the options page content. * * @since 1.0.0 */ public function page_content() { $wrapper_classes = ''; if ( isset( $_GET['preset'] ) ) { // phpcs:ignore $wrapper_classes .= ' xts-preset-active'; } ?>