Loading...
ground',
],
]
);
$this->add_group_control(
Group_Control_Typography::get_type(),
[
'name' => 'menu_items_typography',
'selector' => '{{WRAPPER}} .wpr-menu-item,{{WRAPPER}} .wpr-mobile-menu-item,{{WRAPPER}} .wpr-mobile-sub-menu-item,{{WRAPPER}} .wpr-mobile-toggle-text, .wpr-menu-offcanvas-back h3',
]
);
$this->end_controls_tab();
$this->start_controls_tab(
'tab_menu_item_hover',
[
'label' => esc_html__( 'Hover', 'wpr-addons' ),
]
);
$this->add_control(
'menu_item_color_hover',
[
'label' => esc_html__( 'Text Color', 'wpr-addons' ),
'type' => Controls_Manager::COLOR,
// 'scheme' => [
// 'type' => Color::get_type(),
// 'value' => Color::COLOR_4,
// ],
'default' => '#605BE5',
'selectors' => [
'{{WRAPPER}} .wpr-nav-menu .wpr-menu-item:hover,
{{WRAPPER}} .wpr-nav-menu .wpr-menu-item:hover .wpr-mega-menu-icon,
{{WRAPPER}} .wpr-nav-menu .wpr-menu-item.wpr-active-menu-item .wpr-mega-menu-icon,
{{WRAPPER}} .wpr-nav-menu > .menu-item-has-children:hover > .wpr-sub-icon,
{{WRAPPER}} .wpr-nav-menu .wpr-menu-item.wpr-active-menu-item,
{{WRAPPER}} .wpr-nav-menu > .menu-item-has-children.current_page_item > .wpr-sub-icon' => 'color: {{VALUE}};',
],
]
);
$this->add_control(
'pointer_color_hover',
[
'label' => esc_html__( 'Pointer Color', 'wpr-addons' ),
'type' => Controls_Manager::COLOR,
// 'scheme' => [
// 'type' => Color::get_type(),
// 'value' => Color::COLOR_4,
// ],
'default' => '#605BE5',
'selectors' => [
'{{WRAPPER}}.wpr-pointer-line-fx .wpr-menu-item:before,
{{WRAPPER}}.wpr-pointer-line-fx .wpr-menu-item:after' => 'background-color: {{VALUE}};',
'{{WRAPPER}}.wpr-pointer-border-fx .wpr-menu-item:before' => 'border-color: {{VALUE}};',
'{{WRAPPER}}.wpr-pointer-background-fx .wpr-menu-item:before' => 'background-color: {{VALUE}};',
],
]
);
$this->end_controls_tab();
$this->end_controls_tabs();
$this->add_control(
'menu_item_highlight',
[
'label' => esc_html__( 'Highlight Active Item', 'wpr-addons' ),
'type' => Controls_Manager::SWITCHER,
'default' => 'yes',
'return_value' => 'yes',
'separator' => 'before'
]
);
$this->add_control(
'menu_items_extra_icon_size',
[
'label' => esc_html__( 'Custom Icon Size', 'wpr-addons' ),
'type' => Controls_Manager::SLIDER,
'default' => [
'size' => 16,
],
'range' => [
'px' => [
'min' => 5,
'max' => 25,
],
],
'selectors' => [
'{{WRAPPER}} .wpr-nav-menu .wpr-mega-menu-icon' => 'font-size: {{SIZE}}{{UNIT}};',
],
]
);
$this->add_control(
'menu_items_extra_icon_distance',
[
'label' => esc_html__( 'Custom Icon Distance', 'wpr-addons' ),
'type' => Controls_Manager::SLIDER,
'default' => [
'size' => 5,
],
'range' => [
'px' => [
'min' => 0,
'max' => 25,
],
],
'selectors' => [
'{{WRAPPER}} .wpr-nav-menu .wpr-mega-menu-icon' => 'margin-right: {{SIZE}}{{UNIT}};',
],
]
);
$this->add_control(
'menu_items_sub_icon_size',
[
'label' => esc_html__( 'Sub Menu Icon Size', 'wpr-addons' ),
'type' => Controls_Manager::SLIDER,
'default' => [
'size' => 15,
],
'range' => [
'px' => [
'min' => 5,
'max' => 25,
],
],
'selectors' => [
'{{WRAPPER}} .menu-item-has-children .wpr-sub-icon' => 'font-size: {{SIZE}}{{UNIT}};',
// '{{WRAPPER}}.wpr-pointer-background:not(.wpr-sub-icon-none) .wpr-nav-menu-horizontal .menu-item-has-children .wpr-pointer-item' => 'padding-right: calc({{SIZE}}px + {{menu_items_padding_hr.SIZE}}px);',
// '{{WRAPPER}}.wpr-pointer-border:not(.wpr-sub-icon-none) .wpr-nav-menu-horizontal .menu-item-has-children .wpr-pointer-item' => 'padding-right: calc({{SIZE}}px + {{menu_items_padding_hr.SIZE}}px);',
],
'separator' => 'before'
]
);
$this->add_control(
'pointer_height',
[
'label' => esc_html__( 'Pointer Weight', 'wpr-addons' ),
'type' => Controls_Manager::SLIDER,
'devices' => [ self::RESPONSIVE_DESKTOP, self::RESPONSIVE_TABLET ],
'default' => [
'size' => 2,
],
'range' => [
'px' => [
'min' => 1,
'max' => 10,
],
],
'selectors' => [
'{{WRAPPER}}.wpr-pointer-underline .wpr-menu-item:after,
{{WRAPPER}}.wpr-pointer-overline .wpr-menu-item:before,
{{WRAPPER}}.wpr-pointer-double-line .wpr-menu-item:before,
{{WRAPPER}}.wpr-pointer-double-line .wpr-menu-item:after' => 'height: {{SIZE}}{{UNIT}};',
'{{WRAPPER}}.wpr-pointer-border-fx .wpr-menu-item:before' => 'border-width: {{SIZE}}{{UNIT}};',
],
'condition' => [
'menu_items_pointer!' => 'background',
],
]
);
$this->add_control(
'pointer_distance',
[
'label' => esc_html__( 'Pointer Distance', 'wpr-addons' ),
'type' => Controls_Manager::SLIDER,
'devices' => [ self::RESPONSIVE_DESKTOP, self::RESPONSIVE_TABLET ],
'default' => [
'size' => 13,
],
'range' => [
'px' => [
'min' => 0,
'max' => 25,
],
],
'selectors' => [
'{{WRAPPER}}:not(.wpr-pointer-border-fx) .wpr-menu-item.wpr-pointer-item:before' => 'transform: translateY(-{{SIZE}}{{UNIT}});',
'{{WRAPPER}}:not(.wpr-pointer-border-fx) .wpr-menu-item.wpr-pointer-item:after' => 'transform: translateY({{SIZE}}{{UNIT}});',
],
'condition' => [
'menu_items_pointer!' => 'background',
],
]
);
$this->add_responsive_control(
'menu_items_padding_hr',
[
'label' => esc_html__( 'Inner Horizontal Spacing', 'wpr-addons' ),
'type' => Controls_Manager::SLIDER,
'default' => [
'size' => 0,
],
'range' => [
'px' => [
'min' => 0,
'max' => 50,
],
],
'selectors' => [
'{{WRAPPER}} .wpr-nav-menu .wpr-menu-item' => 'padding-left: {{SIZE}}px; padding-right: {{SIZE}}px;',
],
'separator' => 'before'
]
);
$this->add_responsive_control(
'menu_items_padding_bg_hr',
[
'label' => esc_html__( 'Outer Horizontal Spacing', 'wpr-addons' ),
'type' => Controls_Manager::SLIDER,
'default' => [
'size' => 10,
],
'range' => [
'px' => [
'min' => 0,
'max' => 50,
],
],
'selectors' => [
'{{WRAPPER}} .wpr-nav-menu > .menu-item' => 'margin-left: {{SIZE}}{{UNIT}}; margin-right: {{SIZE}}{{UNIT}};',
'{{WRAPPER}} .wpr-nav-menu-vertical .wpr-nav-menu > li > .wpr-sub-menu' => 'margin-left: {{SIZE}}{{UNIT}};',
'{{WRAPPER}} .wpr-nav-menu-vertical .wpr-nav-menu > li > .wpr-sub-mega-menu' => 'margin-left: {{SIZE}}{{UNIT}};',
'{{WRAPPER}}.wpr-main-menu-align-left .wpr-nav-menu-vertical .wpr-nav-menu > li > .wpr-sub-icon' => 'right: {{SIZE}}{{UNIT}};',
'{{WRAPPER}}.wpr-main-menu-align-right .wpr-nav-menu-vertical .wpr-nav-menu > li > .wpr-sub-icon' => 'left: {{SIZE}}{{UNIT}};',
],
'condition' => [
'menu_layout!' => 'vertical',
],
]
);
$this->add_responsive_control(
'menu_items_padding_vr',
[
'label' => esc_html__( 'Vertical Spacing', 'wpr-addons' ),
'type' => Controls_Manager::SLIDER,
'default' => [
'size' => 15,
],
'range' => [
'px' => [
'min' => 0,
'max' => 50,
],
],
'selectors' => [
'{{WRAPPER}} .wpr-nav-menu .wpr-menu-item' => 'padding-top: {{SIZE}}{{UNIT}}; padding-bottom: {{SIZE}}{{UNIT}};',
]
]
);
$this->add_responsive_control( // Only Vertical Menu
'menu_items_sub_offset',
[
'label' => esc_html__( 'Sub Menu Offset', 'wpr-addons' ),
'type' => Controls_Manager::SLIDER,
'default' => [
'size' => 15,
],
'range' => [
'px' => [
'min' => 0,
'max' => 50,
],
],
'selectors' => [
'{{WRAPPER}} .wpr-nav-menu-horizontal .wpr-nav-menu .wpr-sub-mega-menu' => 'transform: translateY({{SIZE}}{{UNIT}});',
'{{WRAPPER}}.wpr-main-menu-align-center .wpr-nav-menu-horizontal .wpr-mega-menu-pos-default.wpr-mega-menu-width-custom .wpr-sub-mega-menu' => 'transform: translate(-50%, {{SIZE}}{{UNIT}});',
'{{WRAPPER}} .wpr-nav-menu-horizontal .wpr-nav-menu > li > .wpr-sub-menu' => 'transform: translateY({{SIZE}}{{UNIT}});',
'{{WRAPPER}} .wpr-nav-menu-vertical .wpr-nav-menu > li > .wpr-sub-menu' => 'transform: translateX({{SIZE}}{{UNIT}});',
'{{WRAPPER}} .wpr-nav-menu-vertical .wpr-nav-menu > li > .wpr-sub-mega-menu' => 'transform: translateX({{SIZE}}{{UNIT}});',
],
]
);
$this->add_group_control(
Group_Control_Border::get_type(),
[
'name' => 'menu_items_border',
'fields_options' => [
'border' => [
'default' => '',
],
'width' => [
'default' => [
'top' => '1',
'right' => '1',
'bottom' => '1',
'left' => '1',
'isLinked' => true,
],
],
'color' => [
'default' => '#e8e8e8',
],
],
'selector' => '{{WRAPPER}} .wpr-menu-item',
'separator' => 'before'
]
);
$this->end_controls_section(); // End Controls Section
// Section: Menu Item Badge ---------
$this->start_controls_section(
'section_style_menu_item_badge',
[
'label' => esc_html__( 'Menu Item Badge', 'wpr-addons' ),
'tab' => Controls_Manager::TAB_STYLE,
]
);
$this->add_group_control(
Group_Control_Typography::get_type(),
[
'name' => 'menu_items_badge_typography',
'selector' => '{{WRAPPER}} .wpr-nav-menu .wpr-mega-menu-badge'
]
);
$this->add_control(
'menu_items_badge_top_distance',
[
'label' => esc_html__( 'Vertical Distance', 'wpr-addons' ),
'type' => Controls_Manager::SLIDER,
'default' => [
'size' => 5,
],
'range' => [
'px' => [
'min' => 0,
'max' => 25,
],
],
'selectors' => [
'{{WRAPPER}} .wpr-nav-menu .wpr-mega-menu-badge' => 'top: -{{SIZE}}{{UNIT}};',
],
'separator' => 'before',
'condition' => [
'menu_layout' => 'horizontal',
],
]
);
$this->add_control(
'menu_items_badge_right_distance',
[
'label' => esc_html__( 'Horizontal Distance', 'wpr-addons' ),
'type' => Controls_Manager::SLIDER,
'default' => [
'size' => 15,
],
'range' => [
'px' => [
'min' => 0,
'max' => 50,
],
],
'selectors' => [
'{{WRAPPER}} .wpr-nav-menu-horizontal .wpr-mega-menu-badge' => 'right: {{SIZE}}{{UNIT}};',
'{{WRAPPER}} .wpr-nav-menu-vertical .wpr-mega-menu-badge' => 'margin-left: {{SIZE}}{{UNIT}};',
],
]
);
$this->add_control(
'menu_items_badge_padding',
[
'label' => esc_html__( 'Padding', 'wpr-addons' ),
'type' => Controls_Manager::DIMENSIONS,
'size_units' => [ 'px' ],
'default' => [
'top' => '3',
'right' => '5',
'bottom' => '2',
'left' => '5',
'unit' => 'px',
'isLinked' => false
],
'selectors' => [
'{{WRAPPER}} .wpr-nav-menu .wpr-mega-menu-badge' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
],
'separator' => 'before',
]
);
$this->add_control(
'menu_items_badge_radius',
[
'label' => esc_html__( 'Border Radius', 'wpr-addons' ),
'type' => Controls_Manager::DIMENSIONS,
'size_units' => [ 'px', '%' ],
'default' => [
'top' => 0,
'right' => 0,
'bottom' => 0,
'left' => 0,
],
'selectors' => [
'{{WRAPPER}} .wpr-nav-menu .wpr-mega-menu-badge' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
]
]
);
$this->end_controls_section(); // End Controls Section
// Section: Sub Mega Menu ---------
$this->start_controls_section(
'section_style_sub_mega_menu',
[
'label' => esc_html__( 'Sub Mega Menu', 'wpr-addons' ),
'tab' => Controls_Manager::TAB_STYLE,
]
);
$this->add_control(
'sub_mega_menu_color_bg',
[
'label' => esc_html__( 'Background Color', 'wpr-addons' ),
'type' => Controls_Manager::COLOR,
// 'scheme' => [
// 'type' => Color::get_type(),
// 'value' => Color::COLOR_3,
// ],
'default' => '#ffffff',
'selectors' => [
'{{WRAPPER}} .wpr-sub-mega-menu' => 'background-color: {{VALUE}};',
],
]
);
$this->add_group_control(
Group_Control_Box_Shadow::get_type(),
[
'name' => 'sub_mega_menu_box_shadow',
'exclude' => [
'box_shadow_position',
],
'selector' => '{{WRAPPER}} .wpr-sub-mega-menu',
]
);
$this->add_group_control(
Group_Control_Border::get_type(),
[
'name' => 'sub_mega_menu_border',
'fields_options' => [
'border' => [
'default' => 'solid',
],
'width' => [
'default' => [
'top' => '1',
'right' => '1',
'bottom' => '1',
'left' => '1',
'isLinked' => true,
],
],
'color' => [
'default' => '#E8E8E8',
],
],
'selector' => '{{WRAPPER}} .wpr-sub-mega-menu',
'separator' => 'before'
]
);
$this->add_control(
'sub_mega_menu_border_radius',
[
'label' => esc_html__( 'Border Radius', 'wpr-addons' ),
'type' => Controls_Manager::SLIDER,
'size_units' => [ 'px', '%' ],
'selectors' => [
'{{WRAPPER}} .wpr-sub-mega-menu' => 'border-radius: {{SIZE}}{{UNIT}};',
],
]
);
$this->end_controls_section(); // End Controls Section
// Section: WP Sub Menu ---------
$this->start_controls_section(
'section_style_sub_menu',
[
'label' => esc_html__( 'WordPress Sub Menu', 'wpr-addons' ),
'tab' => Controls_Manager::TAB_STYLE,
]
);
$this->start_controls_tabs( 'tabs_sub_menu_style' );
$this->start_controls_tab(
'tab_sub_menu_normal',
[
'label' => esc_html__( 'Normal', 'wpr-addons' ),
]
);
$this->add_control(
'sub_menu_color',
[
'label' => esc_html__( 'Text Color', 'wpr-addons' ),
'type' => Controls_Manager::COLOR,
// 'scheme' => [
// 'type' => Color::get_type(),
// 'value' => Color::COLOR_3,
// ],
'default' => '#333333',
'selectors' => [
'{{WRAPPER}} .wpr-sub-menu .wpr-sub-menu-item,
{{WRAPPER}} .wpr-sub-menu > .menu-item-has-children .wpr-sub-icon' => 'color: {{VALUE}};',
],
]
);
$this->add_control(
'sub_menu_color_bg',
[
'label' => esc_html__( 'Background Color', 'wpr-addons' ),
'type' => Controls_Manager::COLOR,
// 'scheme' => [
// 'type' => Color::get_type(),
// 'value' => Color::COLOR_3,
// ],
'default' => '#ffffff',
'selectors' => [
'{{WRAPPER}} .wpr-sub-menu .wpr-sub-menu-item' => 'background-color: {{VALUE}};',
],
'separator' => 'after'
]
);
$this->end_controls_tab();
$this->start_controls_tab(
'tab_sub_menu_hover',
[
'label' => esc_html__( 'Hover', 'wpr-addons' ),
]
);
$this->add_control(
'sub_menu_color_hover',
[
'label' => esc_html__( 'Text Color', 'wpr-addons' ),
'type' => Controls_Manager::COLOR,
// 'scheme' => [
// 'type' => Color::get_type(),
// 'value' => Color::COLOR_4,
// ],
'default' => '#ffffff',
'selectors' => [
'{{WRAPPER}} .wpr-sub-menu .wpr-sub-menu-item:hover,
{{WRAPPER}} .wpr-sub-menu > .menu-item-has-children .wpr-sub-menu-item:hover .wpr-sub-icon,
{{WRAPPER}} .wpr-sub-menu .wpr-sub-menu-item.wpr-active-menu-item,
{{WRAPPER}} .wpr-sub-menu .wpr-sub-menu-item.wpr-active-menu-item .wpr-sub-icon,
{{WRAPPER}} .wpr-sub-menu > .menu-item-has-children.current_page_item .wpr-sub-icon' => 'color: {{VALUE}};',
],
]
);
$this->add_control(
'sub_menu_color_bg_hover',
[
'label' => esc_html__( 'Background Color', 'wpr-addons' ),
'type' => Controls_Manager::COLOR,
// 'scheme' => [
// 'type' => Color::get_type(),
// 'value' => Color::COLOR_4,
// ],
'default' => '#605BE5',
'selectors' => [
'{{WRAPPER}} .wpr-sub-menu .wpr-sub-menu-item:hover,
{{WRAPPER}} .wpr-sub-menu .wpr-sub-menu-item.wpr-active-menu-item' => 'background-color: {{VALUE}};',
],
'separator' => 'after'
]
);
$this->end_controls_tab();
$this->end_controls_tabs();
$this->add_group_control(
Group_Control_Typography::get_type(),
[
'name' => 'sub_menu_typography',
'selector' => '{{WRAPPER}} .wpr-sub-menu .wpr-sub-menu-item'
]
);
$this->add_control_sub_menu_width();
$this->add_responsive_control(
'sub_menu_padding_hr',
[
'label' => esc_html__( 'Horizontal Padding', 'wpr-addons' ),
'type' => Controls_Manager::SLIDER,
'default' => [
'size' => 15,
],
'range' => [
'px' => [
'min' => 0,
'max' => 50,
],
],
'selectors' => [
'{{WRAPPER}} .wpr-sub-menu .wpr-sub-menu-item' => 'padding-left: {{SIZE}}{{UNIT}}; padding-right: {{SIZE}}{{UNIT}};',
'{{WRAPPER}} .wpr-sub-menu .wpr-sub-icon' => 'right: {{SIZE}}{{UNIT}};',
'{{WRAPPER}}.wpr-main-menu-align-right .wpr-nav-menu-vertical .wpr-sub-menu .wpr-sub-icon' => 'left: {{SIZE}}{{UNIT}};',
]
]
);
$this->add_responsive_control(
'sub_menu_padding_vr',
[
'label' => esc_html__( 'Vertical Padding', 'wpr-addons' ),
'type' => Controls_Manager::SLIDER,
'default' => [
'size' => 13,
],
'range' => [
'px' => [
'min' => 0,
'max' => 50,
],
],
'selectors' => [
'{{WRAPPER}} .wpr-sub-menu .wpr-sub-menu-item' => 'padding-top: {{SIZE}}{{UNIT}}; padding-bottom: {{SIZE}}{{UNIT}};',
],
]
);
$this->add_control(
'sub_menu_divider',
[
'label' => esc_html__( 'Item Divider', 'wpr-addons' ),
'type' => Controls_Manager::SWITCHER,
'prefix_class' => 'wpr-sub-divider-',
'default' => 'yes',
'return_value' => 'yes',
'separator' => 'before',
]
);
$this->add_control(
'sub_menu_divider_color',
[
'label' => esc_html__( 'Divider Color', 'wpr-addons' ),
'type' => Controls_Manager::COLOR,
// 'scheme' => [
// 'type' => Color::get_type(),
// 'value' => Color::COLOR_4,
// ],
'default' => '#e8e8e8',
'selectors' => [
'{{WRAPPER}}.wpr-sub-divider-yes .wpr-sub-menu li:not(:last-child)' => 'border-bottom-color: {{VALUE}};',
],
'condition' => [
'sub_menu_divider' => 'yes',
],
]
);
$this->add_control(
'sub_menu_divider_height',
[
'label' => esc_html__( 'Divider Height', 'wpr-addons' ),
'type' => Controls_Manager::SLIDER,
'range' => [
'px' => [
'min' => 1,
'max' => 10,
],
],
'default' => [
'size' => 1,
],
'selectors' => [
'{{WRAPPER}}.wpr-sub-divider-yes .wpr-sub-menu li:not(:last-child)' => 'border-bottom-width: {{SIZE}}{{UNIT}};',
],
'condition' => [
'sub_menu_divider' => 'yes',
],
]
);
$this->add_control(
'sub_menu_divider_ctrl',
[
'type' => Controls_Manager::DIVIDER,
'style' => 'thick',
]
);
$this->add_group_control(
Group_Control_Border::get_type(),
[
'name' => 'sub_menu_border',
'fields_options' => [
'border' => [
'default' => 'solid',
],
'width' => [
'default' => [
'top' => '1',
'right' => '1',
'bottom' => '1',
'left' => '1',
'isLinked' => true,
],
],
'color' => [
'default' => '#E8E8E8',
],
],
'selector' => '{{WRAPPER}} .wpr-sub-menu',
]
);
$this->add_group_control(
Group_Control_Box_Shadow::get_type(),
[
'name' => 'sub_menu_box_shadow',
'exclude' => [
'box_shadow_position',
],
'selector' => '{{WRAPPER}} .wpr-sub-menu',
]
);
$this->end_controls_section(); // End Controls Section
// Section: Toggle Button ----
$this->start_controls_section(
'section_style_toggle_button',
[
'label' => esc_html__( 'Toggle Button', 'wpr-addons' ),
'tab' => Controls_Manager::TAB_STYLE,
'condition' => [
'mob_menu_show_on!' => 'none',
],
]
);
$this->start_controls_tabs( 'tabs_toggle_style' );
$this->start_controls_tab(
'tab_toggle_btn_style_normal',
[
'label' => esc_html__( 'Normal', 'wpr-addons' ),
]
);
$this->add_control(
'toggle_btn_color',
[
'label' => esc_html__( 'Color', 'wpr-addons' ),
'type' => Controls_Manager::COLOR,
'default' => '#333333',
'selectors' => [
'{{WRAPPER}} .wpr-mobile-toggle' => 'border-color: {{VALUE}};',
'{{WRAPPER}} .wpr-mobile-toggle-text' => 'color: {{VALUE}};',
'{{WRAPPER}} .wpr-mobile-toggle-line' => 'background-color: {{VALUE}};',
],
]
);
$this->add_control(
'toggle_btn_bg_color',
[
'label' => esc_html__( 'Background Color', 'wpr-addons' ),
'type' => Controls_Manager::COLOR,
'default' => '',
'selectors' => [
'{{WRAPPER}} .wpr-mobile-toggle' => 'background-color: {{VALUE}};',
],
]
);
$this->end_controls_tab();
$this->start_controls_tab(
'tab_toggle_btn_style_hover',
[
'label' => esc_html__( 'Hover', 'wpr-addons' ),
]
);
$this->add_control(
'toggle_btn_color_hover',
[
'label' => esc_html__( 'Color', 'wpr-addons' ),
'type' => Controls_Manager::COLOR,
'default' => '#605BE5',
'selectors' => [
'{{WRAPPER}} .wpr-mobile-toggle:hover' => 'border-color: {{VALUE}};',
'{{WRAPPER}} .wpr-mobile-toggle:hover .wpr-mobile-toggle-text' => 'color: {{VALUE}};',
'{{WRAPPER}} .wpr-mobile-toggle:hover .wpr-mobile-toggle-line' => 'background-color: {{VALUE}};',
],
]
);
$this->add_control(
'toggle_btn_bg_color_hover',
[
'label' => esc_html__( 'Background Color', 'wpr-addons' ),
'type' => Controls_Manager::COLOR,
'default' => '',
'selectors' => [
'{{WRAPPER}} .wpr-mobile-toggle:hover' => 'background-color: {{VALUE}};',
],
]
);
$this->end_controls_tab();
$this->end_controls_tabs();
$this->add_control(
'toggle_btn_lines_height',
[
'label' => esc_html__( 'Lines Height', 'wpr-addons' ),
'type' => Controls_Manager::SLIDER,
'range' => [
'px' => [
'min' => 1,
'max' => 10,
],
],
'default' => [
'size' => 4,
],
'selectors' => [
'{{WRAPPER}} .wpr-mobile-toggle-line' => 'height: {{SIZE}}{{UNIT}};',
],
'separator' => 'before',
'condition' => [
'toggle_btn_style' => ['hamburger', 'pro-tx'],
],
]
);
$this->add_control(
'toggle_btn_line_space',
[
'label' => esc_html__( 'Space Between Lines', 'wpr-addons' ),
'type' => Controls_Manager::SLIDER,
'range' => [
'px' => [
'min' => 1,
'max' => 20,
],
],
'default' => [
'size' => 6,
],
'selectors' => [
'{{WRAPPER}} .wpr-mobile-toggle-line' => 'margin-bottom: {{SIZE}}{{UNIT}};',
],
'condition' => [
'toggle_btn_style' => ['hamburger', 'pro-tx'],
],
]
);
$this->add_control(
'toggle_btn_width',
[
'label' => esc_html__( 'Button Width', 'wpr-addons' ),
'type' => Controls_Manager::SLIDER,
'range' => [
'px' => [
'min' => 20,
'max' => 150,
],
],
'default' => [
'size' => 50,
],
'selectors' => [
'{{WRAPPER}} .wpr-mobile-toggle' => 'width: {{SIZE}}{{UNIT}};',
],
'separator' => 'before',
]
);
$this->add_control(
'toggle_btn_padding',
[
'label' => esc_html__( 'Button Padding', 'wpr-addons' ),
'type' => Controls_Manager::DIMENSIONS,
'selectors' => [
'{{WRAPPER}} .wpr-mobile-toggle' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
],
]
);
$this->add_control(
'toggle_btn_border_width',
[
'label' => esc_html__( 'Button Border Width', 'wpr-addons' ),
'type' => Controls_Manager::SLIDER,
'range' => [
'px' => [
'min' => 0,
'max' => 10,
],
],
'default' => [
'size' => 0,
],
'selectors' => [
'{{WRAPPER}} .wpr-mobile-toggle' => 'border-width: {{SIZE}}{{UNIT}};',
]
]
);
$this->add_control(
'toggle_btn_border_radius',
[
'label' => esc_html__( 'Button Border Radius', 'wpr-addons' ),
'type' => Controls_Manager::SLIDER,
'size_units' => [ 'px', '%' ],
'selectors' => [
'{{WRAPPER}} .wpr-mobile-toggle' => 'border-radius: {{SIZE}}{{UNIT}};',
],
]
);
$this->end_controls_section(); // End Controls Section
// Section: Mobile Menu Off-Canvas -------
$this->start_controls_section(
'section_style_mobile_menu_offcanvas',
[
'label' => esc_html__( 'Mobile Menu Off-Canvas', 'wpr-addons' ),
'tab' => Controls_Manager::TAB_STYLE,
'condition' => [
'mob_menu_display_as' => 'offcanvas',
],
]
);
$this->add_control(
'mobile_menu_general_heading',
[
'label' => esc_html__('General', 'wpr-addons'),
'type' => Controls_Manager::HEADING,
]
);
$this->add_control(
'mobile_menu_general_color_bg',
[
'label' => esc_html__( 'Background Color', 'wpr-addons' ),
'type' => Controls_Manager::COLOR,
'default' => '#ffffff',
'selectors' => [
'{{WRAPPER}} .wpr-mobile-mega-menu-wrap' => 'background-color: {{VALUE}}',
],
]
);
$this->add_control(
'mobile_menu_general_overlay_color_bg',
[
'label' => esc_html__( 'Overlay Color', 'wpr-addons' ),
'type' => Controls_Manager::COLOR,
'default' => '#0000007A',
'selectors' => [
'{{WRAPPER}} .wpr-mobile-mega-menu-overlay' => 'background-color: {{VALUE}}',
],
]
);
$this->add_group_control(
Group_Control_Box_Shadow::get_type(),
[
'name' => 'mobile_menu_general_box_shadow',
'selector' => '{{WRAPPER}} .wpr-mobile-mega-menu-wrap',
'fields_options' => [
'box_shadow_type' =>
[
'default' =>'yes'
],
'box_shadow' => [
'default' =>
[
'horizontal' => 0,
'vertical' => 0,
'blur' => 5,
'spread' => 0,
'color' => 'rgba(0,0,0,0.3)'
]
]
]
]
);
$this->add_responsive_control(
'mobile_menu_general_padding',
[
'label' => esc_html__( 'Padding', 'wpr-addons' ),
'type' => Controls_Manager::DIMENSIONS,
'size_units' => [ 'px' ],
'default' => [
'top' => 0,
'right' => 0,
'bottom' => 0,
'left' => 0,
],
'selectors' => [
'{{WRAPPER}} .wpr-mobile-mega-menu-wrap' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
'{{WRAPPER}}.wpr-mobile-menu-display-offcanvas .wpr-mobile-sub-mega-menu' => 'margin-left: {{LEFT}}{{UNIT}};',
'{{WRAPPER}}.wpr-mobile-menu-display-offcanvas .wpr-mobile-mega-menu > li > .wpr-mobile-sub-menu' => 'margin-left: {{LEFT}}{{UNIT}};',
],
]
);
$this->add_control(
'mobile_menu_logo_heading',
[
'label' => esc_html__('Logo', 'wpr-addons'),
'type' => Controls_Manager::HEADING,
'separator' => 'before',
]
);
$this->add_responsive_control(
'mobile_menu_logo_width',
[
'label' => esc_html__( 'Width', 'wpr-addons' ),
'type' => Controls_Manager::SLIDER,
'size_units' => ['px'],
'range' => [
'px' => [
'min' => 50,
'max' => 150,
],
],
'default' => [
'size' => 100,
],
'selectors' => [
'{{WRAPPER}} .mobile-mega-menu-logo' => 'width: {{SIZE}}{{UNIT}};',
],
]
);
$this->add_control(
'mobile_menu_close_heading',
[
'label' => esc_html__('Close Button', 'wpr-addons'),
'type' => Controls_Manager::HEADING,
'separator' => 'before',
]
);
$this->add_control(
'mobile_menu_close_color',
[
'label' => esc_html__( 'Color', 'wpr-addons' ),
'type' => Controls_Manager::COLOR,
'default' => '#777777',
'selectors' => [
'{{WRAPPER}} .mobile-mega-menu-close' => 'color: {{VALUE}}',
],
]
);
$this->add_responsive_control(
'mobile_menu_close_size',
[
'label' => esc_html__( 'Size', 'wpr-addons' ),
'type' => Controls_Manager::SLIDER,
'size_units' => ['px'],
'range' => [
'px' => [
'min' => 10,
'max' => 25,
],
],
'default' => [
'size' => 18,
],
'selectors' => [
'{{WRAPPER}} .mobile-mega-menu-close' => 'font-size: {{SIZE}}{{UNIT}};',
],
]
);
$this->add_control(
'mobile_menu_header_heading',
[
'label' => esc_html__('Logo & Close Button Wrapper', 'wpr-addons'),
'type' => Controls_Manager::HEADING,
'separator' => 'before',
]
);
$this->add_responsive_control(
'mobile_menu_header_padding',
[
'label' => esc_html__( 'Padding', 'wpr-addons' ),
'type' => Controls_Manager::DIMENSIONS,
'size_units' => [ 'px' ],
'default' => [
'top' => 10,
'right' => 10,
'bottom' => 10,
'left' => 10,
],
'selectors' => [
'{{WRAPPER}} .mobile-mega-menu-header' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
],
]
);
$this->add_responsive_control(
'mobile_menu_header_distance',
[
'label' => esc_html__( 'Bottom Distance', 'wpr-addons' ),
'type' => Controls_Manager::SLIDER,
'size_units' => ['px'],
'range' => [
'px' => [
'min' => 0,
'max' => 100,
],
],
'default' => [
'size' => 20,
],
'selectors' => [
'{{WRAPPER}} .mobile-mega-menu-header' => 'margin-bottom: {{SIZE}}{{UNIT}};',
],
]
);
$this->add_control(
'mobile_menu_back_heading',
[
'label' => esc_html__('Back to Menu Arrow & Title', 'wpr-addons'),
'type' => Controls_Manager::HEADING,
'separator' => 'before',
]
);
$this->add_control(
'menu_items_sub_back_icon_color',
[
'label' => esc_html__( 'Arrow Color', 'wpr-addons' ),
'type' => Controls_Manager::COLOR,
'default' => '#333333',
'selectors' => [
'{{WRAPPER}} .menu-item-has-children .wpr-menu-offcanvas-back svg' => 'fill: {{VALUE}}',
],
]
);
$this->add_control(
'menu_items_sub_back_icon_size',
[
'label' => esc_html__( 'Arrow Size', 'wpr-addons' ),
'type' => Controls_Manager::SLIDER,
'default' => [
'size' => 18,
],
'range' => [
'px' => [
'min' => 5,
'max' => 50,
],
],
'selectors' => [
'{{WRAPPER}} .menu-item-has-children .wpr-menu-offcanvas-back svg' => 'width: {{SIZE}}{{UNIT}};',
],
]
);
$this->add_control(
'menu_items_sub_back_heading_color',
[
'label' => esc_html__( 'Heading Color', 'wpr-addons' ),
'type' => Controls_Manager::COLOR,
'default' => '#333333',
'selectors' => [
'{{WRAPPER}} .menu-item-has-children .wpr-menu-offcanvas-back h3' => 'color: {{VALUE}}',
],
]
);
$this->add_control(
'menu_items_sub_back_heading_size',
[
'label' => esc_html__( 'Heading Size', 'wpr-addons' ),
'type' => Controls_Manager::SLIDER,
'default' => [
'size' => 18,
],
'range' => [
'px' => [
'min' => 5,
'max' => 50,
],
],
'selectors' => [
'{{WRAPPER}} .menu-item-has-children .wpr-menu-offcanvas-back h3' => 'font-size: {{SIZE}}{{UNIT}};',
],
]
);
$this->end_controls_section(); // End Controls Section
// Section: Mobile Menu -------
$this->start_controls_section(
'section_style_mobile_menu',
[
'label' => esc_html__( 'Mobile Menu Items', 'wpr-addons' ),
'tab' => Controls_Manager::TAB_STYLE,
]
);
$this->start_controls_tabs( 'tabs_mobile_menu_style' );
$this->start_controls_tab(
'tab_mobile_menu_normal',
[
'label' => esc_html__( 'Normal', 'wpr-addons' ),
]
);
$this->add_control(
'mobile_menu_color',
[
'label' => esc_html__( 'Text Color', 'wpr-addons' ),
'type' => Controls_Manager::COLOR,
// 'scheme' => [
// 'type' => Color::get_type(),
// 'value' => Color::COLOR_3,
// ],
'default' => '#333333',
'selectors' => [
'{{WRAPPER}} .wpr-mobile-menu-item,
{{WRAPPER}} .wpr-mobile-sub-menu-item,
{{WRAPPER}} .menu-item-has-children > .wpr-mobile-menu-item:after' => 'color: {{VALUE}};',
],
]
);
$this->add_control(
'mobile_menu_bg_color',
[
'label' => esc_html__( 'Background Color', 'wpr-addons' ),
'type' => Controls_Manager::COLOR,
// 'scheme' => [
// 'type' => Color::get_type(),
// 'value' => Color::COLOR_3,
// ],
'default' => '#ffffff',
'selectors' => [
'{{WRAPPER}} .wpr-mobile-nav-menu > li,
{{WRAPPER}} .wpr-mobile-sub-menu li' => 'background-color: {{VALUE}};',
],
]
);
$this->end_controls_tab();
$this->start_controls_tab(
'tab_mobile_menu_focus',
[
'label' => esc_html__( 'Focus', 'wpr-addons' ),
]
);
$this->add_control(
'mobile_menu_color_focus',
[
'label' => esc_html__( 'Text Color', 'wpr-addons' ),
'type' => Controls_Manager::COLOR,
// 'scheme' => [
// 'type' => Color::get_type(),
// 'value' => Color::COLOR_4,
// ],
'default' => '#ffffff',
'selectors' => [
'{{WRAPPER}} .wpr-mobile-nav-menu li a:hover,
{{WRAPPER}} .wpr-mobile-nav-menu .menu-item-has-children > a:hover:after,
{{WRAPPER}} .wpr-mobile-nav-menu li a.wpr-active-menu-item,
{{WRAPPER}} .wpr-mobile-nav-menu .menu-item-has-children.current_page_item > a:hover:after' => 'color: {{VALUE}};',
],
]
);
$this->add_control(
'mobile_menu_bg_color_focus',
[
'label' => esc_html__( 'Background Color', 'wpr-addons' ),
'type' => Controls_Manager::COLOR,
// 'scheme' => [
// 'type' => Color::get_type(),
// 'value' => Color::COLOR_3,
// ],
'default' => '#605BE5',
'selectors' => [
'{{WRAPPER}} .wpr-mobile-menu-item:hover,
{{WRAPPER}} .wpr-mobile-sub-menu-item:hover,
{{WRAPPER}} .wpr-mobile-sub-menu-item.wpr-active-menu-item,
{{WRAPPER}} .wpr-mobile-menu-item.wpr-active-menu-item' => 'background-color: {{VALUE}};',
],
]
);
$this->end_controls_tab();
$this->end_controls_tabs();
$this->add_control(
'mobile_menu_highlight',
[
'label' => esc_html__( 'Highlight Active Item', 'wpr-addons' ),
'type' => Controls_Manager::SWITCHER,
'default' => 'yes',
'return_value' => 'yes'
]
);
$this->add_control(
'mobile_menu_padding_hr',
[
'label' => esc_html__( 'Item Horizontal Spacing', 'wpr-addons' ),
'type' => Controls_Manager::SLIDER,
'default' => [
'size' => 10,
],
'range' => [
'px' => [
'min' => 0,
'max' => 50,
],
],
'selectors' => [
'{{WRAPPER}} .wpr-mobile-menu-item' => 'padding-left: {{SIZE}}{{UNIT}}; padding-right: {{SIZE}}{{UNIT}};',
'{{WRAPPER}} .wpr-mobile-mega-menu > li > a > .wpr-mobile-sub-icon' => 'padding: {{SIZE}}{{UNIT}};',
],
'separator' => 'before',
]
);
$this->add_control(
'mobile_menu_padding_vr',
[
'label' => esc_html__( 'Item Vertical Spacing', 'wpr-addons' ),
'type' => Controls_Manager::SLIDER,
'default' => [
'size' => 10,
],
'range' => [
'px' => [
'min' => 0,
'max' => 50,
],
],
'selectors' => [
'{{WRAPPER}} .wpr-mobile-nav-menu .wpr-mobile-menu-item' => 'padding-top: {{SIZE}}{{UNIT}}; padding-bottom: {{SIZE}}{{UNIT}};',
]
]
);
$this->add_control(
'mobile_menu_divider',
[
'label' => esc_html__( 'Item Divider', 'wpr-addons' ),
'type' => Controls_Manager::SWITCHER,
'prefix_class' => 'wpr-mobile-divider-',
'default' => 'yes',
'return_value' => 'yes',
'separator' => 'before',
]
);
$this->add_control(
'mobile_menu_divider_color',
[
'label' => esc_html__( 'Divider Color', 'wpr-addons' ),
'type' => Controls_Manager::COLOR,
'default' => '#e8e8e8',
'selectors' => [
'{{WRAPPER}}.wpr-mobile-divider-yes .wpr-mobile-menu-item' => 'border-bottom-color: {{VALUE}};',
],
'condition' => [
'mobile_menu_divider' => 'yes',
],
]
);
$this->add_control(
'mobile_menu_divider_height',
[
'label' => esc_html__( 'Divider Height', 'wpr-addons' ),
'type' => Controls_Manager::SLIDER,
'range' => [
'px' => [
'min' => 1,
'max' => 10,
],
],
'default' => [
'size' => 1,
],
'selectors' => [
'{{WRAPPER}}.wpr-mobile-divider-yes .wpr-mobile-menu-item' => 'border-bottom-width: {{SIZE}}{{UNIT}};',
],
'condition' => [
'mobile_menu_divider' => 'yes',
],
]
);
$this->add_control(
'mobile_menu_sub_icon_size',
[
'label' => esc_html__( 'Sub Menu Icon Size', 'wpr-addons' ),
'type' => Controls_Manager::SLIDER,
'range' => [
'px' => [
'min' => 5,
'max' => 25,
],
],
'default' => [
'size' => 14,
],
'selectors' => [
'{{WRAPPER}} .wpr-mobile-mega-menu .wpr-mobile-sub-icon' => 'font-size: {{SIZE}}{{UNIT}};',
],
'separator' => 'before',
]
);
$this->add_control(
'mobile_menu_sub_font_size',
[
'label' => esc_html__( 'Sub Item Font Size', 'wpr-addons' ),
'type' => Controls_Manager::SLIDER,
'range' => [
'px' => [
'min' => 1,
'max' => 30,
],
],
'default' => [
'size' => 12,
],
'selectors' => [
'{{WRAPPER}} .wpr-mobile-nav-menu .wpr-mobile-sub-menu-item' => 'font-size: {{SIZE}}{{UNIT}};',
],
]
);
$this->add_control(
'mobile_menu_sub_padding_hr',
[
'label' => esc_html__( 'Sub Item Horizontal Spacing', 'wpr-addons' ),
'type' => Controls_Manager::SLIDER,
'range' => [
'px' => [
'min' => 0,
'max' => 50,
],
],
'default' => [
'size' => 10,
],
'selectors' => [
'{{WRAPPER}} .wpr-mobile-nav-menu .wpr-mobile-sub-menu-item' => 'padding-left: {{SIZE}}{{UNIT}}; padding-right: {{SIZE}}{{UNIT}};',
'{{WRAPPER}} .wpr-menu-offcanvas-back' => 'padding-left:{{SIZE}}{{UNIT}}; padding-right:{{SIZE}}{{UNIT}};',
],
]
);
$this->add_control(
'mobile_menu_sub_padding_vr',
[
'label' => esc_html__( 'Sub Item Vertical Spacing', 'wpr-addons' ),
'type' => Controls_Manager::SLIDER,
'range' => [
'px' => [
'min' => 0,
'max' => 30,
],
],
'default' => [
'size' => 5,
],
'selectors' => [
'{{WRAPPER}} .wpr-mobile-nav-menu .wpr-mobile-sub-menu-item' => 'padding-top: {{SIZE}}{{UNIT}}; padding-bottom: {{SIZE}}{{UNIT}};',
]
]
);
$this->add_responsive_control(
'mobile_menu_offset',
[
'label' => esc_html__( 'Dropdown Offset', 'wpr-addons' ),
'type' => Controls_Manager::SLIDER,
'px' => [
'min' => 1,
'min' => 50,
],
'default' => [
'size' => 10,
],
'selectors' => [
'{{WRAPPER}}.wpr-mobile-menu-display-dropdown .wpr-mobile-nav-menu' => 'margin-top: {{SIZE}}{{UNIT}};',
],
'separator' => 'before',
'condition' => [
'mob_menu_display_as' => 'dropdown',
],
]
);
$this->end_controls_section(); // End Controls Section
}
public function load_walkers() {
require_once WPR_ADDONS_PATH . 'modules/mega-menu/walkers/class-wpr-main-menu-walker.php';
require_once WPR_ADDONS_PATH . 'modules/mega-menu/walkers/class-wpr-mobile-menu-walker.php';
}
protected function render() {
$available_menus = $this->get_available_menus();
if ( ! $available_menus ) {
return;
}
// Custom Menu
$this->load_walkers();
// Get Settings
$settings = $this->get_active_settings();
$main_args = [
'echo' => false,
'menu' => $settings['menu_select'],
'menu_class' => 'wpr-nav-menu wpr-mega-menu',
'menu_id' => 'menu-'. $this->get_nav_menu_index() .'-'. $this->get_id(),
'container' => '',
'fallback_cb' => '__return_empty_string',
'walker' => new \Wpr_Main_Menu_Walker(),
];
// Add Custom Filters
add_filter( 'nav_menu_item_id', '__return_empty_string' );
// Generate Menu HTML
$menu_html = wp_nav_menu( $main_args );
$mobile_args = [
'echo' => false,
'menu' => $settings['menu_select'],
'menu_class' => 'wpr-mobile-nav-menu wpr-mobile-mega-menu',
'menu_id' => 'mobile-menu-'. $this->get_nav_menu_index() .'-'. $this->get_id(),
'container' => '',
'fallback_cb' => '__return_empty_string',
'walker' => new \Wpr_Mobile_Menu_Walker(),
];
// Generate Mobile Menu HTML
$moible_menu_html = wp_nav_menu( $mobile_args );
// Remove Custom Filters
remove_filter( 'nav_menu_item_id', '__return_empty_string' );
if ( empty( $menu_html ) ) {
return;
}
if ( ! wpr_fs()->can_use_premium_code() ) {
$settings['menu_layout'] = 'horizontal';
$settings['toggle_btn_style'] = 'hamburger';
}
// Main Menu
echo '';
// Mobile Menu
echo '';
}
}