Astra_Global_Palette::generate_global_palette_style(),
);
$css .= astra_parse_css( $inline_css );
?>
title ) ? $item->title : '';
?>
ID ) ) {
return $menu_item;
}
$menu_item->megamenu = get_post_meta( $menu_item->ID, '_menu_item_megamenu', true );
$menu_item->megamenu_width = get_post_meta( $menu_item->ID, '_menu_item_megamenu_width', true );
$menu_item->megamenu_col = get_post_meta( $menu_item->ID, '_menu_item_megamenu_col', true );
$menu_item->megamenu_text_color = get_post_meta( $menu_item->ID, '_menu_item_megamenu_text_color', true );
$menu_item->megamenu_text_h_color = get_post_meta( $menu_item->ID, '_menu_item_megamenu_text_h_color', true );
$menu_item->megamenu_background_image = get_post_meta( $menu_item->ID, '_menu_item_megamenu_background_image', true );
$menu_item->megamenu_bg_size = get_post_meta( $menu_item->ID, '_menu_item_megamenu_bg_size', true );
$menu_item->megamenu_bg_repeat = get_post_meta( $menu_item->ID, '_menu_item_megamenu_bg_repeat', true );
$menu_item->megamenu_bg_position = get_post_meta( $menu_item->ID, '_menu_item_megamenu_bg_position', true );
$menu_item->megamenu_bg_color = get_post_meta( $menu_item->ID, '_menu_item_megamenu_bg_color', true );
$menu_item->megamenu_highlight_label = get_post_meta( $menu_item->ID, '_menu_item_megamenu_highlight_label', true );
$menu_item->megamenu_icon_source = Astra_Ext_Nav_Menu_Loader::get_megamenu_default( 'icon_source', $menu_item->ID );
$menu_item->megamenu_icon_position = Astra_Ext_Nav_Menu_Loader::get_megamenu_default( 'icon_position', $menu_item->ID );
$menu_item->megamenu_icon_spacing = Astra_Ext_Nav_Menu_Loader::get_megamenu_default( 'icon_spacing', $menu_item->ID );
$menu_item->megamenu_icon_view = Astra_Ext_Nav_Menu_Loader::get_megamenu_default( 'icon_view', $menu_item->ID );
$menu_item->megamenu_icon_primary_color = Astra_Ext_Nav_Menu_Loader::get_megamenu_default( 'icon_primary_color', $menu_item->ID );
$menu_item->megamenu_icon_secondary_color = Astra_Ext_Nav_Menu_Loader::get_megamenu_default( 'icon_secondary_color', $menu_item->ID );
$menu_item->megamenu_icon_padding = Astra_Ext_Nav_Menu_Loader::get_megamenu_default( 'icon_padding', $menu_item->ID );
$menu_item->megamenu_icon_corner_radius = Astra_Ext_Nav_Menu_Loader::get_megamenu_default( 'icon_corner_radius', $menu_item->ID );
$menu_item->megamenu_icon_border_width = Astra_Ext_Nav_Menu_Loader::get_megamenu_default( 'icon_border_width', $menu_item->ID );
$menu_item->megamenu_icon_size = Astra_Ext_Nav_Menu_Loader::get_megamenu_default( 'icon_size', $menu_item->ID );
$menu_item->megamenu_label_color = get_post_meta( $menu_item->ID, '_menu_item_megamenu_label_color', true );
$menu_item->megamenu_label_bg_color = get_post_meta( $menu_item->ID, '_menu_item_megamenu_label_bg_color', true );
$menu_item->megamenu_column_divider_color = get_post_meta( $menu_item->ID, '_menu_item_megamenu_column_divider_color', true );
$menu_item->megamenu_heading_seeparator_color = get_post_meta( $menu_item->ID, '_menu_item_megamenu_heading_seeparator_color', true );
$menu_item->megamenu_content_src = get_post_meta( $menu_item->ID, '_menu_item_megamenu_content_src', true );
$menu_item->megamenu_custom_text = get_post_meta( $menu_item->ID, '_menu_item_megamenu_custom_text', true );
$menu_item->megamenu_disable_title = Astra_Ext_Nav_Menu_Loader::get_megamenu_default( 'disable_title', $menu_item->ID );
$menu_item->megamenu_enable_heading = get_post_meta( $menu_item->ID, '_menu_item_megamenu_enable_heading', true );
$menu_item->megamenu_disable_link = get_post_meta( $menu_item->ID, '_menu_item_megamenu_disable_link', true );
$menu_item->megamenu_widgets_list = get_post_meta( $menu_item->ID, '_menu_item_megamenu_widgets_list', true );
$menu_item->megamenu_template = get_post_meta( $menu_item->ID, '_menu_item_megamenu_template', true );
$menu_item->custom_width = get_post_meta( $menu_item->ID, '_menu_item_megamenu_custom_width', true );
$menu_item->megamenu_margin_top = get_post_meta( $menu_item->ID, '_menu_item_megamenu_margin_top', true );
$menu_item->megamenu_margin_right = get_post_meta( $menu_item->ID, '_menu_item_megamenu_margin_right', true );
$menu_item->megamenu_margin_bottom = get_post_meta( $menu_item->ID, '_menu_item_megamenu_margin_bottom', true );
$menu_item->megamenu_margin_left = get_post_meta( $menu_item->ID, '_menu_item_megamenu_margin_left', true );
$menu_item->megamenu_padding_top = get_post_meta( $menu_item->ID, '_menu_item_megamenu_padding_top', true );
$menu_item->megamenu_padding_right = get_post_meta( $menu_item->ID, '_menu_item_megamenu_padding_right', true );
$menu_item->megamenu_padding_bottom = get_post_meta( $menu_item->ID, '_menu_item_megamenu_padding_bottom', true );
$menu_item->megamenu_padding_left = get_post_meta( $menu_item->ID, '_menu_item_megamenu_padding_left', true );
return $menu_item;
}
/**
* Function to replace normal edit nav walker
*
* @return string Class name of new navwalker
*/
public function edit_walker() {
require_once ASTRA_ADDON_EXT_NAV_MENU_DIR . 'classes/class-astra-walker-nav-menu-edit-custom.php';
return 'Astra_Walker_Nav_Menu_Edit_Custom';
}
/**
* Function to load custom navigation walker.
*
* @return void.
*/
public static function load_walker() {
require_once ASTRA_ADDON_EXT_NAV_MENU_DIR . 'classes/class-astra-custom-nav-walker.php';
}
/**
* Function to get posts lists to display.
*
* @return void.
*/
public function get_post_list_by_query() {
check_ajax_referer( 'astra-addon-get-posts-by-query', 'nonce' );
$search_string = isset( $_POST['q'] ) ? sanitize_text_field( $_POST['q'] ) : ''; // phpcs:ignore WordPress.Security.NonceVerification.Missing
$data = array();
$result = array();
$args = array(
'public' => true,
'_builtin' => false,
);
$output = 'names'; // names or objects, note names is the default.
$operator = 'and'; // also supports 'or'.
$post_types = get_post_types( $args, $output, $operator );
$post_types['Posts'] = 'post';
$post_types['Pages'] = 'page';
$has_wp_block_suport = post_type_exists( 'wp_block' );
if ( $has_wp_block_suport ) {
$post_types['Reusable Blocks'] = 'wp_block';
}
foreach ( $post_types as $key => $post_type ) {
$data = array();
$obj_instance = Astra_Target_Rules_Fields::get_instance();
add_filter( 'posts_search', array( $obj_instance, 'search_only_titles' ), 10, 2 );
$query = new WP_Query(
array(
's' => $search_string,
'post_type' => $post_type,
'posts_per_page' => - 1,
)
);
if ( $query->have_posts() ) {
while ( $query->have_posts() ) {
$query->the_post();
$title = get_the_title();
$title .= ( 0 != $query->post->post_parent ) ? ' (' . get_the_title( $query->post->post_parent ) . ')' : '';
$id = get_the_id();
$data[] = array(
'id' => $id,
'text' => $title,
);
}
}
if ( is_array( $data ) && ! empty( $data ) ) {
$result[] = array(
'text' => $key,
'children' => $data,
);
}
}
$data = array();
wp_reset_postdata();
// return the result in json.
wp_send_json( $result );
}
/**
* Mega Menu Header Classes
*
* Add classes of mega menu only if Primary Menu is set.
*
* @since 1.7.2
* @return void;
*/
public function add_mega_menu_classes() {
// If primary menu is set then enable mega menu.
if ( has_nav_menu( 'primary' ) ) {
add_filter( 'astra_primary_menu_classes', array( $this, 'add_primary_menu_classes' ) );
}
// If secondary menu is set then enable mega menu.
if ( has_nav_menu( 'secondary_menu' ) ) {
add_filter( 'astra_secondary_menu_menu_classes', array( $this, 'add_primary_menu_classes' ) );
}
// If there are other menus having mega menu support.
$mega_menu_custom_navmenus = apply_filters( 'astra_nav_mega_menu_support', array() );
if ( ! empty( $mega_menu_custom_navmenus ) && is_array( $mega_menu_custom_navmenus ) ) {
foreach ( $mega_menu_custom_navmenus as $key => $menu_id ) {
if ( has_nav_menu( $menu_id ) ) {
add_filter( 'astra_' . $menu_id . '_menu_classes', array( $this, 'add_primary_menu_classes' ) );
}
}
}
}
/**
* Primary Header Classes
*
* @param array $classes CSS Classes.
*
* @since 1.6.0
* @return array;
*/
public function add_primary_menu_classes( $classes ) {
$classes[] = 'ast-mega-menu-enabled';
return $classes;
}
/**
* Above Header Classes
*
* @param array $classes CSS Classes.
*
* @since 1.6.0
* @return array;
*/
public function add_above_menu_classes( $classes ) {
$classes[] = 'ast-mega-menu-enabled';
return $classes;
}
/**
* Below Header Classes
*
* @param array $classes CSS Classes.
*
* @since 1.6.0
* @return array;
*/
public function add_below_menu_classes( $classes ) {
$classes[] = 'ast-mega-menu-enabled';
return $classes;
}
/**
* Add menu options settings popup wrap at footer.
*
* @since 1.6.0
* @return void
*/
public function add_mega_menu_wrap() {
astra_addon_get_template( 'nav-menu/template/canvas.php' );
}
/**
* Creating rest routes for mega menu
*
* @since 4.0.0
* @return void
*/
public function create_rest_routes() {
register_rest_route(
'astra_addon/v1',
'/mega_menu/(?P\d+)',
array(
'methods' => WP_REST_Server::READABLE,
'callback' => array( $this, 'get_mega_menu_option' ),
'permission_callback' => array( $this, 'get_mega_menu_option_permission' ),
)
);
register_rest_route(
'astra_addon/v1',
'/mega_menu',
array(
'methods' => WP_REST_Server::EDITABLE,
'callback' => array( $this, 'set_mega_menu_option' ),
'permission_callback' => array( $this, 'set_mega_menu_option_permission' ),
)
);
}
/**
* Checking permissions
*
* @since 4.0.0
* @return bool
*/
public function get_mega_menu_option_permission() {
return true;
}
/**
* Checking permissions
*
* @since 4.0.0
*/
public function set_mega_menu_option_permission() {
return current_user_can( 'edit_theme_options' );
}
/**
* Mega set configs
*
* @param array $req Megamenu request payload.
* @return string
* @since 4.0.0
*/
public function set_mega_menu_option( $req ) {
$fields = isset( $req['options'] ) ? $req['options'] : array();
$nav_id = isset( $req['nav_id'] ) ? sanitize_text_field( $req['nav_id'] ) : '';
$menu_id = isset( $req['menu_id'] ) ? sanitize_text_field( $req['menu_id'] ) : '';
$widgets = isset( $req['widgets'] ) ? $req['widgets'] : array();
if ( ! current_user_can( 'edit_theme_options' ) ) {
wp_die();
}
if ( ! empty( $widgets ) ) {
$fields['megamenu_widgets_list'] = implode( ',', $widgets );
}
if ( ! empty( $fields ) ) {
// Update meta values.
foreach ( $fields as $key => $value ) {
$key = sanitize_text_field( str_replace( 'menu-item-', '', $key ) );
if ( 'megamenu_custom_text' == $key ) {
$value = wp_kses_post( wp_unslash( $value ) );
} else {
$value = wp_unslash( $value );
}
update_post_meta( $menu_id, '_menu_item_' . $key, $value );
}
}
return rest_ensure_response( 'success' );
}
/**
* Mega menu configs
*
* @param array $data Megamenu id.
* @return array
* @since 4.0.0
*/
public function get_mega_menu_option( $data ) {
$menu_item_id = $data['id'];
$_config = array(
// Option: As Heading.
array(
'name' => ASTRA_THEME_SETTINGS . '_menu_item_megamenu_enable_heading',
'defaults' => get_post_meta( $menu_item_id, '_menu_item_megamenu_enable_heading', true ),
'control' => 'ast-toggle',
'title' => __( 'As Heading', 'astra-addon' ),
'custom_value' => 'enable-heading',
'divider' => 'top-spacing',
'tab_type' => 'general',
'depth' => 1,
'trigger_context' => array(
array(
'setting' => ASTRA_THEME_SETTINGS . '_menu_item_megamenu_heading_separator_color',
'value' => array( 'enable-heading' ),
),
array(
'setting' => ASTRA_THEME_SETTINGS . '_menu_item_mega_menu_label_title',
'value' => array( 'enable-heading' ),
),
),
),
// Option: Heading Mega Menu for sub menu.
array(
'name' => ASTRA_THEME_SETTINGS . '_menu_item_mega_menu_label_title',
'control' => 'ast-title',
'title' => __( 'Mega Menu', 'astra-addon' ),
'divider' => 'top-spacing',
'tab_type' => 'design',
'depth' => 1,
'context' => array(
array(
'value' => array( 'enable-heading' ),
'target_value' => get_post_meta( $menu_item_id, '_menu_item_megamenu_enable_heading', true ),
),
),
),
// Option: Separator Color.
array(
'name' => ASTRA_THEME_SETTINGS . '_menu_item_megamenu_heading_separator_color',
'defaults' => get_post_meta( $menu_item_id, '_menu_item_megamenu_heading_separator_color', true ),
'control' => 'ast-color',
'title' => __( 'Separator Color', 'astra-addon' ),
'tab_type' => 'design',
'depth' => 1,
'context' => array(
array(
'value' => array( 'enable-heading' ),
'target_value' => get_post_meta( $menu_item_id, '_menu_item_megamenu_enable_heading', true ),
),
),
),
// Option: Hide Label.
array(
'name' => ASTRA_THEME_SETTINGS . '_menu_item_megamenu_disable_title',
'defaults' => Astra_Ext_Nav_Menu_Loader::get_megamenu_default( 'disable_title', $menu_item_id ),
'control' => 'ast-toggle',
'title' => __( 'Hide Menu Label', 'astra-addon' ),
'custom_value' => 'disable-title',
'divider' => '',
'tab_type' => 'general',
'depth' => 1,
'trigger_context' => array(
array(
'setting' => ASTRA_THEME_SETTINGS . '_menu_item_megamenu_disable_link',
'value' => array( '' ),
),
),
),
// Option: Disable Link.
array(
'name' => ASTRA_THEME_SETTINGS . '_menu_item_megamenu_disable_link',
'defaults' => get_post_meta( $menu_item_id, '_menu_item_megamenu_disable_link', true ),
'control' => 'ast-toggle',
'title' => __( 'Disable Link', 'astra-addon' ),
'custom_value' => 'disable-link',
'divider' => '',
'tab_type' => 'general',
'depth' => 1,
'context' => array(
array(
'value' => array( '' ),
'target_value' => strval( Astra_Ext_Nav_Menu_Loader::get_megamenu_default( 'disable_title', $menu_item_id ) ),
),
),
),
// Option: Enable Mega Menu toggle.
array(
'name' => ASTRA_THEME_SETTINGS . '_menu_item_megamenu',
'defaults' => get_post_meta( $menu_item_id, '_menu_item_megamenu', true ),
'control' => 'ast-toggle',
'divider' => 'top-spacing',
'custom_value' => 'megamenu',
'title' => __( 'Mega Menu', 'astra-addon' ),
'tab_type' => 'general',
'as_heading' => true,
'depth' => 0,
'trigger_context' => array(
array(
'setting' => ASTRA_THEME_SETTINGS . '_menu_item_megamenu_width',
'value' => array( 'megamenu' ),
),
array(
'setting' => ASTRA_THEME_SETTINGS . '_menu_item_background_type_title',
'value' => array( 'megamenu' ),
),
array(
'setting' => ASTRA_THEME_SETTINGS . '_menu_item_megamenu_background_type',
'value' => array( 'megamenu' ),
),
array(
'setting' => ASTRA_THEME_SETTINGS . '_menu_item_megamenu_background_image',
'value' => array( 'megamenu' ),
'dependency' => ASTRA_THEME_SETTINGS . '_menu_item_megamenu_background_type',
'dependency_value' => array( 'image' ),
),
array(
'setting' => ASTRA_THEME_SETTINGS . '_menu_item_megamenu_bg_color',
'value' => array( 'megamenu' ),
'dependency' => ASTRA_THEME_SETTINGS . '_menu_item_megamenu_background_type',
'dependency_value' => array( 'image' ),
),
array(
'setting' => ASTRA_THEME_SETTINGS . '_menu_item_megamenu_bg_repeat',
'value' => array( 'megamenu' ),
'dependency' => ASTRA_THEME_SETTINGS . '_menu_item_megamenu_background_type',
'dependency_value' => array( 'image' ),
),
array(
'setting' => ASTRA_THEME_SETTINGS . '_menu_item_megamenu_bg_size',
'value' => array( 'megamenu' ),
'dependency' => ASTRA_THEME_SETTINGS . '_menu_item_megamenu_background_type',
'dependency_value' => array( 'image' ),
),
array(
'setting' => ASTRA_THEME_SETTINGS . '_menu_item_megamenu_bg_position',
'value' => array( 'megamenu' ),
'dependency' => ASTRA_THEME_SETTINGS . '_menu_item_megamenu_background_type',
'dependency_value' => array( 'image' ),
),
array(
'setting' => ASTRA_THEME_SETTINGS . '_menu_item_megamenu_gradient',
'value' => array( 'megamenu' ),
'dependency' => ASTRA_THEME_SETTINGS . '_menu_item_megamenu_background_type',
'dependency_value' => array( 'gradient' ),
),
array(
'setting' => ASTRA_THEME_SETTINGS . '_menu_item_megamenu_margin',
'value' => array( 'megamenu' ),
),
array(
'setting' => ASTRA_THEME_SETTINGS . '_menu_item_megamenu_padding',
'value' => array( 'megamenu' ),
),
array(
'setting' => ASTRA_THEME_SETTINGS . '_menu_item_spacing_title',
'value' => array( 'megamenu' ),
),
array(
'setting' => ASTRA_THEME_SETTINGS . '_menu_item_megamenu_top_border_width',
'value' => array( 'megamenu' ),
),
array(
'setting' => ASTRA_THEME_SETTINGS . '_menu_item_megamenu_column_divider_width',
'value' => array( 'megamenu' ),
),
array(
'setting' => ASTRA_THEME_SETTINGS . '_menu_item_megamenu_row_divider_width',
'value' => array( 'megamenu' ),
),
array(
'setting' => ASTRA_THEME_SETTINGS . '_menu_item_megamenu_top_border_color',
'value' => array( 'megamenu' ),
),
array(
'setting' => ASTRA_THEME_SETTINGS . '_menu_item_megamenu_column_divider_color',
'value' => array( 'megamenu' ),
),
array(
'setting' => ASTRA_THEME_SETTINGS . '_menu_item_megamenu_divider_style',
'value' => array( 'megamenu' ),
),
array(
'setting' => ASTRA_THEME_SETTINGS . '_menu_item_divider_title',
'value' => array( 'megamenu' ),
),
array(
'setting' => ASTRA_THEME_SETTINGS . '_menu_item_color_label_title',
'value' => array( 'megamenu' ),
),
array(
'setting' => ASTRA_THEME_SETTINGS . '_menu_item_megamenu_text_color_group',
'value' => array( 'megamenu' ),
),
array(
'setting' => ASTRA_THEME_SETTINGS . '_menu_item_megamenu_heading_color_group',
'value' => array( 'megamenu' ),
),
),
),
// Option: Mega Menu Width.
array(
'name' => ASTRA_THEME_SETTINGS . '_menu_item_megamenu_width',
'defaults' => Astra_Ext_Nav_Menu_Loader::get_megamenu_default( 'width', $menu_item_id ),
'control' => 'ast-select',
'title' => __( 'Mega Menu Width', 'astra-addon' ),
'divider' => '',
'choices' => array(
'content' => __( 'Content', 'astra-addon' ),
'menu-container' => __( 'Menu Container Width', 'astra-addon' ),
'full' => __( 'Full Width', 'astra-addon' ),
'full-stretched' => __( 'Full Width Stretched', 'astra-addon' ),
'custom' => __( 'Custom Width', 'astra-addon' ),
),
'trigger_context' => array(
array(
'setting' => ASTRA_THEME_SETTINGS . '_menu_item_megamenu_custom_width',
'value' => array( 'custom' ),
),
),
'context' => array(
array(
'value' => array( 'megamenu' ),
'target_value' => get_post_meta( $menu_item_id, '_menu_item_megamenu', true ),
),
),
'tab_type' => 'general',
'depth' => 0,
),
// Option: Icon spacing.
array(
'name' => ASTRA_THEME_SETTINGS . '_menu_item_megamenu_custom_width',
'defaults' => get_post_meta( $menu_item_id, '_menu_item_megamenu_custom_width', true ),
'control' => 'ast-slider',
'title' => __( 'Custom Width', 'astra-addon' ),
'suffix' => 'px',
'input_attrs' => array(
'min' => 1,
'step' => 1,
'max' => 1920,
),
'tab_type' => 'general',
'depth' => '0',
'context' => array(
array(
'value' => array( 'custom' ),
'target_value' => get_post_meta( $menu_item_id, '_menu_item_megamenu_width', true ),
),
),
),
// Option: Icon Heading.
array(
'name' => ASTRA_THEME_SETTINGS . '_menu_item_icon_label_title',
'control' => 'ast-title',
'title' => __( 'Icon', 'astra-addon' ),
'divider' => 'ast-top-section-divider',
'tab_type' => 'general',
'depth' => 'all',
),
// Option: Icon source.
array(
'name' => ASTRA_THEME_SETTINGS . '_menu_item_megamenu_icon_source',
'defaults' => Astra_Ext_Nav_Menu_Loader::get_megamenu_default( 'icon_source', $menu_item_id ),
'title' => __( 'Icon', 'astra-addon' ),
'control' => 'ast-icon',
'tab_type' => 'general',
'depth' => 'all',
'trigger_context' => array(
array(
'setting' => ASTRA_THEME_SETTINGS . '_menu_item_megamenu_icon_position',
'value' => array( 'image', 'icon' ),
),
array(
'setting' => ASTRA_THEME_SETTINGS . '_menu_item_megamenu_icon_size',
'value' => array( 'image', 'icon' ),
),
array(
'setting' => ASTRA_THEME_SETTINGS . '_menu_item_megamenu_icon_spacing',
'value' => array( 'image', 'icon' ),
),
array(
'setting' => ASTRA_THEME_SETTINGS . '_menu_item_icon_label_title_design',
'value' => array( 'image', 'icon' ),
),
array(
'setting' => ASTRA_THEME_SETTINGS . '_menu_item_megamenu_icon_view',
'value' => array( 'image', 'icon' ),
),
array(
'setting' => ASTRA_THEME_SETTINGS . '_menu_item_megamenu_icon_primary_color',
'value' => array( 'image', 'icon' ),
),
array(
'setting' => ASTRA_THEME_SETTINGS . '_menu_item_megamenu_icon_secondary_color',
'value' => array( 'image', 'icon' ),
'dependency' => ASTRA_THEME_SETTINGS . '_menu_item_megamenu_icon_view',
'dependency_value' => array( 'stacked', 'framed' ),
),
array(
'setting' => ASTRA_THEME_SETTINGS . '_menu_item_megamenu_icon_padding',
'value' => array( 'image', 'icon' ),
'dependency' => ASTRA_THEME_SETTINGS . '_menu_item_megamenu_icon_view',
'dependency_value' => array( 'stacked', 'framed' ),
),
array(
'setting' => ASTRA_THEME_SETTINGS . '_menu_item_megamenu_icon_border_width',
'value' => array( 'image', 'icon' ),
'dependency' => ASTRA_THEME_SETTINGS . '_menu_item_megamenu_icon_view',
'dependency_value' => array( 'framed' ),
),
array(
'setting' => ASTRA_THEME_SETTINGS . '_menu_item_megamenu_icon_corner_radius',
'value' => array( 'image', 'icon' ),
'dependency' => ASTRA_THEME_SETTINGS . '_menu_item_megamenu_icon_view',
'dependency_value' => array( 'stacked', 'framed' ),
),
),
),
// Option: Icon position.
array(
'name' => ASTRA_THEME_SETTINGS . '_menu_item_megamenu_icon_position',
'defaults' => Astra_Ext_Nav_Menu_Loader::get_megamenu_default( 'icon_position', $menu_item_id ),
'control' => 'ast-select',
'title' => __( 'Icon Position', 'astra-addon' ),
'choices' => array(
'before-label' => __( 'Before Menu Label', 'astra-addon' ),
'after-label' => __( 'After Menu Label', 'astra-addon' ),
),
'tab_type' => 'general',
'depth' => 'all',
'context' => array(
array(
'value' => array( 'image', 'icon' ),
'target_value' => Astra_Ext_Nav_Menu_Loader::get_megamenu_default( 'icon_source', $menu_item_id ),
),
),
),
// Option: Icon size.
array(
'name' => ASTRA_THEME_SETTINGS . '_menu_item_megamenu_icon_size',
'control' => 'ast-slider',
'defaults' => Astra_Ext_Nav_Menu_Loader::get_megamenu_default( 'icon_size', $menu_item_id ),
'title' => __( 'Size', 'astra-addon' ),
'suffix' => 'px',
'input_attrs' => array(
'min' => 1,
'step' => 1,
'max' => 100,
),
'tab_type' => 'general',
'depth' => 'all',
'context' => array(
array(
'value' => array( 'image', 'icon' ),
'target_value' => Astra_Ext_Nav_Menu_Loader::get_megamenu_default( 'icon_source', $menu_item_id ),
),
),
),
// Option: Icon spacing.
array(
'name' => ASTRA_THEME_SETTINGS . '_menu_item_megamenu_icon_spacing',
'defaults' => Astra_Ext_Nav_Menu_Loader::get_megamenu_default( 'icon_spacing', $menu_item_id ),
'control' => 'ast-slider',
'title' => __( 'Icon Spacing', 'astra-addon' ),
'suffix' => 'px',
'input_attrs' => array(
'min' => 1,
'step' => 1,
'max' => 100,
),
'tab_type' => 'general',
'depth' => 'all',
'context' => array(
array(
'value' => array( 'image', 'icon' ),
'target_value' => Astra_Ext_Nav_Menu_Loader::get_megamenu_default( 'icon_source', $menu_item_id ),
),
),
),
// Option: Content source heading.
array(
'name' => ASTRA_THEME_SETTINGS . '_menu_item_content_source_title',
'control' => 'ast-title',
'title' => __( 'Content Source', 'astra-addon' ),
'divider' => '',
'tab_type' => 'general',
'divider' => 'ast-top-section-divider',
'depth' => 1,
),
// Option: Content source.
array(
'name' => ASTRA_THEME_SETTINGS . '_menu_item_megamenu_content_src',
'defaults' => get_post_meta( $menu_item_id, '_menu_item_megamenu_content_src', true ),
'control' => 'ast-select',
'title' => __( 'Content Source', 'astra-addon' ),
'divider' => '',
'choices' => array(
'default' => __( 'Default', 'astra-addon' ),
'custom_text' => __( 'Custom Text', 'astra-addon' ),
'template' => __( 'Template', 'astra-addon' ),
'widget' => __( 'Widget', 'astra-addon' ),
),
'tab_type' => 'general',
'depth' => 1,
'trigger_context' => array(
array(
'setting' => ASTRA_THEME_SETTINGS . '_menu_item_widget_list',
'value' => array( 'widget' ),
),
array(
'setting' => ASTRA_THEME_SETTINGS . '_menu_item_megamenu_template',
'value' => array( 'template' ),
),
array(
'setting' => ASTRA_THEME_SETTINGS . '_menu_item_megamenu_custom_text',
'value' => array( 'custom_text' ),
),
),
),
// Option: Widget list.
array(
'name' => ASTRA_THEME_SETTINGS . '_menu_item_widget_list',
'defaults' => get_post_meta( $menu_item_id, '_menu_item_widget_list', true ),
'control' => 'ast-widget',
'title' => __( 'Widget List', 'astra-addon' ),
'tab_type' => 'general',
'depth' => 1,
'context' => array(
array(
'value' => array( 'widget' ),
'target_value' => get_post_meta( $menu_item_id, '_menu_item_megamenu_content_src', true ),
),
),
),
// Option: Select template.
array(
'name' => ASTRA_THEME_SETTINGS . '_menu_item_megamenu_template',
'defaults' => get_post_meta( $menu_item_id, '_menu_item_megamenu_template', true ),
'control' => 'ast-template',
'defaults_title' => get_the_title( (int) get_post_meta( $menu_item_id, '_menu_item_megamenu_template', true ) ),
'title' => __( 'Template', 'astra-addon' ),
'tab_type' => 'general',
'depth' => 1,
'context' => array(
array(
'value' => array( 'template' ),
'target_value' => get_post_meta( $menu_item_id, '_menu_item_megamenu_content_src', true ),
),
),
),
// Option: Custom text field.
array(
'name' => ASTRA_THEME_SETTINGS . '_menu_item_megamenu_custom_text',
'defaults' => get_post_meta( $menu_item_id, '_menu_item_megamenu_custom_text', true ),
'control' => 'ast-textarea',
'title' => __( 'Custom Text', 'astra-addon' ),
'tab_type' => 'general',
'depth' => 1,
'context' => array(
array(
'value' => array( 'custom_text' ),
'target_value' => get_post_meta( $menu_item_id, '_menu_item_megamenu_content_src', true ),
),
),
),
// Option: Highlight heading.
array(
'name' => ASTRA_THEME_SETTINGS . '_menu_item_highlight_label_title',
'control' => 'ast-title',
'title' => __( 'Highlight Labels', 'astra-addon' ),
'divider' => 'ast-top-section-divider',
'tab_type' => 'general',
'depth' => 'all',
),
// Option: Menu highlight label input.
array(
'name' => ASTRA_THEME_SETTINGS . '_menu_item_megamenu_highlight_label',
'defaults' => get_post_meta( $menu_item_id, '_menu_item_megamenu_highlight_label', true ),
'control' => 'ast-text',
'title' => __( 'Menu Highlight Label', 'astra-addon' ),
'description' => __( 'Change menu highlight label text', 'astra-addon' ),
'divider' => '',
'tab_type' => 'general',
'depth' => 'all',
),
// Option: Background type heading.
array(
'name' => ASTRA_THEME_SETTINGS . '_menu_item_background_type_title',
'control' => 'ast-title',
'title' => __( 'Background Type', 'astra-addon' ),
'divider' => 'top-spacing',
'tab_type' => 'design',
'depth' => 0,
'context' => array(
array(
'value' => array( 'megamenu' ),
'target_value' => get_post_meta( $menu_item_id, '_menu_item_megamenu', true ),
),
),
),
// Option: Background type.
array(
'name' => ASTRA_THEME_SETTINGS . '_menu_item_megamenu_background_type',
'defaults' => Astra_Ext_Nav_Menu_Loader::get_megamenu_default( 'bg_type', $menu_item_id ),
'control' => 'ast-background-type',
'title' => __( 'Background Type', 'astra-addon' ),
'divider' => '',
'tab_type' => 'design',
'depth' => 0,
'context' => array(
array(
'value' => array( 'megamenu' ),
'target_value' => get_post_meta( $menu_item_id, '_menu_item_megamenu', true ),
),
),
'trigger_context' => array(
array(
'setting' => ASTRA_THEME_SETTINGS . '_menu_item_megamenu_gradient',
'value' => array( 'gradient' ),
),
array(
'setting' => ASTRA_THEME_SETTINGS . '_menu_item_megamenu_background_image',
'value' => array( 'image' ),
),
array(
'setting' => ASTRA_THEME_SETTINGS . '_menu_item_megamenu_bg_color',
'value' => array( 'image' ),
),
array(
'setting' => ASTRA_THEME_SETTINGS . '_menu_item_megamenu_bg_repeat',
'value' => array( 'image' ),
),
array(
'setting' => ASTRA_THEME_SETTINGS . '_menu_item_megamenu_bg_size',
'value' => array( 'image' ),
),
array(
'setting' => ASTRA_THEME_SETTINGS . '_menu_item_megamenu_bg_position',
'value' => array( 'image' ),
),
),
),
// Option: Background color.
array(
'name' => ASTRA_THEME_SETTINGS . '_menu_item_megamenu_bg_color',
'defaults' => get_post_meta( $menu_item_id, '_menu_item_megamenu_bg_color', true ),
'control' => 'ast-color',
'title' => __( 'Color', 'astra-addon' ),
'divider' => '',
'tab_type' => 'design',
'depth' => 0,
'context' => array(
array(
'value' => array( 'image' ),
'target_value' => get_post_meta( $menu_item_id, '_menu_item_megamenu_background_type', true ),
),
array(
'value' => array( 'megamenu' ),
'target_value' => get_post_meta( $menu_item_id, '_menu_item_megamenu', true ),
'dependency' => ASTRA_THEME_SETTINGS . '_menu_item_megamenu_background_type',
'dependency_value' => array( 'image' ),
),
),
),
// Option: Background gradient.
array(
'name' => ASTRA_THEME_SETTINGS . '_menu_item_megamenu_gradient',
'defaults' => get_post_meta( $menu_item_id, '_menu_item_megamenu_gradient', true ),
'control' => 'ast-gradient',
'title' => __( 'Image', 'astra-addon' ),
'divider' => '',
'tab_type' => 'design',
'depth' => 0,
'context' => array(
array(
'value' => array( 'gradient' ),
'target_value' => get_post_meta( $menu_item_id, '_menu_item_megamenu_background_type', true ),
),
array(
'value' => array( 'megamenu' ),
'target_value' => get_post_meta( $menu_item_id, '_menu_item_megamenu', true ),
'dependency' => ASTRA_THEME_SETTINGS . '_menu_item_megamenu_background_type',
'dependency_value' => array( 'gradient' ),
),
),
),
// Option: Background image.
array(
'name' => ASTRA_THEME_SETTINGS . '_menu_item_megamenu_background_image',
'defaults' => get_post_meta( $menu_item_id, '_menu_item_megamenu_background_image', true ),
'control' => 'ast-image',
'title' => __( 'Image', 'astra-addon' ),
'divider' => '',
'tab_type' => 'design',
'depth' => 0,
'context' => array(
array(
'value' => array( 'image' ),
'target_value' => get_post_meta( $menu_item_id, '_menu_item_megamenu_background_type', true ),
),
array(
'value' => array( 'megamenu' ),
'target_value' => get_post_meta( $menu_item_id, '_menu_item_megamenu', true ),
'dependency' => ASTRA_THEME_SETTINGS . '_menu_item_megamenu_background_type',
'dependency_value' => array( 'image' ),
),
),
),
// Option: Background repeat.
array(
'name' => ASTRA_THEME_SETTINGS . '_menu_item_megamenu_bg_repeat',
'defaults' => get_post_meta( $menu_item_id, '_menu_item_megamenu_bg_repeat', true ),
'control' => 'ast-select',
'choices' => array(
'no-repeat' => __( 'No Repeat', 'astra-addon' ),
'repeat' => __( 'Repeat All', 'astra-addon' ),
'repeat-x' => __( 'Repeat Horizontally ', 'astra-addon' ),
'repeat-y' => __( 'Repeat Vertically', 'astra-addon' ),
),
'tab_type' => 'design',
'depth' => 0,
'context' => array(
array(
'value' => array( 'image' ),
'target_value' => get_post_meta( $menu_item_id, '_menu_item_megamenu_background_type', true ),
),
array(
'value' => array( 'megamenu' ),
'target_value' => get_post_meta( $menu_item_id, '_menu_item_megamenu', true ),
'dependency' => ASTRA_THEME_SETTINGS . '_menu_item_megamenu_background_type',
'dependency_value' => array( 'image' ),
),
),
),
// Option: Background size.
array(
'name' => ASTRA_THEME_SETTINGS . '_menu_item_megamenu_bg_size',
'defaults' => get_post_meta( $menu_item_id, '_menu_item_megamenu_bg_size', true ),
'control' => 'ast-select',
'choices' => array(
'auto' => __( 'Auto', 'astra-addon' ),
'cover' => __( 'Cover', 'astra-addon' ),
'contain' => __( 'Contain', 'astra-addon' ),
),
'tab_type' => 'design',
'depth' => 0,
'context' => array(
array(
'value' => array( 'image' ),
'target_value' => get_post_meta( $menu_item_id, '_menu_item_megamenu_background_type', true ),
),
array(
'value' => array( 'megamenu' ),
'target_value' => get_post_meta( $menu_item_id, '_menu_item_megamenu', true ),
'dependency' => ASTRA_THEME_SETTINGS . '_menu_item_megamenu_background_type',
'dependency_value' => array( 'image' ),
),
),
),
// Option: Background position.
array(
'name' => ASTRA_THEME_SETTINGS . '_menu_item_megamenu_bg_position',
'defaults' => get_post_meta( $menu_item_id, '_menu_item_megamenu_bg_position', true ),
'control' => 'ast-select',
'choices' => array(
'left top' => __( 'Left Top', 'astra-addon' ),
'left center' => __( 'Left Center', 'astra-addon' ),
'left bottom' => __( 'Left Bottom ', 'astra-addon' ),
'right top' => __( 'Right Top', 'astra-addon' ),
'right center' => __( 'Right Center', 'astra-addon' ),
'right bottom' => __( 'Right Bottom', 'astra-addon' ),
'center top' => __( 'Center Top', 'astra-addon' ),
'center center' => __( 'Center Center', 'astra-addon' ),
'center bottom' => __( 'Center Bottom', 'astra-addon' ),
),
'tab_type' => 'design',
'depth' => 0,
'context' => array(
array(
'value' => array( 'image' ),
'target_value' => get_post_meta( $menu_item_id, '_menu_item_megamenu_background_type', true ),
),
array(
'value' => array( 'megamenu' ),
'target_value' => get_post_meta( $menu_item_id, '_menu_item_megamenu', true ),
'dependency' => ASTRA_THEME_SETTINGS . '_menu_item_megamenu_background_type',
'dependency_value' => array( 'image' ),
),
),
),
// Option: Color heading.
array(
'name' => ASTRA_THEME_SETTINGS . '_menu_item_color_label_title',
'control' => 'ast-title',
'title' => __( 'Colors', 'astra-addon' ),
'tab_type' => 'design',
'divider' => 'ast-top-section-divider',
'depth' => 0,
'context' => array(
array(
'value' => array( 'megamenu' ),
'target_value' => get_post_meta( $menu_item_id, '_menu_item_megamenu', true ),
),
),
),
// Option: Heading color.
array(
'name' => ASTRA_THEME_SETTINGS . '_menu_item_megamenu_heading_color_group',
'defaults' => get_post_meta( $menu_item_id, '_menu_item_megamenu_heading_color_group', true ),
'control' => 'ast-color',
'title' => __( 'Heading', 'astra-addon' ),
'link_to' => 'panel-header-builder-group',
'divider' => '',
'depth' => 0,
'tab_type' => 'design',
'has_hover' => true,
'context' => array(
array(
'value' => array( 'megamenu' ),
'target_value' => get_post_meta( $menu_item_id, '_menu_item_megamenu', true ),
),
),
),
// Option: Text/Link text color.
array(
'name' => ASTRA_THEME_SETTINGS . '_menu_item_megamenu_text_color_group',
'defaults' => Astra_Ext_Nav_Menu_Loader::get_megamenu_default( 'text_color', $menu_item_id ),
'control' => 'ast-color',
'title' => __( 'Text/Link', 'astra-addon' ),
'tab_type' => 'design',
'depth' => 0,
'has_hover' => true,
'context' => array(
array(
'value' => array( 'megamenu' ),
'target_value' => get_post_meta( $menu_item_id, '_menu_item_megamenu', true ),
),
),
),
// Option: Icon heading.
array(
'name' => ASTRA_THEME_SETTINGS . '_menu_item_icon_label_title_design',
'control' => 'ast-title',
'title' => __( 'Icon', 'astra-addon' ),
'tab_type' => 'design',
'divider' => 'ast-top-section-divider',
'depth' => 'all',
'context' => array(
array(
'value' => array( 'image', 'icon' ),
'target_value' => Astra_Ext_Nav_Menu_Loader::get_megamenu_default( 'icon_source', $menu_item_id ),
),
),
),
// Option: Icon view type.
array(
'name' => ASTRA_THEME_SETTINGS . '_menu_item_megamenu_icon_view',
'defaults' => Astra_Ext_Nav_Menu_Loader::get_megamenu_default( 'icon_view', $menu_item_id ),
'control' => 'ast-select',
'title' => __( 'View', 'astra-addon' ),
'choices' => array(
'default' => __( 'Default', 'astra-addon' ),
'stacked' => __( 'Stacked', 'astra-addon' ),
'framed' => __( 'Framed', 'astra-addon' ),
),
'tab_type' => 'design',
'depth' => 'all',
'trigger_context' => array(
array(
'setting' => ASTRA_THEME_SETTINGS . '_menu_item_megamenu_icon_secondary_color',
'value' => array( 'stacked', 'framed' ),
),
array(
'setting' => ASTRA_THEME_SETTINGS . '_menu_item_megamenu_icon_padding',
'value' => array( 'stacked', 'framed' ),
),
array(
'setting' => ASTRA_THEME_SETTINGS . '_menu_item_megamenu_icon_corner_radius',
'value' => array( 'stacked', 'framed' ),
),
array(
'setting' => ASTRA_THEME_SETTINGS . '_menu_item_megamenu_icon_border_width',
'value' => array( 'framed' ),
),
),
'context' => array(
array(
'value' => array( 'image', 'icon' ),
'target_value' => Astra_Ext_Nav_Menu_Loader::get_megamenu_default( 'icon_source', $menu_item_id ),
),
),
),
// Option: Icon primary color.
array(
'name' => ASTRA_THEME_SETTINGS . '_menu_item_megamenu_icon_primary_color',
'defaults' => Astra_Ext_Nav_Menu_Loader::get_megamenu_default( 'icon_primary_color', $menu_item_id ),
'control' => 'ast-color',
'title' => __( 'Primary Color', 'astra-addon' ),
'divider' => '',
'tab_type' => 'design',
'depth' => 'all',
'context' => array(
array(
'value' => array( 'image', 'icon' ),
'target_value' => Astra_Ext_Nav_Menu_Loader::get_megamenu_default( 'icon_source', $menu_item_id ),
),
),
),
// Option: Icon secondary color.
array(
'name' => ASTRA_THEME_SETTINGS . '_menu_item_megamenu_icon_secondary_color',
'defaults' => Astra_Ext_Nav_Menu_Loader::get_megamenu_default( 'icon_secondary_color', $menu_item_id ),
'control' => 'ast-color',
'title' => __( 'Secondary Color', 'astra-addon' ),
'divider' => '',
'tab_type' => 'design',
'depth' => 'all',
'context' => array(
array(
'value' => array( 'stacked' ),
'target_value' => get_post_meta( $menu_item_id, '_menu_item_megamenu_icon_view', true ),
),
array(
'value' => array( 'framed' ),
'target_value' => get_post_meta( $menu_item_id, '_menu_item_megamenu_icon_view', true ),
),
array(
'value' => array( 'image', 'icon' ),
'target_value' => Astra_Ext_Nav_Menu_Loader::get_megamenu_default( 'icon_source', $menu_item_id ),
'dependency' => ASTRA_THEME_SETTINGS . '_menu_item_megamenu_icon_view',
'dependency_value' => array( 'stacked', 'framed' ),
),
),
),
// Option: Icon padding.
array(
'name' => ASTRA_THEME_SETTINGS . '_menu_item_megamenu_icon_padding',
'control' => 'ast-slider',
'defaults' => Astra_Ext_Nav_Menu_Loader::get_megamenu_default( 'icon_padding', $menu_item_id ),
'title' => __( 'Padding', 'astra-addon' ),
'suffix' => 'px',
'input_attrs' => array(
'min' => 1,
'step' => 1,
'max' => 100,
),
'tab_type' => 'design',
'depth' => 'all',
'context' => array(
array(
'value' => array( 'stacked' ),
'target_value' => get_post_meta( $menu_item_id, '_menu_item_megamenu_icon_view', true ),
),
array(
'value' => array( 'framed' ),
'target_value' => get_post_meta( $menu_item_id, '_menu_item_megamenu_icon_view', true ),
),
array(
'value' => array( 'image', 'icon' ),
'target_value' => Astra_Ext_Nav_Menu_Loader::get_megamenu_default( 'icon_source', $menu_item_id ),
'dependency' => ASTRA_THEME_SETTINGS . '_menu_item_megamenu_icon_view',
'dependency_value' => array( 'stacked', 'framed' ),
),
),
),
// Option: Icon border width.
array(
'name' => ASTRA_THEME_SETTINGS . '_menu_item_megamenu_icon_border_width',
'defaults' => Astra_Ext_Nav_Menu_Loader::get_megamenu_default( 'icon_border_width', $menu_item_id ),
'type' => 'control',
'control' => 'ast-spacing',
'title' => __( 'Border Width', 'astra-addon' ),
'linked_choices' => true,
'choices' => array(
'top' => __( 'Top', 'astra-addon' ),
'right' => __( 'Right', 'astra-addon' ),
'bottom' => __( 'Bottom', 'astra-addon' ),
'left' => __( 'Left', 'astra-addon' ),
),
'suffix' => 'px',
'connected' => false,
'tab_type' => 'design',
'responsive' => false,
'depth' => 'all',
'context' => array(
array(
'value' => array( 'framed' ),
'target_value' => get_post_meta( $menu_item_id, '_menu_item_megamenu_icon_view', true ),
),
array(
'value' => array( 'image', 'icon' ),
'target_value' => Astra_Ext_Nav_Menu_Loader::get_megamenu_default( 'icon_source', $menu_item_id ),
'dependency' => ASTRA_THEME_SETTINGS . '_menu_item_megamenu_icon_view',
'dependency_value' => array( 'framed' ),
),
),
),
// Option: Icon border radius.
array(
'name' => ASTRA_THEME_SETTINGS . '_menu_item_megamenu_icon_corner_radius',
'defaults' => Astra_Ext_Nav_Menu_Loader::get_megamenu_default( 'icon_corner_radius', $menu_item_id ),
'type' => 'control',
'control' => 'ast-spacing',
'suffix' => 'px',
'title' => __( 'Corner Radius', 'astra-addon' ),
'linked_choices' => true,
'choices' => array(
'top-left' => __( 'Top left', 'astra-addon' ),
'top-right' => __( 'Top Right', 'astra-addon' ),
'bottom-left' => __( 'Bottom Left', 'astra-addon' ),
'bottom-right' => __( 'Bottom Right', 'astra-addon' ),
),
'connected' => false,
'tab_type' => 'design',
'responsive' => false,
'depth' => 'all',
'context' => array(
array(
'value' => array( 'stacked' ),
'target_value' => get_post_meta( $menu_item_id, '_menu_item_megamenu_icon_view', true ),
),
array(
'value' => array( 'framed' ),
'target_value' => get_post_meta( $menu_item_id, '_menu_item_megamenu_icon_view', true ),
),
array(
'value' => array( 'image', 'icon' ),
'target_value' => Astra_Ext_Nav_Menu_Loader::get_megamenu_default( 'icon_source', $menu_item_id ),
'dependency' => ASTRA_THEME_SETTINGS . '_menu_item_megamenu_icon_view',
'dependency_value' => array( 'stacked', 'framed' ),
),
),
),
// Option: Divider Heading.
array(
'name' => ASTRA_THEME_SETTINGS . '_menu_item_divider_title',
'control' => 'ast-title',
'title' => __( 'Divider', 'astra-addon' ),
'divider' => 'ast-top-section-divider',
'tab_type' => 'design',
'depth' => 0,
'context' => array(
array(
'value' => array( 'megamenu' ),
'target_value' => get_post_meta( $menu_item_id, '_menu_item_megamenu', true ),
),
),
),
// Option: Divider style.
array(
'name' => ASTRA_THEME_SETTINGS . '_menu_item_megamenu_divider_style',
'defaults' => get_post_meta( $menu_item_id, '_menu_item_megamenu_divider_style', true ),
'control' => 'ast-select',
'title' => __( 'Style', 'astra-addon' ),
'choices' => array(
'solid' => __( 'Solid', 'astra-addon' ),
'dotted' => __( 'Dotted', 'astra-addon' ),
'dashed' => __( 'Dashed', 'astra-addon' ),
'double' => __( 'Double', 'astra-addon' ),
'none' => __( 'None', 'astra-addon' ),
),
'tab_type' => 'design',
'depth' => 0,
'context' => array(
array(
'value' => array( 'megamenu' ),
'target_value' => get_post_meta( $menu_item_id, '_menu_item_megamenu', true ),
),
),
),
// Option: Top Border width.
array(
'name' => ASTRA_THEME_SETTINGS . '_menu_item_megamenu_top_border_width',
'control' => 'ast-slider',
'defaults' => get_post_meta( $menu_item_id, '_menu_item_megamenu_top_border_width', true ),
'title' => __( 'Top Border Width', 'astra-addon' ),
'suffix' => 'px',
'input_attrs' => array(
'min' => 0,
'step' => 1,
'max' => 50,
),
'tab_type' => 'design',
'depth' => 0,
'context' => array(
array(
'value' => array( 'megamenu' ),
'target_value' => get_post_meta( $menu_item_id, '_menu_item_megamenu', true ),
),
),
),
// Option: Column Divider width.
array(
'name' => ASTRA_THEME_SETTINGS . '_menu_item_megamenu_column_divider_width',
'defaults' => get_post_meta( $menu_item_id, '_menu_item_megamenu_column_divider_width', true ),
'control' => 'ast-slider',
'title' => __( 'Column Width', 'astra-addon' ),
'suffix' => 'px',
'input_attrs' => array(
'min' => 0,
'step' => 1,
'max' => 50,
),
'tab_type' => 'design',
'depth' => 0,
'context' => array(
array(
'value' => array( 'megamenu' ),
'target_value' => get_post_meta( $menu_item_id, '_menu_item_megamenu', true ),
),
),
),
// Option: Row Divider width.
array(
'name' => ASTRA_THEME_SETTINGS . '_menu_item_megamenu_row_divider_width',
'control' => 'ast-slider',
'defaults' => get_post_meta( $menu_item_id, '_menu_item_megamenu_row_divider_width', true ),
'title' => __( 'Row Width', 'astra-addon' ),
'suffix' => 'px',
'input_attrs' => array(
'min' => 0,
'step' => 1,
'max' => 50,
),
'tab_type' => 'design',
'depth' => 0,
'context' => array(
array(
'value' => array( 'megamenu' ),
'target_value' => get_post_meta( $menu_item_id, '_menu_item_megamenu', true ),
),
),
),
// Option: Top Border.
array(
'name' => ASTRA_THEME_SETTINGS . '_menu_item_megamenu_top_border_color',
'defaults' => get_post_meta( $menu_item_id, '_menu_item_megamenu_top_border_color', true ),
'control' => 'ast-color',
'title' => __( 'Top Border', 'astra-addon' ),
'divider' => '',
'tab_type' => 'design',
'depth' => 0,
'context' => array(
array(
'value' => array( 'megamenu' ),
'target_value' => get_post_meta( $menu_item_id, '_menu_item_megamenu', true ),
),
),
),
// Option: Divider column color.
array(
'name' => ASTRA_THEME_SETTINGS . '_menu_item_megamenu_column_divider_color',
'defaults' => get_post_meta( $menu_item_id, '_menu_item_megamenu_column_divider_color', true ),
'control' => 'ast-color',
'title' => __( 'Column Divider', 'astra-addon' ),
'divider' => '',
'tab_type' => 'design',
'depth' => 0,
'context' => array(
array(
'value' => array( 'megamenu' ),
'target_value' => get_post_meta( $menu_item_id, '_menu_item_megamenu', true ),
),
),
),
// Option: Highlight Labels heading.
array(
'name' => ASTRA_THEME_SETTINGS . '_menu_item_highlight_labels_title',
'control' => 'ast-title',
'title' => __( 'Highlight Labels', 'astra-addon' ),
'divider' => '',
'tab_type' => 'design',
'divider' => 'ast-top-section-divider',
'depth' => 'all',
),
// Option: Highlight Label color.
array(
'name' => ASTRA_THEME_SETTINGS . '_menu_item_megamenu_label_color',
'defaults' => get_post_meta( $menu_item_id, '_menu_item_megamenu_label_color', true ),
'control' => 'ast-color',
'title' => __( 'Highlight Label Color', 'astra-addon' ),
'divider' => '',
'tab_type' => 'design',
'depth' => 'all',
),
// Option: Highlight Label background color.
array(
'name' => ASTRA_THEME_SETTINGS . '_menu_item_megamenu_label_bg_color',
'defaults' => get_post_meta( $menu_item_id, '_menu_item_megamenu_label_bg_color', true ),
'control' => 'ast-color',
'title' => __( 'Background Color', 'astra-addon' ),
'divider' => '',
'tab_type' => 'design',
'depth' => 'all',
),
// Option: Highlight Label spacing heading.
array(
'name' => ASTRA_THEME_SETTINGS . '_menu_item_spacing_title',
'control' => 'ast-title',
'title' => __( 'Spacing', 'astra-addon' ),
'divider' => '',
'tab_type' => 'design',
'divider' => 'ast-top-section-divider',
'depth' => 0,
'context' => array(
array(
'value' => array( 'megamenu' ),
'target_value' => get_post_meta( $menu_item_id, '_menu_item_megamenu', true ),
),
),
),
// Option: Margin.
array(
'name' => ASTRA_THEME_SETTINGS . '_menu_item_megamenu_margin',
'defaults' => Astra_Ext_Nav_Menu_Loader::get_megamenu_default( 'margin', $menu_item_id ),
'type' => 'control',
'control' => 'ast-spacing',
'title' => __( 'Margin', 'astra-addon' ),
'suffix' => 'px',
'linked_choices' => true,
'choices' => array(
'top' => __( 'Top', 'astra-addon' ),
'right' => __( 'Right', 'astra-addon' ),
'bottom' => __( 'Bottom', 'astra-addon' ),
'left' => __( 'Left', 'astra-addon' ),
),
'connected' => false,
'tab_type' => 'design',
'responsive' => false,
'depth' => 0,
'context' => array(
array(
'value' => array( 'megamenu' ),
'target_value' => get_post_meta( $menu_item_id, '_menu_item_megamenu', true ),
),
),
),
// Option: Padding.
array(
'name' => ASTRA_THEME_SETTINGS . '_menu_item_megamenu_padding',
'defaults' => Astra_Ext_Nav_Menu_Loader::get_megamenu_default( 'padding', $menu_item_id ),
'type' => 'control',
'control' => 'ast-spacing',
'title' => __( 'Padding', 'astra-addon' ),
'suffix' => 'px',
'linked_choices' => true,
'choices' => array(
'top' => __( 'Top', 'astra-addon' ),
'right' => __( 'Right', 'astra-addon' ),
'bottom' => __( 'Bottom', 'astra-addon' ),
'left' => __( 'Left', 'astra-addon' ),
),
'connected' => false,
'tab_type' => 'design',
'responsive' => false,
'depth' => 0,
'context' => array(
array(
'value' => array( 'megamenu' ),
'target_value' => get_post_meta( $menu_item_id, '_menu_item_megamenu', true ),
),
),
),
);
return rest_ensure_response( $_config );
}
/**
* Register Script for Mega menu.
*
* @since 4.0.0
*/
public function register_mega_menu_script() {
$path = ASTRA_ADDON_EXT_NAV_MENU_URL . 'react/build/index.js';
if ( is_rtl() ) {
$font_icon_picker_css_file = 'font-icon-picker-rtl';
} else {
$font_icon_picker_css_file = 'font-icon-picker';
}
wp_enqueue_style( 'ahfb-customizer-color-picker-style', ASTRA_THEME_URI . 'inc/assets/css/' . $font_icon_picker_css_file . '.css', array(), ASTRA_EXT_VER );
wp_enqueue_style( 'astra-customizer-control-css', get_site_url() . '/wp-includes/css/dist/components/style.css', array(), ASTRA_EXT_VER );
wp_register_script(
'astra-mega-menu',
$path,
array( 'wp-edit-post', 'wp-i18n', 'wp-element' ),
ASTRA_EXT_VER,
true
);
$widget_obj = Astra_Ext_Nav_Widget_Support::get_instance();
wp_localize_script(
'astra-mega-menu',
'AstraBuilderMegaMenu',
array(
'isWP_5_9' => astra_wp_version_compare( '5.8.99', '>=' ),
'nonce' => wp_create_nonce( 'wp_rest' ),
'nonceWidget' => wp_create_nonce( 'wp_widget_nonce' ),
'globalColorPalette' => astra_get_option( 'global-color-palette' ),
'globalPaletteStylePrefix' => Astra_Global_Palette::get_css_variable_prefix(),
'globalPaletteLabels' => Astra_Global_Palette::get_palette_labels(),
'widgets' => $widget_obj->get_widget_list(),
'savingButtonText' => array(
'initial' => __( 'Save Changes', 'astra-addon' ),
'saving' => __( 'Saving...', 'astra-addon' ),
'saved' => __( 'Saved', 'astra-addon' ),
'error' => __( 'Error Saving', 'astra-addon' ),
),
'oldMegaMenuUrl' => admin_url( 'customize.php?autofocus[control]=' . ASTRA_THEME_SETTINGS . '[primary-header-megamenu-heading-color]' ),
'isHeaderFooterBuilderActive' => astra_addon_builder_helper()->is_header_footer_builder_active,
'newMegaMenuUrl' => admin_url( 'customize.php?autofocus[panel]=panel-header-builder-group' ),
)
);
wp_enqueue_script( 'astra-mega-menu' );
}
/**
* Add Body Classes
*
* @param array $classes Body Class Array.
* @return array
*/
public function body_classes( $classes ) {
if ( ! wp_is_mobile() ) {
$classes[] = 'ast-desktop';
}
return $classes;
}
}
}
new Astra_Ext_Nav_Menu_Markup();