array(), ); $params = wp_parse_args( $args, $defaults ); $active_page_arr = array( 'active_page' => $args['active_page'], // wpbc-settings. 'active_tab' => $args ['active_tab'], // calendar_appearance. 'active_subtab' => $args['active_subtab'], // calendar_appearance_skin. ); // Available Main Menu - slug => titles. $show_these_pages_arr = array( 'wpbc' => __( 'Bookings', 'booking' ), 'wpbc-availability' => __( 'Availability', 'booking' ), 'wpbc-prices' => __( 'Prices', 'booking' ), 'wpbc-resources' => __( 'Resources', 'booking' ), 'wpbc-settings' => __( 'Settings', 'booking' ), 'wpbc-setup' => __( 'Setup', 'booking' ), ); // Ability to click on panel, only if there 'min' class - panel minimized! echo '
'; echo '
'; $main_page_slug = $active_page_arr['active_page']; $page_title = $show_these_pages_arr[ $main_page_slug ]; // Loop to show all main sections in horisontal menu. foreach ( $show_these_pages_arr as $main_page_slug => $page_title ) { // Show only active page settings list. if ( $main_page_slug !== $active_page_arr['active_page'] ) { continue; } $page_item_arr = $args['page_nav_tabs'][ $main_page_slug ]; $active_tab = isset( $page_item_arr[ $active_page_arr['active_tab'] ] ) && is_array( $page_item_arr[ $active_page_arr['active_tab'] ] ) ? $page_item_arr[ $active_page_arr['active_tab'] ] : array(); // Some focused settings pages use their subtabs as the horizontal page-level navigation. if ( ! empty( $active_tab['top_navigation_use_subtabs'] ) && ! empty( $active_tab['subtabs'] ) && is_array( $active_tab['subtabs'] ) ) { $page_item_arr = $active_tab['subtabs']; } do_action( 'hook__wpbc_ui__top_horisontal_nav__start', $active_page_arr['active_page'], $active_page_arr['active_tab'] ); // phpcs:ignore WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedHooknameFound foreach ( $page_item_arr as $main_menu_slug => $menu_item_arr ) { // Legacy hided/disabled flags control other navigation surfaces; the top bar uses its own explicit flag. if ( ! empty( $menu_item_arr['top_navigation_hidden'] ) ) { continue; } do_action( 'hook__wpbc_ui__top_horisontal_nav__item_start', $active_page_arr['active_page'], $active_page_arr['active_tab'], $main_menu_slug ); // phpcs:ignore WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedHooknameFound wpbc_ui__horis_menu__item_main( $main_menu_slug, $menu_item_arr ); do_action( 'hook__wpbc_ui__top_horisontal_nav__item_end', $active_page_arr['active_page'], $active_page_arr['active_tab'], $main_menu_slug ); // phpcs:ignore WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedHooknameFound } do_action( 'hook__wpbc_ui__top_horisontal_nav__end', $active_page_arr['active_page'], $active_page_arr['active_tab'] ); // phpcs:ignore WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedHooknameFound // wpbc_ui_el__divider_vertical(); } // Loop to show all main sections in horisontal menu. echo '
'; echo '
'; } /** * Remove New labels from titles rendered in the top horizontal navigation. * * @param string $title Horizontal navigation title. * * @return string */ function wpbc_ui__horis_menu__item_main__remove_new_label( $title ) { if ( ! is_string( $title ) || '' === $title ) { return $title; } $filtered_title = preg_replace( '/]*\bclass\s*=\s*(["\'])[^"\']*\bwpbc_new_label\b[^"\']*\1[^>]*>.*?<\/span>(?:\s| )*/is', '', $title ); return ( null === $filtered_title ) ? $title : $filtered_title; } add_filter( 'wpbc_ui__horis_menu__item_main__title', 'wpbc_ui__horis_menu__item_main__remove_new_label', PHP_INT_MAX ); /** * Show Horisontal - "Menu Item". * * @param string $menu_slug - 'calendar_appearance'. * @param array $menu_item_arr - [ [title] => Skin * [page_title] => Calendar General Settings 3 * [hint] => Calendar General Settings 2 * [link] => * [position] => * [css_classes] => * [folder_style] => order:93; * [icon] => * [font_icon] => wpbc-bi-calendar2-range * [default] => * [disabled] => * [hided] => * [top_navigation_hidden] => * [is_active] => 1 * [url] => http://beta/wp-admin/admin.php?page=wpbc-settings&tab=calendar_appearance * [subtabs] => [....] * ] * * @return void */ function wpbc_ui__horis_menu__item_main( $menu_slug, $menu_item_arr ) { $defaults = array( 'title' => '', 'page_title' => '', 'hint' => '', 'link' => '', 'position' => '', 'css_classes' => '', 'folder_style' => '', 'icon' => '', 'font_icon' => '', 'default' => false, 'disabled' => false, 'hided' => false, 'top_navigation_hidden' => false, 'is_active' => 0, 'url' => '', 'subtabs' => array(), ); $menu_item_arr = wp_parse_args( $menu_item_arr, $defaults ); $folder_style = ( ! empty( $menu_item_arr['folder_style'] ) ) ? esc_attr( $menu_item_arr['folder_style'] ) : ''; // FixIn: 11.4.2. /** * Filter the title displayed in the top horizontal navigation. * * @param string $title Horizontal navigation title. * @param string $menu_slug Menu item slug. * @param array $menu_item_arr Complete menu item configuration. */ $menu_item_arr['title'] = apply_filters( 'wpbc_ui__horis_menu__item_main__title', $menu_item_arr['title'], $menu_slug, $menu_item_arr ); ?>