PER}} .wpr-grid-tax-style-1 .inner-block a' => 'border-style: {{VALUE}};',
],
'render_type' => 'template',
'separator' => 'before',
]
);
$this->add_control(
'tax1_border_width',
[
'label' => esc_html__( 'Border Width', 'wpr-addons' ),
'type' => Controls_Manager::DIMENSIONS,
'size_units' => [ 'px' ],
'default' => [
'top' => 1,
'right' => 1,
'bottom' => 1,
'left' => 1,
],
'selectors' => [
'{{WRAPPER}} .wpr-grid-tax-style-1 .inner-block a' => 'border-width: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
],
'render_type' => 'template',
'condition' => [
'tax1_border_type!' => 'none',
],
]
);
$this->add_control(
'tax1_text_spacing',
[
'label' => esc_html__( 'Extra Text Spacing', 'wpr-addons' ),
'type' => Controls_Manager::SLIDER,
'size_units' => ['px'],
'range' => [
'px' => [
'min' => 0,
'max' => 25,
],
],
'default' => [
'unit' => 'px',
'size' => 5,
],
'selectors' => [
'{{WRAPPER}} .wpr-grid-tax-style-1 .wpr-grid-extra-text-left' => 'padding-right: {{SIZE}}{{UNIT}};',
'{{WRAPPER}} .wpr-grid-tax-style-1 .wpr-grid-extra-text-right' => 'padding-left: {{SIZE}}{{UNIT}};',
],
'render_type' => 'template',
'separator' => 'before',
]
);
$this->add_control(
'tax1_icon_spacing',
[
'label' => esc_html__( 'Extra Icon Spacing', 'wpr-addons' ),
'type' => Controls_Manager::SLIDER,
'size_units' => ['px'],
'range' => [
'px' => [
'min' => 0,
'max' => 25,
],
],
'default' => [
'unit' => 'px',
'size' => 5,
],
'selectors' => [
'{{WRAPPER}} .wpr-grid-tax-style-1 .wpr-grid-extra-icon-left' => 'padding-right: {{SIZE}}{{UNIT}};',
'{{WRAPPER}} .wpr-grid-tax-style-1 .wpr-grid-extra-icon-right' => 'padding-left: {{SIZE}}{{UNIT}};',
],
]
);
$this->add_control(
'tax1_gutter',
[
'label' => esc_html__( 'Gutter', 'wpr-addons' ),
'type' => Controls_Manager::SLIDER,
'size_units' => ['px'],
'range' => [
'px' => [
'min' => 0,
'max' => 20,
],
],
'default' => [
'unit' => 'px',
'size' => 3,
],
'selectors' => [
'{{WRAPPER}} .wpr-grid-tax-style-1 .inner-block a' => 'margin-right: {{SIZE}}{{UNIT}};',
],
'render_type' => 'template',
'separator' => 'before',
]
);
$this->add_responsive_control(
'tax1_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-grid-tax-style-1 .inner-block a' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
],
'render_type' => 'template',
]
);
$this->add_responsive_control(
'tax1_margin',
[
'label' => esc_html__( 'Margin', 'wpr-addons' ),
'type' => Controls_Manager::DIMENSIONS,
'size_units' => [ 'px', '%' ],
'default' => [
'top' => 0,
'right' => 0,
'bottom' => 0,
'left' => 0,
],
'selectors' => [
'{{WRAPPER}} .wpr-grid-tax-style-1 .inner-block' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
],
'render_type' => 'template',
]
);
$this->add_control(
'tax1_radius',
[
'label' => esc_html__( 'Border Radius', 'wpr-addons' ),
'type' => Controls_Manager::DIMENSIONS,
'size_units' => [ 'px', '%' ],
'default' => [
'top' => 2,
'right' => 2,
'bottom' => 2,
'left' => 2,
],
'selectors' => [
'{{WRAPPER}} .wpr-grid-tax-style-1 .inner-block a' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
],
'separator' => 'before',
]
);
$this->end_controls_section();
// Styles ====================
// Section: Taxonomy Style 2 -
$this->start_controls_section(
'section_style_tax2',
[
'label' => esc_html__( 'Taxonomy Style 2', 'wpr-addons' ),
'tab' => Controls_Manager::TAB_STYLE,
'show_label' => false,
]
);
$this->start_controls_tabs( 'tabs_grid_tax2_style' );
$this->start_controls_tab(
'tab_grid_tax2_normal',
[
'label' => esc_html__( 'Normal', 'wpr-addons' ),
]
);
$this->add_control(
'tax2_color',
[
'label' => esc_html__( 'Color', 'wpr-addons' ),
'type' => Controls_Manager::COLOR,
'default' => '#ffffff',
'selectors' => [
'{{WRAPPER}} .wpr-grid-tax-style-2 .inner-block a' => 'color: {{VALUE}}',
],
]
);
$this->add_control(
'tax2_bg_color',
[
'label' => esc_html__( 'Background Color', 'wpr-addons' ),
'type' => Controls_Manager::COLOR,
'default' => '#605BE5',
'selectors' => [
'{{WRAPPER}} .wpr-grid-tax-style-2 .inner-block a' => 'background-color: {{VALUE}}',
]
]
);
$this->add_control(
'tax2_border_color',
[
'label' => esc_html__( 'Border Color', 'wpr-addons' ),
'type' => Controls_Manager::COLOR,
'default' => '#E8E8E8',
'selectors' => [
'{{WRAPPER}} .wpr-grid-tax-style-2 .inner-block a' => 'border-color: {{VALUE}}',
],
'separator' => 'after',
]
);
$this->end_controls_tab();
$this->start_controls_tab(
'tab_grid_tax2_hover',
[
'label' => esc_html__( 'Hover', 'wpr-addons' ),
]
);
$this->add_control(
'tax2_color_hr',
[
'label' => esc_html__( 'Color', 'wpr-addons' ),
'type' => Controls_Manager::COLOR,
'default' => '#ffffff',
'selectors' => [
'{{WRAPPER}} .wpr-grid-tax-style-2 .inner-block a:hover' => 'color: {{VALUE}}',
'{{WRAPPER}} .wpr-grid-tax-style-2 .wpr-pointer-item:before' => 'background-color: {{VALUE}}',
'{{WRAPPER}} .wpr-grid-tax-style-2 .wpr-pointer-item:after' => 'background-color: {{VALUE}}',
],
]
);
$this->add_control(
'tax2_bg_color_hr',
[
'label' => esc_html__( 'Background Color', 'wpr-addons' ),
'type' => Controls_Manager::COLOR,
'default' => '#4A45D2',
'selectors' => [
'{{WRAPPER}} .wpr-grid-tax-style-2 .inner-block a:hover' => 'background-color: {{VALUE}}',
]
]
);
$this->add_control(
'tax2_border_color_hr',
[
'label' => esc_html__( 'Border Color', 'wpr-addons' ),
'type' => Controls_Manager::COLOR,
'default' => '#E8E8E8',
'selectors' => [
'{{WRAPPER}} .wpr-grid-tax-style-2 .inner-block a:hover' => 'border-color: {{VALUE}}',
],
]
);
$this->add_control_tax2_pointer_color_hr();
$this->end_controls_tab();
$this->end_controls_tabs();
$this->add_control_tax2_pointer();
$this->add_control_tax2_pointer_height();
$this->add_control_tax2_pointer_animation();
$this->add_control(
'tax2_transition_duration',
[
'label' => esc_html__( 'Transition Duration', 'wpr-addons' ),
'type' => Controls_Manager::NUMBER,
'default' => 0.1,
'min' => 0,
'max' => 5,
'step' => 0.1,
'selectors' => [
'{{WRAPPER}} .wpr-grid-tax-style-2 .inner-block a' => 'transition-duration: {{VALUE}}s',
'{{WRAPPER}} .wpr-grid-tax-style-2 .wpr-pointer-item:before' => 'transition-duration: {{VALUE}}s',
'{{WRAPPER}} .wpr-grid-tax-style-2 .wpr-pointer-item:after' => 'transition-duration: {{VALUE}}s',
],
'separator' => 'after',
]
);
$this->add_group_control(
Group_Control_Typography::get_type(),
[
'name' => 'tax2_typography',
'selector' => '{{WRAPPER}} .wpr-grid-tax-style-2'
]
);
$this->add_control(
'tax2_border_type',
[
'label' => esc_html__( 'Border Type', 'wpr-addons' ),
'type' => Controls_Manager::SELECT,
'options' => [
'none' => esc_html__( 'None', 'wpr-addons' ),
'solid' => esc_html__( 'Solid', 'wpr-addons' ),
'double' => esc_html__( 'Double', 'wpr-addons' ),
'dotted' => esc_html__( 'Dotted', 'wpr-addons' ),
'dashed' => esc_html__( 'Dashed', 'wpr-addons' ),
'groove' => esc_html__( 'Groove', 'wpr-addons' ),
],
'default' => 'none',
'selectors' => [
'{{WRAPPER}} .wpr-grid-tax-style-2 .inner-block a' => 'border-style: {{VALUE}};',
],
'render_type' => 'template',
'separator' => 'before',
]
);
$this->add_control(
'tax2_border_width',
[
'label' => esc_html__( 'Border Width', 'wpr-addons' ),
'type' => Controls_Manager::DIMENSIONS,
'size_units' => [ 'px' ],
'default' => [
'top' => 1,
'right' => 1,
'bottom' => 1,
'left' => 1,
],
'selectors' => [
'{{WRAPPER}} .wpr-grid-tax-style-2 .inner-block a' => 'border-width: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
],
'render_type' => 'template',
'condition' => [
'tax2_border_type!' => 'none',
],
]
);
$this->add_control(
'tax2_text_spacing',
[
'label' => esc_html__( 'Extra Text Spacing', 'wpr-addons' ),
'type' => Controls_Manager::SLIDER,
'size_units' => ['px'],
'range' => [
'px' => [
'min' => 0,
'max' => 25,
],
],
'default' => [
'unit' => 'px',
'size' => 5,
],
'selectors' => [
'{{WRAPPER}} .wpr-grid-tax-style-2 .wpr-grid-extra-text-left' => 'padding-right: {{SIZE}}{{UNIT}};',
'{{WRAPPER}} .wpr-grid-tax-style-2 .wpr-grid-extra-text-right' => 'padding-left: {{SIZE}}{{UNIT}};',
],
'separator' => 'before',
]
);
$this->add_control(
'tax2_icon_spacing',
[
'label' => esc_html__( 'Extra Icon Spacing', 'wpr-addons' ),
'type' => Controls_Manager::SLIDER,
'size_units' => ['px'],
'range' => [
'px' => [
'min' => 0,
'max' => 25,
],
],
'default' => [
'unit' => 'px',
'size' => 5,
],
'selectors' => [
'{{WRAPPER}} .wpr-grid-tax-style-2 .wpr-grid-extra-icon-left' => 'padding-right: {{SIZE}}{{UNIT}};',
'{{WRAPPER}} .wpr-grid-tax-style-2 .wpr-grid-extra-icon-right' => 'padding-left: {{SIZE}}{{UNIT}};',
],
]
);
$this->add_control(
'tax2_gutter',
[
'label' => esc_html__( 'Gutter', 'wpr-addons' ),
'type' => Controls_Manager::SLIDER,
'size_units' => ['px'],
'range' => [
'px' => [
'min' => 0,
'max' => 20,
],
],
'default' => [
'unit' => 'px',
'size' => 3,
],
'selectors' => [
'{{WRAPPER}} .wpr-grid-tax-style-2 .inner-block a' => 'margin-right: {{SIZE}}{{UNIT}};',
],
'render_type' => 'template',
'separator' => 'before',
]
);
$this->add_responsive_control(
'tax2_padding',
[
'label' => esc_html__( 'Padding', 'wpr-addons' ),
'type' => Controls_Manager::DIMENSIONS,
'size_units' => [ 'px', '%' ],
'default' => [
'top' => 0,
'right' => 10,
'bottom' => 0,
'left' => 10,
],
'selectors' => [
'{{WRAPPER}} .wpr-grid-tax-style-2 .inner-block a' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
],
'render_type' => 'template',
]
);
$this->add_responsive_control(
'tax2_margin',
[
'label' => esc_html__( 'Margin', 'wpr-addons' ),
'type' => Controls_Manager::DIMENSIONS,
'size_units' => [ 'px', '%' ],
'default' => [
'top' => 0,
'right' => 0,
'bottom' => 0,
'left' => 0,
],
'selectors' => [
'{{WRAPPER}} .wpr-grid-tax-style-2 .inner-block' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
],
'render_type' => 'template',
]
);
$this->add_control(
'tax2_radius',
[
'label' => esc_html__( 'Border Radius', 'wpr-addons' ),
'type' => Controls_Manager::DIMENSIONS,
'size_units' => [ 'px', '%' ],
'default' => [
'top' => 3,
'right' => 3,
'bottom' => 3,
'left' => 3,
],
'selectors' => [
'{{WRAPPER}} .wpr-grid-tax-style-2 .inner-block a' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
],
'separator' => 'before',
]
);
$this->end_controls_section();
// Styles ====================
// Section: Navigation -------
$this->start_controls_section(
'wpr__section_style_grid_slider_nav',
[
'label' => esc_html__( 'Slider Navigation', 'wpr-addons' ),
'tab' => Controls_Manager::TAB_STYLE,
'condition' => [
'layout_select' => 'slider',
],
]
);
$this->start_controls_tabs( 'tabs_grid_slider_nav_style' );
$this->start_controls_tab(
'tab_grid_slider_nav_normal',
[
'label' => esc_html__( 'Normal', 'wpr-addons' ),
]
);
$this->add_control(
'grid_slider_nav_color',
[
'label' => esc_html__( 'Color', 'wpr-addons' ),
'type' => Controls_Manager::COLOR,
'default' => 'rgba(255,255,255,0.8)',
'selectors' => [
'{{WRAPPER}} .wpr-grid-slider-arrow' => 'color: {{VALUE}};',
'{{WRAPPER}} .wpr-grid-slider-arrow svg' => 'fill: {{VALUE}};',
],
]
);
$this->add_control(
'grid_slider_nav_bg_color',
[
'label' => esc_html__( 'Background Color', 'wpr-addons' ),
'type' => Controls_Manager::COLOR,
'selectors' => [
'{{WRAPPER}} .wpr-grid-slider-arrow' => 'background-color: {{VALUE}};',
],
]
);
$this->add_control(
'grid_slider_nav_border_color',
[
'label' => esc_html__( 'Border Color', 'wpr-addons' ),
'type' => Controls_Manager::COLOR,
'default' => '#E8E8E8',
'selectors' => [
'{{WRAPPER}} .wpr-grid-slider-arrow' => 'border-color: {{VALUE}};',
],
]
);
$this->end_controls_tab();
$this->start_controls_tab(
'tab_grid_slider_nav_hover',
[
'label' => esc_html__( 'Hover', 'wpr-addons' ),
]
);
$this->add_control(
'grid_slider_nav_hover_color',
[
'label' => esc_html__( 'Color', 'wpr-addons' ),
'type' => Controls_Manager::COLOR,
'default' => '#ffffff',
'selectors' => [
'{{WRAPPER}} .wpr-grid-slider-arrow:hover' => 'color: {{VALUE}};',
'{{WRAPPER}} .wpr-grid-slider-arrow:hover svg' => 'fill: {{VALUE}};',
],
]
);
$this->add_control(
'grid_slider_nav_hover_bg_color',
[
'label' => esc_html__( 'Background Color', 'wpr-addons' ),
'type' => Controls_Manager::COLOR,
'selectors' => [
'{{WRAPPER}} .wpr-grid-slider-arrow:hover' => 'background-color: {{VALUE}};',
],
]
);
$this->add_control(
'grid_slider_nav_hover_border_color',
[
'label' => esc_html__( 'Border Color', 'wpr-addons' ),
'type' => Controls_Manager::COLOR,
'default' => '#E8E8E8',
'selectors' => [
'{{WRAPPER}} .wpr-grid-slider-arrow:hover' => 'border-color: {{VALUE}};',
],
]
);
$this->end_controls_tab();
$this->end_controls_tabs();
$this->add_control(
'grid_slider_nav_transition_duration',
[
'label' => esc_html__( 'Transition Duration', 'wpr-addons' ),
'type' => Controls_Manager::NUMBER,
'default' => 0.1,
'min' => 0,
'max' => 5,
'step' => 0.1,
'selectors' => [
'{{WRAPPER}} .wpr-grid-slider-arrow' => 'transition-duration: {{VALUE}}s',
'{{WRAPPER}} .wpr-grid-slider-arrow svg' => 'transition-duration: {{VALUE}}s',
],
'separator' => 'before',
]
);
$this->add_responsive_control(
'grid_slider_nav_font_size',
[
'label' => esc_html__( 'Font Size', 'wpr-addons' ),
'type' => Controls_Manager::SLIDER,
'size_units' => [ 'px', ],
'range' => [
'px' => [
'min' => 10,
'max' => 200,
],
],
'default' => [
'unit' => 'px',
'size' => 25,
],
'selectors' => [
'{{WRAPPER}} .wpr-grid-slider-arrow' => 'font-size: {{SIZE}}{{UNIT}};',
'{{WRAPPER}} .wpr-grid-slider-arrow svg' => 'width: {{SIZE}}{{UNIT}};',
],
'separator' => 'before',
]
);
$this->add_responsive_control(
'grid_slider_nav_size',
[
'label' => esc_html__( 'Box Size', 'wpr-addons' ),
'type' => Controls_Manager::SLIDER,
'size_units' => ['px',],
'range' => [
'px' => [
'min' => 10,
'max' => 200,
],
],
'default' => [
'unit' => 'px',
'size' => 60,
],
'selectors' => [
'{{WRAPPER}} .wpr-grid-slider-arrow' => 'width: {{SIZE}}{{UNIT}}; height: {{SIZE}}{{UNIT}};',
],
'separator' => 'after',
]
);
$this->add_control(
'grid_slider_nav_border_type',
[
'label' => esc_html__( 'Border Type', 'wpr-addons' ),
'type' => Controls_Manager::SELECT,
'options' => [
'none' => esc_html__( 'None', 'wpr-addons' ),
'solid' => esc_html__( 'Solid', 'wpr-addons' ),
'double' => esc_html__( 'Double', 'wpr-addons' ),
'dotted' => esc_html__( 'Dotted', 'wpr-addons' ),
'dashed' => esc_html__( 'Dashed', 'wpr-addons' ),
'groove' => esc_html__( 'Groove', 'wpr-addons' ),
],
'default' => 'none',
'selectors' => [
'{{WRAPPER}} .wpr-grid-slider-arrow' => 'border-style: {{VALUE}};',
],
]
);
$this->add_control(
'grid_slider_nav_border_width',
[
'label' => esc_html__( 'Border Width', 'wpr-addons' ),
'type' => Controls_Manager::DIMENSIONS,
'size_units' => [ 'px' ],
'default' => [
'top' => 2,
'right' => 2,
'bottom' => 0,
'left' => 2,
],
'selectors' => [
'{{WRAPPER}} .wpr-grid-slider-arrow' => 'border-width: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
],
'condition' => [
'grid_slider_nav_border_type!' => 'none',
],
]
);
$this->add_control(
'grid_slider_nav_border_radius',
[
'label' => esc_html__( 'Border Radius', 'wpr-addons' ),
'type' => Controls_Manager::DIMENSIONS,
'size_units' => [ 'px', '%' ],
'selectors' => [
'{{WRAPPER}} .wpr-grid-slider-arrow' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
],
'separator' => 'after',
]
);
$this->add_control_stack_grid_slider_nav_position();
$this->end_controls_section(); // End Controls Section
// Styles ====================
// Section: Pagination -------
$this->start_controls_section(
'wpr__section_style_grid_slider_dots',
[
'label' => esc_html__( 'Slider Pagination', 'wpr-addons' ),
'tab' => Controls_Manager::TAB_STYLE,
'condition' => [
'layout_select' => 'slider',
],
]
);
$this->start_controls_tabs( 'tabs_grid_slider_dots' );
$this->start_controls_tab(
'tab_grid_slider_dots_normal',
[
'label' => esc_html__( 'Normal', 'wpr-addons' ),
]
);
$this->add_control(
'grid_slider_dots_bg_color',
[
'label' => esc_html__( 'Background Color', 'wpr-addons' ),
'type' => Controls_Manager::COLOR,
'default' => 'rgba(0,0,0,0.35)',
'selectors' => [
'{{WRAPPER}} .wpr-grid-slider-dot' => 'background-color: {{VALUE}};',
],
]
);
$this->add_control(
'grid_slider_dots_border_color',
[
'label' => esc_html__( 'Border Color', 'wpr-addons' ),
'type' => Controls_Manager::COLOR,
'default' => '#E8E8E8',
'selectors' => [
'{{WRAPPER}} .wpr-grid-slider-dot' => 'border-color: {{VALUE}}',
],
]
);
$this->end_controls_tab();
$this->start_controls_tab(
'tab_grid_slider_dots_active',
[
'label' => esc_html__( 'Active', 'wpr-addons' ),
]
);
$this->add_control(
'grid_slider_dots_active_bg_color',
[
'label' => esc_html__( 'Background Color', 'wpr-addons' ),
'type' => Controls_Manager::COLOR,
'default' => '#222222',
'selectors' => [
'{{WRAPPER}} .wpr-grid-slider-dots .slick-active .wpr-grid-slider-dot' => 'background-color: {{VALUE}}',
],
]
);
$this->add_control(
'grid_slider_dots_active_border_color',
[
'label' => esc_html__( 'Border Color', 'wpr-addons' ),
'type' => Controls_Manager::COLOR,
'default' => '#E8E8E8',
'selectors' => [
'{{WRAPPER}} .wpr-grid-slider-dots .slick-active .wpr-grid-slider-dot' => 'border-color: {{VALUE}}',
],
]
);
$this->end_controls_tab();
$this->end_controls_tabs();
$this->add_responsive_control(
'grid_slider_dots_width',
[
'label' => esc_html__( 'Box Width', 'wpr-addons' ),
'type' => Controls_Manager::SLIDER,
'size_units' => ['px',],
'range' => [
'px' => [
'min' => 1,
'max' => 100,
],
],
'default' => [
'unit' => 'px',
'size' => 8,
],
'selectors' => [
'{{WRAPPER}} .wpr-grid-slider-dot' => 'width: {{SIZE}}{{UNIT}};',
],
'separator' => 'before',
'render_type' => 'template'
]
);
$this->add_responsive_control(
'grid_slider_dots_height',
[
'label' => esc_html__( 'Box Height', 'wpr-addons' ),
'type' => Controls_Manager::SLIDER,
'size_units' => ['px',],
'range' => [
'px' => [
'min' => 1,
'max' => 100,
],
],
'default' => [
'unit' => 'px',
'size' => 8,
],
'selectors' => [
'{{WRAPPER}} .wpr-grid-slider-dot' => 'height: {{SIZE}}{{UNIT}};',
],
'render_type' => 'template'
]
);
$this->add_control(
'grid_slider_dots_border_type',
[
'label' => esc_html__( 'Border Type', 'wpr-addons' ),
'type' => Controls_Manager::SELECT,
'options' => [
'none' => esc_html__( 'None', 'wpr-addons' ),
'solid' => esc_html__( 'Solid', 'wpr-addons' ),
'double' => esc_html__( 'Double', 'wpr-addons' ),
'dotted' => esc_html__( 'Dotted', 'wpr-addons' ),
'dashed' => esc_html__( 'Dashed', 'wpr-addons' ),
'groove' => esc_html__( 'Groove', 'wpr-addons' ),
],
'default' => 'none',
'selectors' => [
'{{WRAPPER}} .wpr-grid-slider-dot' => 'border-style: {{VALUE}};',
],
'render_type' => 'template',
'separator' => 'before',
]
);
$this->add_control(
'grid_slider_dots_border_width',
[
'label' => esc_html__( 'Border Width', 'wpr-addons' ),
'type' => Controls_Manager::DIMENSIONS,
'size_units' => [ 'px' ],
'default' => [
'top' => 1,
'right' => 1,
'bottom' => 1,
'left' => 1,
],
'selectors' => [
'{{WRAPPER}} .wpr-grid-slider-dot' => 'border-width: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
],
'render_type' => 'template',
'condition' => [
'grid_slider_dots_border_type!' => 'none',
],
]
);
$this->add_control(
'grid_slider_dots_border_radius',
[
'label' => esc_html__( 'Border Radius', 'wpr-addons' ),
'type' => Controls_Manager::DIMENSIONS,
'default' => [
'top' => 50,
'right' => 50,
'bottom' => 50,
'left' => 50,
'unit' => '%',
],
'size_units' => [ 'px', '%' ],
'selectors' => [
'{{WRAPPER}} .wpr-grid-slider-dot' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
],
'separator' => 'before',
]
);
$this->add_responsive_control(
'grid_slider_dots_gutter',
[
'type' => Controls_Manager::SLIDER,
'label' => esc_html__( 'Gutter', 'wpr-addons' ),
'size_units' => ['px' ],
'range' => [
'px' => [
'min' => 0,
'max' => 100,
],
],
'default' => [
'unit' => 'px',
'size' => 7,
],
'selectors' => [
'{{WRAPPER}}.wpr-grid-slider-dots-horizontal .wpr-grid-slider-dot' => 'margin-right: {{SIZE}}{{UNIT}};',
'{{WRAPPER}}.wpr-grid-slider-dots-vertical .wpr-grid-slider-dot' => 'margin-bottom: {{SIZE}}{{UNIT}};',
],
'render_type' => 'template',
'separator' => 'before',
]
);
$this->add_control_grid_slider_dots_hr();
$this->add_responsive_control(
'grid_slider_dots_vr',
[
'type' => Controls_Manager::SLIDER,
'label' => esc_html__( 'Vertical Position', 'wpr-addons' ),
'size_units' => [ '%', 'px' ],
'range' => [
'%' => [
'min' => -20,
'max' => 120,
],
'px' => [
'min' => -200,
'max' => 2000,
],
],
'default' => [
'unit' => '%',
'size' => 96,
],
'selectors' => [
'{{WRAPPER}} .wpr-grid-slider-dots' => 'top: {{SIZE}}{{UNIT}};',
],
]
);
$this->end_controls_section(); // End Controls Section
// Styles ====================
// Section: Filters ----------
$this->start_controls_section(
'section_style_filters',
[
'label' => esc_html__( 'Filters', 'wpr-addons' ),
'tab' => Controls_Manager::TAB_STYLE,
'show_label' => false,
'condition' => [
'layout_select!' => 'slider',
'layout_filters' => 'yes',
],
]
);
$this->add_control(
'active_styles_notice',
[
'type' => Controls_Manager::RAW_HTML,
'raw' => esc_html__('Apply active filter styles from the hover tab.', 'wpr-addons'),
'content_classes' => 'elementor-panel-alert elementor-panel-alert-info'
]
);
$this->start_controls_tabs( 'tabs_grid_filters_style' );
$this->start_controls_tab(
'tab_grid_filters_normal',
[
'label' => esc_html__( 'Normal', 'wpr-addons' ),
]
);
$this->add_control(
'filters_color',
[
'label' => esc_html__( 'Color', 'wpr-addons' ),
'type' => Controls_Manager::COLOR,
'default' => '#7A7A7A',
'selectors' => [
'{{WRAPPER}} .wpr-grid-filters li' => 'color: {{VALUE}}',
'{{WRAPPER}} .wpr-grid-filters li a' => 'color: {{VALUE}}',
],
]
);
$this->add_control(
'filters_bg_color',
[
'label' => esc_html__( 'Background Color', 'wpr-addons' ),
'type' => Controls_Manager::COLOR,
'selectors' => [
'{{WRAPPER}} .wpr-grid-filters li > a' => 'background-color: {{VALUE}}',
'{{WRAPPER}} .wpr-grid-filters li > span' => 'background-color: {{VALUE}}',
]
]
);
$this->add_control(
'filters_border_color',
[
'label' => esc_html__( 'Border Color', 'wpr-addons' ),
'type' => Controls_Manager::COLOR,
'default' => '#E8E8E8',
'selectors' => [
'{{WRAPPER}} .wpr-grid-filters li > a' => 'border-color: {{VALUE}}',
'{{WRAPPER}} .wpr-grid-filters li > span' => 'border-color: {{VALUE}}',
],
]
);
$this->add_group_control(
Group_Control_Box_Shadow::get_type(),
[
'name' => 'filters_box_shadow',
'selector' => '{{WRAPPER}} .wpr-grid-filters li > a, {{WRAPPER}} .wpr-grid-filters li > span',
]
);
$this->add_control(
'filters_wrapper_color',
[
'label' => esc_html__( 'Wrapper Color', 'wpr-addons' ),
'type' => Controls_Manager::COLOR,
'selectors' => [
'{{WRAPPER}} .wpr-grid-filters' => 'background-color: {{VALUE}}',
],
'separator' => 'after',
]
);
$this->end_controls_tab();
$this->start_controls_tab(
'tab_grid_filters_hover',
[
'label' => esc_html__( 'Hover', 'wpr-addons' ),
]
);
$this->add_control(
'filters_color_hr',
[
'label' => esc_html__( 'Color', 'wpr-addons' ),
'type' => Controls_Manager::COLOR,
'default' => '#ffffff',
'selectors' => [
'{{WRAPPER}} .wpr-grid-filters li > a:hover' => 'color: {{VALUE}}',
'{{WRAPPER}} .wpr-grid-filters li > span:hover' => 'color: {{VALUE}}',
'{{WRAPPER}} .wpr-grid-filters li > .wpr-active-filter' => 'color: {{VALUE}}',
],
]
);
$this->add_control(
'filters_bg_color_hr',
[
'label' => esc_html__( 'Background Color', 'wpr-addons' ),
'type' => Controls_Manager::COLOR,
'default' => '#605BE5',
'selectors' => [
'{{WRAPPER}} .wpr-grid-filters li > a:hover' => 'background-color: {{VALUE}}',
'{{WRAPPER}} .wpr-grid-filters li > span:hover' => 'background-color: {{VALUE}}',
'{{WRAPPER}} .wpr-grid-filters li > .wpr-active-filter' => 'background-color: {{VALUE}}',
]
]
);
$this->add_control(
'filters_border_color_hr',
[
'label' => esc_html__( 'Border Color', 'wpr-addons' ),
'type' => Controls_Manager::COLOR,
'default' => '#E8E8E8',
'selectors' => [
'{{WRAPPER}} .wpr-grid-filters li > a:hover' => 'border-color: {{VALUE}}',
'{{WRAPPER}} .wpr-grid-filters li > span:hover' => 'border-color: {{VALUE}}',
'{{WRAPPER}} .wpr-grid-filters li > .wpr-active-filter' => 'border-color: {{VALUE}}',
]
]
);
$this->add_control_filters_pointer_color_hr();
$this->add_group_control(
Group_Control_Box_Shadow::get_type(),
[
'name' => 'filters_box_shadow_hr',
'selector' => '{{WRAPPER}} .wpr-grid-filters li > a:hover, {{WRAPPER}} .wpr-grid-filters li > span:hover',
'separator' => 'after',
]
);
$this->end_controls_tab();
$this->end_controls_tabs();
$this->add_control_filters_pointer();
$this->add_control_filters_pointer_height();
$this->add_control_filters_pointer_animation();
$this->add_control(
'filters_transition_duration',
[
'label' => esc_html__( 'Transition Duration', 'wpr-addons' ),
'type' => Controls_Manager::NUMBER,
'default' => 0.1,
'min' => 0,
'max' => 5,
'step' => 0.1,
'selectors' => [
'{{WRAPPER}} .wpr-grid-filters li > a' => 'transition-duration: {{VALUE}}s',
'{{WRAPPER}} .wpr-grid-filters li > span' => 'transition-duration: {{VALUE}}s',
'{{WRAPPER}} .wpr-pointer-item:before' => 'transition-duration: {{VALUE}}s',
'{{WRAPPER}} .wpr-pointer-item:after' => 'transition-duration: {{VALUE}}s',
],
'separator' => 'after',
]
);
$this->add_group_control(
Group_Control_Typography::get_type(),
[
'name' => 'filters_typography',
'selector' => '{{WRAPPER}} .wpr-grid-filters li'
]
);
$this->add_control(
'filters_border_type',
[
'label' => esc_html__( 'Border Type', 'wpr-addons' ),
'type' => Controls_Manager::SELECT,
'options' => [
'none' => esc_html__( 'None', 'wpr-addons' ),
'solid' => esc_html__( 'Solid', 'wpr-addons' ),
'double' => esc_html__( 'Double', 'wpr-addons' ),
'dotted' => esc_html__( 'Dotted', 'wpr-addons' ),
'dashed' => esc_html__( 'Dashed', 'wpr-addons' ),
'groove' => esc_html__( 'Groove', 'wpr-addons' ),
],
'default' => 'none',
'selectors' => [
'{{WRAPPER}} .wpr-grid-filters li > a' => 'border-style: {{VALUE}};',
'{{WRAPPER}} .wpr-grid-filters li > span' => 'border-style: {{VALUE}};',
],
'separator' => 'before',
]
);
$this->add_control(
'filters_border_width',
[
'label' => esc_html__( 'Border Width', 'wpr-addons' ),
'type' => Controls_Manager::DIMENSIONS,
'size_units' => [ 'px' ],
'default' => [
'top' => 1,
'right' => 1,
'bottom' => 1,
'left' => 1,
],
'selectors' => [
'{{WRAPPER}} .wpr-grid-filters li > a' => 'border-width: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
'{{WRAPPER}} .wpr-grid-filters li > span' => 'border-width: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
],
'condition' => [
'filters_border_type!' => 'none',
],
]
);
$this->add_responsive_control(
'filters_distance_from_grid',
[
'label' => esc_html__( 'Distance From Grid', 'wpr-addons' ),
'type' => Controls_Manager::SLIDER,
'size_units' => [ 'px' ],
'range' => [
'px' => [
'min' => 0,
'max' => 100,
],
],
'default' => [
'unit' => 'px',
'size' => 25,
],
'selectors' => [
'{{WRAPPER}} .wpr-grid-filters' => 'margin-bottom: {{SIZE}}{{UNIT}};',
],
'separator' => 'before'
]
);
$this->add_control(
'filters_icon_spacing',
[
'label' => esc_html__( 'Extra Icon Spacing', 'wpr-addons' ),
'type' => Controls_Manager::SLIDER,
'size_units' => ['px'],
'range' => [
'px' => [
'min' => 0,
'max' => 25,
],
],
'default' => [
'unit' => 'px',
'size' => 0,
],
'selectors' => [
'{{WRAPPER}} .wpr-grid-filters-icon-left' => 'padding-right: {{SIZE}}{{UNIT}};',
'{{WRAPPER}} .wpr-grid-filters-icon-right' => 'padding-left: {{SIZE}}{{UNIT}};',
],
]
);
$this->add_responsive_control(
'filters_margin',
[
'label' => esc_html__( 'Margin', 'wpr-addons' ),
'type' => Controls_Manager::DIMENSIONS,
'size_units' => [ 'px' ],
'default' => [
'top' => 0,
'right' => 5,
'bottom' => 0,
'left' => 0,
],
'selectors' => [
'{{WRAPPER}} .wpr-grid-filters li' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
],
]
);
$this->add_responsive_control(
'filters_padding',
[
'label' => esc_html__( 'Padding', 'wpr-addons' ),
'type' => Controls_Manager::DIMENSIONS,
'size_units' => [ 'px', ],
'default' => [
'top' => 3,
'right' => 15,
'bottom' => 3,
'left' => 15,
],
'selectors' => [
'{{WRAPPER}} .wpr-grid-filters li > a' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
'{{WRAPPER}} .wpr-grid-filters li > span' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
],
]
);
$this->add_responsive_control(
'filters_wrapper_padding',
[
'label' => esc_html__( 'Wrapper Padding', 'wpr-addons' ),
'type' => Controls_Manager::DIMENSIONS,
'size_units' => [ 'px', ],
'default' => [
'top' => 0,
'right' => 0,
'bottom' => 0,
'left' => 0,
],
'selectors' => [
'{{WRAPPER}} .wpr-grid-filters' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
],
]
);
$this->add_control(
'filters_radius',
[
'label' => esc_html__( 'Border Radius', 'wpr-addons' ),
'type' => Controls_Manager::DIMENSIONS,
'size_units' => [ 'px', '%' ],
'default' => [
'top' => 3,
'right' => 3,
'bottom' => 3,
'left' => 3,
],
'selectors' => [
'{{WRAPPER}} .wpr-grid-filters li > a' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
'{{WRAPPER}} .wpr-grid-filters li > span' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
],
'separator' => 'before',
]
);
$this->end_controls_section();
// Styles ====================
// Section: Pagination ----------
$this->start_controls_section(
'section_style_pagination',
[
'label' => esc_html__( 'Pagination', 'wpr-addons' ),
'tab' => Controls_Manager::TAB_STYLE,
'show_label' => false,
'condition' => [
'layout_select!' => 'slider',
'layout_pagination' => 'yes',
],
]
);
$this->start_controls_tabs( 'tabs_grid_pagination_style' );
$this->start_controls_tab(
'tab_grid_pagination_normal',
[
'label' => esc_html__( 'Normal', 'wpr-addons' ),
]
);
$this->add_control(
'pagination_color',
[
'label' => esc_html__( 'Color', 'wpr-addons' ),
'type' => Controls_Manager::COLOR,
'default' => '#ffffff',
'selectors' => [
'{{WRAPPER}} .wpr-grid-pagination a' => 'color: {{VALUE}}',
'{{WRAPPER}} .wpr-grid-pagination svg' => 'fill: {{VALUE}}',
'{{WRAPPER}} .wpr-grid-pagination > div > span' => 'color: {{VALUE}}',
'{{WRAPPER}} .wpr-grid-pagination span.wpr-disabled-arrow' => 'color: {{VALUE}}',
],
]
);
$this->add_control(
'pagination_bg_color',
[
'label' => esc_html__( 'Background Color', 'wpr-addons' ),
'type' => Controls_Manager::COLOR,
'default' => '#605BE5',
'selectors' => [
'{{WRAPPER}} .wpr-grid-pagination a' => 'background-color: {{VALUE}}',
'{{WRAPPER}} .wpr-grid-pagination > div > span' => 'background-color: {{VALUE}}',
'{{WRAPPER}} .wpr-grid-pagination span.wpr-disabled-arrow' => 'background-color: {{VALUE}}',
'{{WRAPPER}} .wpr-pagination-finish' => 'color: {{VALUE}}',
]
]
);
$this->add_control(
'pagination_border_color',
[
'label' => esc_html__( 'Border Color', 'wpr-addons' ),
'type' => Controls_Manager::COLOR,
'default' => '#E8E8E8',
'selectors' => [
'{{WRAPPER}} .wpr-grid-pagination a' => 'border-color: {{VALUE}}',
'{{WRAPPER}} .wpr-grid-pagination > div > span' => 'border-color: {{VALUE}}',
'{{WRAPPER}} .wpr-grid-pagination span.wpr-disabled-arrow' => 'border-color: {{VALUE}}',
],
]
);
$this->add_group_control(
Group_Control_Box_Shadow::get_type(),
[
'name' => 'pagination_box_shadow',
'selector' => '{{WRAPPER}} .wpr-grid-pagination a, {{WRAPPER}} .wpr-grid-pagination > div > span',
]
);
$this->add_control(
'pagination_loader_color',
[
'label' => esc_html__( 'Loader Color', 'wpr-addons' ),
'type' => Controls_Manager::COLOR,
'default' => '#605BE5',
'selectors' => [
'{{WRAPPER}} .wpr-double-bounce .wpr-child' => 'background-color: {{VALUE}}',
'{{WRAPPER}} .wpr-wave .wpr-rect' => 'background-color: {{VALUE}}',
'{{WRAPPER}} .wpr-spinner-pulse' => 'background-color: {{VALUE}}',
'{{WRAPPER}} .wpr-chasing-dots .wpr-child' => 'background-color: {{VALUE}}',
'{{WRAPPER}} .wpr-three-bounce .wpr-child' => 'background-color: {{VALUE}}',
'{{WRAPPER}} .wpr-fading-circle .wpr-circle:before' => 'background-color: {{VALUE}}',
],
'condition' => [
'pagination_type' => [ 'load-more', 'infinite-scroll' ]
]
]
);
$this->add_control(
'pagination_wrapper_color',
[
'label' => esc_html__( 'Wrapper Color', 'wpr-addons' ),
'type' => Controls_Manager::COLOR,
'selectors' => [
'{{WRAPPER}} .wpr-grid-pagination' => 'background-color: {{VALUE}}',
],
'separator' => 'after',
]
);
$this->end_controls_tab();
$this->start_controls_tab(
'tab_grid_pagination_hover',
[
'label' => esc_html__( 'Hover', 'wpr-addons' ),
]
);
$this->add_control(
'pagination_color_hr',
[
'label' => esc_html__( 'Color', 'wpr-addons' ),
'type' => Controls_Manager::COLOR,
'default' => '#ffffff',
'selectors' => [
'{{WRAPPER}} .wpr-grid-pagination a:hover' => 'color: {{VALUE}}',
'{{WRAPPER}} .wpr-grid-pagination a:hover svg' => 'fill: {{VALUE}}',
'{{WRAPPER}} .wpr-grid-pagination > div > span:not(.wpr-disabled-arrow):hover' => 'color: {{VALUE}}',
'{{WRAPPER}} .wpr-grid-pagination span.wpr-grid-current-page' => 'color: {{VALUE}}',
],
]
);
$this->add_control(
'pagination_bg_color_hr',
[
'label' => esc_html__( 'Background Color', 'wpr-addons' ),
'type' => Controls_Manager::COLOR,
'default' => '#4A45D2',
'selectors' => [
'{{WRAPPER}} .wpr-grid-pagination a:hover' => 'background-color: {{VALUE}}',
'{{WRAPPER}} .wpr-grid-pagination > div > span:not(.wpr-disabled-arrow):hover' => 'background-color: {{VALUE}}',
'{{WRAPPER}} .wpr-grid-pagination span.wpr-grid-current-page' => 'background-color: {{VALUE}}',
]
]
);
$this->add_control(
'pagination_border_color_hr',
[
'label' => esc_html__( 'Border Color', 'wpr-addons' ),
'type' => Controls_Manager::COLOR,
'default' => '#E8E8E8',
'selectors' => [
'{{WRAPPER}} .wpr-grid-pagination a:hover' => 'border-color: {{VALUE}}',
'{{WRAPPER}} .wpr-grid-pagination > div > span:not(.wpr-disabled-arrow):hover' => 'border-color: {{VALUE}}',
'{{WRAPPER}} .wpr-grid-pagination span.wpr-grid-current-page' => 'border-color: {{VALUE}}',
]
]
);
$this->add_group_control(
Group_Control_Box_Shadow::get_type(),
[
'name' => 'pagination_box_shadow_hr',
'selector' => '{{WRAPPER}} .wpr-grid-pagination a:hover, {{WRAPPER}} .wpr-grid-pagination > div > span:not(.wpr-disabled-arrow):hover',
'separator' => 'after',
]
);
$this->end_controls_tab();
$this->end_controls_tabs();
$this->add_control(
'pagination_transition_duration',
[
'label' => esc_html__( 'Transition Duration', 'wpr-addons' ),
'type' => Controls_Manager::NUMBER,
'default' => 0.1,
'min' => 0,
'max' => 5,
'step' => 0.1,
'selectors' => [
'{{WRAPPER}} .wpr-grid-pagination a' => 'transition-duration: {{VALUE}}s',
'{{WRAPPER}} .wpr-grid-pagination svg' => 'transition-duration: {{VALUE}}s',
'{{WRAPPER}} .wpr-grid-pagination > div > span' => 'transition-duration: {{VALUE}}s',
],
'separator' => 'after',
]
);
$this->add_group_control(
Group_Control_Typography::get_type(),
[
'name' => 'pagination_typography',
'selector' => '{{WRAPPER}} .wpr-grid-pagination'
]
);
$this->add_responsive_control(
'pagination_icon_size',
[
'label' => esc_html__( 'Icon Size', 'wpr-addons' ),
'type' => Controls_Manager::SLIDER,
'size_units' => ['px'],
'range' => [
'px' => [
'min' => 5,
'max' => 30,
],
],
'default' => [
'unit' => 'px',
'size' => 15,
],
'selectors' => [
'{{WRAPPER}} .wpr-grid-pagination i' => 'font-size: {{SIZE}}{{UNIT}};',
'{{WRAPPER}} .wpr-grid-pagination svg' => 'width: {{SIZE}}{{UNIT}};',
],
]
);
$this->add_control(
'pagination_border_type',
[
'label' => esc_html__( 'Border Type', 'wpr-addons' ),
'type' => Controls_Manager::SELECT,
'options' => [
'none' => esc_html__( 'None', 'wpr-addons' ),
'solid' => esc_html__( 'Solid', 'wpr-addons' ),
'double' => esc_html__( 'Double', 'wpr-addons' ),
'dotted' => esc_html__( 'Dotted', 'wpr-addons' ),
'dashed' => esc_html__( 'Dashed', 'wpr-addons' ),
'groove' => esc_html__( 'Groove', 'wpr-addons' ),
],
'default' => 'none',
'selectors' => [
'{{WRAPPER}} .wpr-grid-pagination a' => 'border-style: {{VALUE}};',
'{{WRAPPER}} .wpr-grid-pagination > div > span' => 'border-style: {{VALUE}};',
'{{WRAPPER}} .wpr-grid-pagination span.wpr-grid-current-page' => 'border-style: {{VALUE}};',
'{{WRAPPER}} .wpr-grid-pagination span.wpr-disabled-arrow' => 'border-style: {{VALUE}};',
],
'separator' => 'before',
]
);
$this->add_control(
'pagination_border_width',
[
'label' => esc_html__( 'Border Width', 'wpr-addons' ),
'type' => Controls_Manager::DIMENSIONS,
'size_units' => [ 'px' ],
'default' => [
'top' => 1,
'right' => 1,
'bottom' => 1,
'left' => 1,
],
'selectors' => [
'{{WRAPPER}} .wpr-grid-pagination a' => 'border-width: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
'{{WRAPPER}} .wpr-grid-pagination > div > span' => 'border-width: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
'{{WRAPPER}} .wpr-grid-pagination span.wpr-disabled-arrow' => 'border-width: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
'{{WRAPPER}} .wpr-grid-pagination span.wpr-grid-current-page' => 'border-width: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
],
'condition' => [
'pagination_border_type!' => 'none',
],
]
);
$this->add_responsive_control(
'pagination_distance_from_grid',
[
'label' => esc_html__( 'Distance From Grid', 'wpr-addons' ),
'type' => Controls_Manager::SLIDER,
'size_units' => [ 'px' ],
'range' => [
'px' => [
'min' => 0,
'max' => 100,
],
],
'default' => [
'unit' => 'px',
'size' => 35,
],
'selectors' => [
'{{WRAPPER}} .wpr-grid-pagination' => 'margin-top: {{SIZE}}{{UNIT}};',
],
'separator' => 'before'
]
);
$this->add_control(
'pagination_gutter',
[
'label' => esc_html__( 'Gutter', 'wpr-addons' ),
'type' => Controls_Manager::SLIDER,
'size_units' => [ 'px' ],
'range' => [
'px' => [
'min' => 0,
'max' => 25,
],
],
'default' => [
'unit' => 'px',
'size' => 10,
],
'selectors' => [
'{{WRAPPER}} .wpr-grid-pagination a' => 'margin-right: {{SIZE}}{{UNIT}};',
'{{WRAPPER}} .wpr-grid-pagination > div > span' => 'margin-right: {{SIZE}}{{UNIT}};',
'{{WRAPPER}} .wpr-grid-pagination span.wpr-disabled-arrow' => 'margin-right: {{SIZE}}{{UNIT}};',
'{{WRAPPER}} .wpr-grid-pagination span.wpr-grid-current-page' => 'margin-right: {{SIZE}}{{UNIT}};',
],
]
);
$this->add_control(
'pagination_icon_spacing',
[
'label' => esc_html__( 'Icon Spacing', 'wpr-addons' ),
'type' => Controls_Manager::SLIDER,
'size_units' => ['px'],
'range' => [
'px' => [
'min' => 0,
'max' => 25,
],
],
'default' => [
'unit' => 'px',
'size' => 10,
],
'selectors' => [
'{{WRAPPER}} .wpr-grid-pagination .wpr-prev-post-link i' => 'padding-right: {{SIZE}}{{UNIT}};',
'{{WRAPPER}} .wpr-grid-pagination .wpr-next-post-link i' => 'padding-left: {{SIZE}}{{UNIT}};',
'{{WRAPPER}} .wpr-grid-pagination .wpr-first-page i' => 'padding-right: {{SIZE}}{{UNIT}};',
'{{WRAPPER}} .wpr-grid-pagination .wpr-prev-page i' => 'padding-right: {{SIZE}}{{UNIT}};',
'{{WRAPPER}} .wpr-grid-pagination .wpr-next-page i' => 'padding-left: {{SIZE}}{{UNIT}};',
'{{WRAPPER}} .wpr-grid-pagination .wpr-last-page i' => 'padding-left: {{SIZE}}{{UNIT}};',
'{{WRAPPER}} .wpr-grid-pagination .wpr-prev-post-link svg' => 'margin-right: {{SIZE}}{{UNIT}};',
'{{WRAPPER}} .wpr-grid-pagination .wpr-next-post-link svg' => 'margin-left: {{SIZE}}{{UNIT}};',
'{{WRAPPER}} .wpr-grid-pagination .wpr-first-page svg' => 'margin-right: {{SIZE}}{{UNIT}};',
'{{WRAPPER}} .wpr-grid-pagination .wpr-prev-page svg' => 'margin-right: {{SIZE}}{{UNIT}};',
'{{WRAPPER}} .wpr-grid-pagination .wpr-next-page svg' => 'margin-left: {{SIZE}}{{UNIT}};',
'{{WRAPPER}} .wpr-grid-pagination .wpr-last-page svg' => 'margin-left: {{SIZE}}{{UNIT}};',
],
]
);
$this->add_responsive_control(
'pagination_padding',
[
'label' => esc_html__( 'Padding', 'wpr-addons' ),
'type' => Controls_Manager::DIMENSIONS,
'size_units' => [ 'px' ],
'default' => [
'top' => 8,
'right' => 15,
'bottom' => 8,
'left' => 15,
],
'selectors' => [
'{{WRAPPER}} .wpr-grid-pagination a' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
'{{WRAPPER}} .wpr-grid-pagination > div > span' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
'{{WRAPPER}} .wpr-grid-pagination span.wpr-disabled-arrow' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
'{{WRAPPER}} .wpr-grid-pagination span.wpr-grid-current-page' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
],
]
);
$this->add_responsive_control(
'pagination_wrapper_padding',
[
'label' => esc_html__( 'Wrapper Padding', 'wpr-addons' ),
'type' => Controls_Manager::DIMENSIONS,
'size_units' => [ 'px' ],
'default' => [
'top' => 0,
'right' => 0,
'bottom' => 0,
'left' => 0,
],
'selectors' => [
'{{WRAPPER}} .wpr-grid-pagination' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
],
]
);
$this->add_control(
'pagination_radius',
[
'label' => esc_html__( 'Border Radius', 'wpr-addons' ),
'type' => Controls_Manager::DIMENSIONS,
'size_units' => [ 'px', '%' ],
'default' => [
'top' => 3,
'right' => 3,
'bottom' => 3,
'left' => 3,
],
'selectors' => [
'{{WRAPPER}} .wpr-grid-pagination a' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
'{{WRAPPER}} .wpr-grid-pagination > div > span' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
'{{WRAPPER}} .wpr-grid-pagination span.wpr-grid-current-page' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
],
'separator' => 'before',
]
);
$this->end_controls_section();
}
// Get Taxonomies Related to Post Type
public function get_related_taxonomies() {
$relations = [];
$post_types = Utilities::get_custom_types_of( 'post', false );
foreach ( $post_types as $slug => $title ) {
$relations[$slug] = [];
foreach ( get_object_taxonomies( $slug ) as $tax ) {
array_push( $relations[$slug], $tax );
}
}
return json_encode( $relations );
}
// Get Max Pages
public function get_max_num_pages( $settings ) {
$query = new \WP_Query( $this->get_main_query_args() );
$max_num_pages = intval( ceil( $query->max_num_pages ) );
// Reset
wp_reset_postdata();
// $max_num_pages
return $max_num_pages;
}
// Main Query Args
public function get_main_query_args() {
$settings = $this->get_settings_for_display();
$author = ! empty( $settings[ 'query_author' ] ) ? implode( ',', $settings[ 'query_author' ] ) : '';
// Get Paged
if ( get_query_var( 'paged' ) ) {
$paged = get_query_var( 'paged' );
} elseif ( get_query_var( 'page' ) ) {
$paged = get_query_var( 'page' );
} else {
$paged = 1;
}
if ( empty($settings['query_offset']) ) {
$settings[ 'query_offset' ] = 0;
}
$offset = ( $paged - 1 ) * $settings['query_posts_per_page'] + $settings[ 'query_offset' ];
if ( ! wpr_fs()->can_use_premium_code() ) {
$settings[ 'query_randomize' ] = '';
$settings['order_posts'] = 'date';
}
$query_order_by = '' != $settings['query_randomize'] ? $settings['query_randomize'] : $settings['order_posts'];
if ( 'manual' === $settings[ 'query_selection' ] ) {
$query_order_by = 'post__in';
}
// Dynamic
$args = [
'post_type' => 'attachment',
'post_status' => 'inherit',
'tax_query' => $this->get_tax_query_args(),
'post__not_in' => $settings[ 'query_exclude_attachment' ],
'posts_per_page' => $settings['query_posts_per_page'],
'orderby' => $query_order_by,
'author' => $author,
'paged' => $paged,
'offset' => $offset
];
// Manual
if ( 'manual' === $settings[ 'query_selection' ] ) {
$post_ids = [''];
$attachments = $settings['query_manual_attachment'];
$attachments_count = 0;
if (!empty($attachments) ) {
$attachments_count = count($attachments);
}
for ( $i = 0; $i < $attachments_count; $i++ ) {
array_push( $post_ids, $settings['query_manual_attachment'][$i]['id'] );
}
$orderby = '' === $settings[ 'query_randomize' ] ? 'post__in' : 'rand';
$args = [
'post_type' => 'attachment',
'post_status' => 'inherit',
'post__in' => $post_ids,
'orderby' => $orderby,
'paged' => $paged,
'posts_per_page' => $settings['query_posts_per_page'],
'paged' => $paged,
];
}
if ( 'rand' !== $query_order_by && 'manual' !== $settings['query_selection'] ) {
$args['order'] = $settings['order_direction'];
}
return $args;
}
// Taxonomy Query Args
public function get_tax_query_args() {
$settings = $this->get_settings();
$tax_query = [];
foreach ( get_object_taxonomies( 'attachment' ) as $tax ) {
if ( ! empty($settings[ 'query_taxonomy_'. $tax ]) ) {
array_push( $tax_query, [
'taxonomy' => $tax,
'field' => 'id',
'terms' => $settings[ 'query_taxonomy_'. $tax ]
] );
}
}
return $tax_query;
}
// Get Animation Class
public function get_animation_class( $data, $object ) {
$class = '';
// Animation Class
if ( 'none' !== $data[ $object .'_animation'] ) {
$class .= ' wpr-'. $object .'-'. $data[ $object .'_animation'];
$class .= ' wpr-anim-size-'. $data[ $object .'_animation_size'];
$class .= ' wpr-anim-timing-'. $data[ $object .'_animation_timing'];
if ( 'yes' === $data[ $object .'_animation_tr'] ) {
$class .= ' wpr-anim-transparency';
}
}
return $class;
}
// Get Image Effect Class
public function get_image_effect_class( $settings ) {
$class = '';
if ( ! wpr_fs()->can_use_premium_code() ) {
if ( 'pro-zi' == $settings['image_effects'] || 'pro-zo' == $settings['image_effects'] || 'pro-go' == $settings['image_effects'] || 'pro-bo' == $settings['image_effects'] ) {
$settings['image_effects'] = 'none';
}
}
// Animation Class
if ( 'none' !== $settings['image_effects'] ) {
$class .= ' wpr-'. $settings['image_effects'];
}
// Slide Effect
if ( 'slide' !== $settings['image_effects'] ) {
$class .= ' wpr-effect-size-'. $settings['image_effects_size'];
} else {
$class .= ' wpr-effect-dir-'. $settings['image_effects_direction'];
}
return $class;
}
// Render Post Thumbnail
public function render_post_thumbnail( $settings ) {
$id = get_the_ID();
$src = Group_Control_Image_Size::get_attachment_image_src( $id, 'layout_image_crop', $settings );
$alt = '' === wp_get_attachment_caption( $id ) ? get_the_title() : wp_get_attachment_caption( $id );
echo '
';
echo '
 .')
';
echo '
';
}
// Render Media Overlay
public function render_media_overlay( $settings ) {
echo '
';
}
// Render Post Title
public function render_post_title( $settings, $class ) {
$title_pointer = ! wpr_fs()->can_use_premium_code() ? 'none' : $this->get_settings()['title_pointer'];
$title_pointer_animation = ! wpr_fs()->can_use_premium_code() ? 'fade' : $this->get_settings()['title_pointer_animation'];
$pointer_item_class = (isset($this->get_settings()['title_pointer']) && 'none' !== $this->get_settings()['title_pointer']) ? 'class="wpr-pointer-item"' : '';
$class .= ' wpr-pointer-'. $title_pointer;
$class .= ' wpr-pointer-line-fx wpr-pointer-fx-'. $title_pointer_animation;
$tags_whitelist = ['h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'div', 'span', 'p'];
$element_title_tag = Utilities::validate_html_tags_wl( $settings['element_title_tag'], 'h2', $tags_whitelist );
echo '<'. esc_attr($element_title_tag) .' class="'. esc_attr($class) .'">';
echo '
';
echo '';
}
// Render Post Excerpt
public function render_post_excerpt( $settings, $class ) {
$dropcap_class = 'yes' === $settings['element_dropcap'] ? ' wpr-enable-dropcap' : '';
$class .= $dropcap_class;
if ( '' === get_the_excerpt() ) {
return;
}
echo '
';
echo '
';
echo '
'. esc_html(wp_trim_words( get_the_excerpt(), $settings['element_word_count'] )) .'
';
echo '
';
echo '
';
}
// Render Post Date
public function render_post_date( $settings, $class ) {
echo '
';
echo '
';
echo '';
// Text: Before
if ( 'before' === $settings['element_extra_text_pos'] ) {
echo '';
}
// Icon: Before
if ( 'before' === $settings['element_extra_icon_pos'] ) {
ob_start();
\Elementor\Icons_Manager::render_icon($settings['element_extra_icon'], ['aria-hidden' => 'true']);
$extra_icon = ob_get_clean();
echo '';
}
// Date
echo esc_html(apply_filters( 'the_date', get_the_date( '' ), get_option( 'date_format' ), '', '' ));
// Icon: After
if ( 'after' === $settings['element_extra_icon_pos'] ) {
ob_start();
\Elementor\Icons_Manager::render_icon($settings['element_extra_icon'], ['aria-hidden' => 'true']);
$extra_icon = ob_get_clean();
echo '';
}
// Text: After
if ( 'after' === $settings['element_extra_text_pos'] ) {
echo '';
}
echo '';
echo '
';
echo '
';
}
// Render Post Time
public function render_post_time( $settings, $class ) {
echo '
';
echo '
';
echo '';
// Text: Before
if ( 'before' === $settings['element_extra_text_pos'] ) {
echo '';
}
// Icon: Before
if ( 'before' === $settings['element_extra_icon_pos'] ) {
ob_start();
\Elementor\Icons_Manager::render_icon($settings['element_extra_icon'], ['aria-hidden' => 'true']);
$extra_icon = ob_get_clean();
echo '';
}
// Time
echo esc_html(get_the_time(''));
// Icon: After
if ( 'after' === $settings['element_extra_icon_pos'] ) {
ob_start();
\Elementor\Icons_Manager::render_icon($settings['element_extra_icon'], ['aria-hidden' => 'true']);
$extra_icon = ob_get_clean();
echo '';
}
// Text: After
if ( 'after' === $settings['element_extra_text_pos'] ) {
echo '';
}
echo '';
echo '
';
echo '
';
}
// Render Post Author
public function render_post_author( $settings, $class ) {
$author_id = get_post_field( 'post_author' );
echo '
';
}
// Render Post Likes
public function render_post_likes( $settings, $class, $post_id ) {}
// Render Post Sharing
public function render_post_sharing_icons( $settings, $class ) {}
// Render Post Lightbox
public function render_post_lightbox( $settings, $class, $post_id ) {
echo '
';
echo '
';
$lightbox_source = get_the_post_thumbnail_url( $post_id );
// Audio Post Type
if ( 'audio' === get_post_format() ) {
// Load Meta Value
if ( 'meta' === $settings['element_lightbox_pfa_select'] ) {
$utilities = new Utilities();
$meta_value = get_post_meta( $post_id, $settings['element_lightbox_pfa_meta'], true );
// URL
if ( false === strpos( $meta_value, '
';
echo '
';
}
// Render Post Element Separator
public function render_post_element_separator( $settings, $class ) {
echo '
';
}
// Render Post Taxonomies
public function render_post_taxonomies( $settings, $class, $post_id ) {
$terms = wp_get_post_terms( $post_id, $settings['element_select'] );
$count = 0;
$tax1_pointer = ! wpr_fs()->can_use_premium_code() ? 'none' : $this->get_settings()['tax1_pointer'];
$tax1_pointer_animation = ! wpr_fs()->can_use_premium_code() ? 'fade' : $this->get_settings()['tax1_pointer_animation'];
$tax2_pointer = ! wpr_fs()->can_use_premium_code() ? 'none' : $this->get_settings()['tax2_pointer'];
$tax2_pointer_animation = ! wpr_fs()->can_use_premium_code() ? 'fade' : $this->get_settings()['tax2_pointer_animation'];
$pointer_item_class = (isset($this->get_settings()['tax1_pointer']) && 'none' !== $this->get_settings()['tax1_pointer']) || (isset($this->get_settings()['tax2_pointer']) && 'none' !== $this->get_settings()['tax2_pointer']) ? 'class="wpr-pointer-item"' : '';
// Pointer Class
if ( 'wpr-grid-tax-style-1' === $settings['element_tax_style'] ) {
$class .= ' wpr-pointer-'. $tax1_pointer;
$class .= ' wpr-pointer-line-fx wpr-pointer-fx-'. $tax1_pointer_animation;
} else {
$class .= ' wpr-pointer-'. $tax2_pointer;
$class .= ' wpr-pointer-line-fx wpr-pointer-fx-'. $tax2_pointer_animation;
}
echo '
';
echo '
';
// Text: Before
if ( 'before' === $settings['element_extra_text_pos'] ) {
echo '';
}
// Icon: Before
if ( 'before' === $settings['element_extra_icon_pos'] ) {
ob_start();
\Elementor\Icons_Manager::render_icon($settings['element_extra_icon'], ['aria-hidden' => 'true']);
$extra_icon = ob_get_clean();
echo '';
}
// Taxonomies
foreach ( $terms as $term ) {
echo '
'. esc_html( $term->name );
if ( ++$count !== count( $terms ) ) {
echo ''. esc_html($settings['element_tax_sep']) .'';
}
echo '';
}
// Icon: After
if ( 'after' === $settings['element_extra_icon_pos'] ) {
ob_start();
\Elementor\Icons_Manager::render_icon($settings['element_extra_icon'], ['aria-hidden' => 'true']);
$extra_icon = ob_get_clean();
echo '';
}
// Text: After
if ( 'after' === $settings['element_extra_text_pos'] ) {
echo '';
}
echo '
';
echo '
';
}
// Get Elements
public function get_elements( $type, $settings, $class, $post_id ) {
if ( 'pro-lk' == $type || 'pro-shr' == $type ) {
$type = 'title';
}
switch ( $type ) {
case 'title':
$this->render_post_title( $settings, $class );
break;
case 'caption':
$this->render_post_excerpt( $settings, $class );
break;
case 'date':
$this->render_post_date( $settings, $class );
break;
case 'time':
$this->render_post_time( $settings, $class );
break;
case 'author':
$this->render_post_author( $settings, $class );
break;
case 'likes':
$this->render_post_likes( $settings, $class, $post_id );
break;
case 'sharing':
$this->render_post_sharing_icons( $settings, $class );
break;
case 'lightbox':
$this->render_post_lightbox( $settings, $class, $post_id );
break;
case 'separator':
$this->render_post_element_separator( $settings, $class );
break;
default:
$this->render_post_taxonomies( $settings, $class, $post_id );
break;
}
}
// Get Elements by Location
public function get_elements_by_location( $location, $settings, $post_id ) {
$locations = [];
foreach ( $settings['grid_elements'] as $data ) {
$place = $data['element_location'];
$align_vr = $data['element_align_vr'];
if ( ! wpr_fs()->can_use_premium_code() ) {
$align_vr = 'middle';
}
if ( ! isset($locations[$place]) ) {
$locations[$place] = [];
}
if ( 'over' === $place ) {
if ( ! isset($locations[$place][$align_vr]) ) {
$locations[$place][$align_vr] = [];
}
array_push( $locations[$place][$align_vr], $data );
} else {
array_push( $locations[$place], $data );
}
}
if ( ! empty( $locations[$location] ) ) {
if ( 'over' === $location ) {
foreach ( $locations[$location] as $align => $elements ) {
if ( 'middle' === $align ) {
echo '
';
}
echo '
';
foreach ( $elements as $data ) {
// Get Class
$class = 'wpr-grid-item-'. $data['element_select'];
$class .= ' elementor-repeater-item-'. $data['_id'];
$class .= ' wpr-grid-item-display-'. $data['element_display'];
$class .= ' wpr-grid-item-align-'. $data['element_align_hr'];
$class .= $this->get_animation_class( $data, 'element' );
// Element
$this->get_elements( $data['element_select'], $data, $class, $post_id );
}
echo '
';
if ( 'middle' === $align ) {
echo '
';
}
}
} else {
echo '
';
foreach ( $locations[$location] as $data ) {
// Get Class
$class = 'wpr-grid-item-'. $data['element_select'];
$class .= ' elementor-repeater-item-'. $data['_id'];
$class .= ' wpr-grid-item-display-'. $data['element_display'];
$class .= ' wpr-grid-item-align-'. $data['element_align_hr'];
// Element
$this->get_elements( $data['element_select'], $data, $class, $post_id );
}
echo '
';
}
}
}
// Render Grid Filters
public function render_grid_filters( $settings ) {
$taxonomy = $settings['filters_select'];
// Return if Disabled
if ( '' === $taxonomy || ! isset( $settings[ 'query_taxonomy_'. $taxonomy ] ) ) {
return;
}
// Get Custom Filters
$custom_filters = $settings[ 'query_taxonomy_'. $taxonomy ];
if ( ! wpr_fs()->can_use_premium_code() ) {
$settings['filters_default_filter'] = '';
$settings['filters_icon_align'] = '';
$settings['filters_count'] = '';
$settings['filters_pointer'] = 'none';
$settings['filters_pointer_animation'] = 'none';
}
// Icon
$left_icon = 'left' === $settings['filters_icon_align'] ? '
' : '';
$right_icon = 'right' === $settings['filters_icon_align'] ? '
' : '';
// Separator
$left_separator = 'left' === $settings['filters_separator_align'] ? '
'. esc_attr($settings['filters_separator']) .'' : '';
$right_separator = 'right' === $settings['filters_separator_align'] ? '
'. esc_attr($settings['filters_separator']) .'' : '';
// Count
$post_count = 'yes' === $settings['filters_count'] ? '
' : '';
// Pointer Class
$pointer_class = ' wpr-pointer-'. $settings['filters_pointer'];
$pointer_class .= ' wpr-pointer-line-fx wpr-pointer-fx-'. $settings['filters_pointer_animation'];
$pointer_item_class = (isset($settings['filters_pointer']) && 'none' !== $settings['filters_pointer']) ? 'wpr-pointer-item' : '';
$pointer_item_class_name = (isset($settings['filters_pointer']) && 'none' !== $settings['filters_pointer']) ? 'wpr-pointer-item' : '';
// Filters List
echo '
';
// All Filter
if ( 'yes' === $settings['filters_all'] && 'yes' !== $settings['filters_linkable'] ) {
echo '- ';
echo ''. $left_icon . esc_html($settings['filters_all_text']) . $right_icon . $post_count .''. $right_separator; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
echo '
';
}
// Custom Filters
if ( $settings['query_selection'] === 'dynamic' && ! empty( $custom_filters ) ) {
$parent_filters = [];
foreach ( $custom_filters as $key => $term_id ) {
$filter = get_term_by( 'id', $term_id, $taxonomy );
$data_attr = 'post_tag' === $taxonomy ? 'tag-'. $filter->slug : $taxonomy .'-'. $filter->slug;
// Parent Filters
if ( 0 === $filter->parent ) {
$children = get_term_children( $filter->term_id, $taxonomy );
$data_role = ! empty($children) ? ' data-role="parent"' : '';
echo '- ';
if ( 'yes' !== $settings['filters_linkable'] ) {
echo ''. $left_separator .''. $left_icon . esc_html($filter->name) . $right_icon . $post_count .''. $right_separator; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
} else {
echo ''. $left_separator .''. $left_icon . esc_html($filter->name) . $right_icon . $post_count .''. $right_separator; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
}
echo '
';
// Get Sub Filters
} else {
array_push( $parent_filters, $filter->parent );
}
}
// All Filters
} else {
$all_filters = get_terms( $taxonomy );
$parent_filters = [];
foreach ( $all_filters as $key => $filter ) {
$data_attr = 'post_tag' === $taxonomy ? 'tag-'. $filter->slug : $taxonomy .'-'. $filter->slug;
// Parent Filters
if ( 0 === $filter->parent ) {
$children = get_term_children( $filter->term_id, $taxonomy );
$data_role = ! empty($children) ? ' data-role="parent"' : '';
echo '- ';
if ( 'yes' !== $settings['filters_linkable'] ) {
echo ''. $left_separator .''. $left_icon . esc_html($filter->name) . $right_icon . $post_count .''. $right_separator; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
} else {
echo ''. $left_separator .''. $left_icon . esc_html($filter->name) . $right_icon . $post_count .''. $right_separator; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
}
echo '
';
// Get Sub Filters
} else {
array_push( $parent_filters, $filter->parent );
}
}
}
// Sub Filters
if ( 'yes' !== $settings['filters_linkable'] ) {
foreach ( array_unique( $parent_filters ) as $key => $parent_filter ) {
$parent = get_term_by( 'id', $parent_filter, $taxonomy );
$children = get_term_children( $parent_filter, $taxonomy );
$data_attr = 'post_tag' === $taxonomy ? 'tag-'. $parent->slug : $taxonomy .'-'. $parent->slug;
echo '';
echo '- ';
echo '';
echo ' '. esc_html__( 'Back', 'wpr-addons' );
echo '';
echo '
';
foreach ( $children as $child ) {
$sub_filter = get_term_by( 'id', $child, $taxonomy );
$data_attr = 'post_tag' === $taxonomy ? 'tag-'. $sub_filter->slug : $taxonomy .'-'. $sub_filter->slug;
echo '- ';
echo ''. $left_separator .''. $left_icon . esc_html($sub_filter->name) . $right_icon . $post_count .''. $right_separator; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
echo '
';
}
echo '
';
}
}
echo '
';
}
// Render Grid Pagination
public function render_grid_pagination( $settings ) {
// Return if Disabled
if ( 'yes' !== $settings['layout_pagination'] || 1 === $this->get_max_num_pages( $settings ) || 'slider' === $settings['layout_select'] ) {
return;
}
global $paged;
$pages = $this->get_max_num_pages( $settings );
$paged = empty( $paged ) ? 1 : $paged;
if ( ! wpr_fs()->can_use_premium_code() ) {
$settings['pagination_type'] = 'pro-is' == $settings['pagination_type'] ? 'default' : $settings['pagination_type'];
}
echo '';
}
// Grid Settings
public function add_grid_settings( $settings ) {
if ( ! wpr_fs()->can_use_premium_code() ) {
$settings['filters_deeplinking'] = '';
$settings['filters_count'] = '';
$settings['filters_default_filter'] = '';
if ( 'pro-fd' == $settings['filters_animation'] || 'pro-fs' == $settings['filters_animation'] ) {
$settings['filters_animation'] = 'zoom';
}
}
$gutter_hr_widescreen = isset($settings['layout_gutter_hr_widescreen']['size']) ? $settings['layout_gutter_hr_widescreen']['size'] : $settings['layout_gutter_hr']['size'];
$gutter_hr_desktop = $settings['layout_gutter_hr']['size'];
$gutter_hr_laptop = isset($settings['layout_gutter_hr_laptop']['size']) ? $settings['layout_gutter_hr_laptop']['size'] : $gutter_hr_desktop;
$gutter_hr_tablet_extra = isset($settings['layout_gutter_hr_tablet_extra']['size']) ? $settings['layout_gutter_hr_tablet_extra']['size'] : $gutter_hr_laptop;
$gutter_hr_tablet = isset($settings['layout_gutter_hr_tablet']['size']) ? $settings['layout_gutter_hr_tablet']['size'] : $gutter_hr_tablet_extra;
$gutter_hr_mobile_extra = isset($settings['layout_gutter_hr_mobile_extra']['size']) ? $settings['layout_gutter_hr_mobile_extra']['size'] : $gutter_hr_tablet;
$gutter_hr_mobile = isset($settings['layout_gutter_hr_mobile']['size']) ? $settings['layout_gutter_hr_mobile']['size'] : $gutter_hr_mobile_extra;
$gutter_vr_widescreen = isset($settings['layout_gutter_vr_widescreen']['size']) ? $settings['layout_gutter_vr_widescreen']['size'] : $settings['layout_gutter_vr']['size'];
$gutter_vr_desktop = $settings['layout_gutter_vr']['size'];
$gutter_vr_laptop = isset($settings['layout_gutter_vr_laptop']['size']) ? $settings['layout_gutter_vr_laptop']['size'] : $gutter_vr_desktop;
$gutter_vr_tablet_extra = isset($settings['layout_gutter_vr_tablet_extra']['size']) ? $settings['layout_gutter_vr_tablet_extra']['size'] : $gutter_vr_laptop;
$gutter_vr_tablet = isset($settings['layout_gutter_vr_tablet']['size']) ? $settings['layout_gutter_vr_tablet']['size'] : $gutter_vr_tablet_extra;
$gutter_vr_mobile_extra = isset($settings['layout_gutter_vr_mobile_extra']['size']) ? $settings['layout_gutter_vr_mobile_extra']['size'] : $gutter_vr_tablet;
$gutter_vr_mobile = isset($settings['layout_gutter_vr_mobile']['size']) ? $settings['layout_gutter_vr_mobile']['size'] : $gutter_vr_mobile_extra;
//:TODO
$layout_settings = [
'layout' => $settings['layout_select'],
'columns_desktop' => $settings['layout_columns'],
'gutter_hr' => $gutter_hr_desktop,
'gutter_hr_mobile' => $gutter_hr_mobile,
'gutter_hr_mobile_extra' => $gutter_hr_mobile_extra,
'gutter_hr_tablet' => $gutter_hr_tablet,
'gutter_hr_tablet_extra' => $gutter_hr_tablet_extra,
'gutter_hr_laptop' => $gutter_hr_laptop,
'gutter_hr_widescreen' => $gutter_hr_widescreen,
'gutter_vr' => $gutter_vr_desktop,
'gutter_vr_mobile' => $gutter_vr_mobile,
'gutter_vr_mobile_extra' => $gutter_vr_mobile_extra,
'gutter_vr_tablet' => $gutter_vr_tablet,
'gutter_vr_tablet_extra' => $gutter_vr_tablet_extra,
'gutter_vr_laptop' => $gutter_vr_laptop,
'gutter_vr_widescreen' => $gutter_vr_widescreen,
'animation' => $settings['layout_animation'],
'animation_duration' => $settings['layout_animation_duration'],
'animation_delay' => $settings['layout_animation_delay'],
'deeplinking' => $settings['filters_deeplinking'],
'filters_default_filter' => $settings['filters_default_filter'],
'filters_linkable' => $settings['filters_linkable'],
'filters_count' => $settings['filters_count'],
'filters_hide_empty' => $settings['filters_hide_empty'],
'filters_animation' => $settings['filters_animation'],
'filters_animation_duration' => $settings['filters_animation_duration'],
'filters_animation_delay' => $settings['filters_animation_delay'],
'pagination_type' => $settings['pagination_type'],
'pagination_max_pages' => $this->get_max_num_pages( $settings ),
];
if ( ! wpr_fs()->can_use_premium_code() ) {
$settings['lightbox_popup_thumbnails'] = '';
$settings['lightbox_popup_thumbnails_default'] = '';
$settings['lightbox_popup_sharing'] = '';
}
$layout_settings['lightbox'] = [
'selector' => '.wpr-grid-image-wrap',
'iframeMaxWidth' => '60%',
'hash' => false,
'autoplay' => $settings['lightbox_popup_autoplay'],
'pause' => $settings['lightbox_popup_pause'] * 1000,
'progressBar' => $settings['lightbox_popup_progressbar'],
'counter' => $settings['lightbox_popup_counter'],
'controls' => $settings['lightbox_popup_arrows'],
'getCaptionFromTitleOrAlt' => $settings['lightbox_popup_captions'],
'thumbnail' => $settings['lightbox_popup_thumbnails'],
'showThumbByDefault' => $settings['lightbox_popup_thumbnails_default'],
'share' => $settings['lightbox_popup_sharing'],
'zoom' => $settings['lightbox_popup_zoom'],
'fullScreen' => $settings['lightbox_popup_fullscreen'],
'download' => $settings['lightbox_popup_download'],
];
// $layout_settings['grid_settings'] = [esc_attr( json_encode( $settings ) )];
if ( 'yes' === $settings['filters_experiment'] ) {
$layout_settings['grid_settings'] = $settings;
}
$this->add_render_attribute( 'grid-settings', [
'data-settings' => wp_json_encode( $layout_settings ),
] );
}
// Slider Settings
public function add_slider_settings( $settings ) {
$slider_is_rtl = is_rtl();
$slider_direction = $slider_is_rtl ? 'rtl' : 'ltr';
if ( ! wpr_fs()->can_use_premium_code() ) {
$settings['layout_slider_autoplay'] = '';
$settings['layout_slider_autoplay_duration'] = 0;
$settings['layout_slider_pause_on_hover'] = '';
}
if ( 'pro-3' == $settings['layout_slider_amount'] || 'pro-4' == $settings['layout_slider_amount'] || 'pro-5' == $settings['layout_slider_amount'] || 'pro-6' == $settings['layout_slider_amount'] ) {
$settings['layout_slider_amount'] = 2;
}
$slider_options = [
'rtl' => $slider_is_rtl,
'infinite' => ( $settings['layout_slider_loop'] === 'yes' ),
'speed' => absint( $settings['layout_slider_effect_duration'] * 1000 ),
'arrows' => true,
'dots' => true,
'autoplay' => ( $settings['layout_slider_autoplay'] === 'yes' ),
'autoplaySpeed' => absint( $settings['layout_slider_autoplay_duration'] * 1000 ),
'pauseOnHover' => $settings['layout_slider_pause_on_hover'],
'prevArrow' => '#wpr-grid-slider-prev-'. $this->get_id(),
'nextArrow' => '#wpr-grid-slider-next-'. $this->get_id(),
'sliderSlidesToScroll' => +$settings['layout_slides_to_scroll'],
'sliderRows' => isset($settings['layout_slider_rows']) ? $settings['layout_slider_rows'] : 1
];
if ( ! wpr_fs()->can_use_premium_code() ) {
$settings['lightbox_popup_thumbnails'] = '';
$settings['lightbox_popup_thumbnails_default'] = '';
$settings['lightbox_popup_sharing'] = '';
}
// Lightbox Settings
$slider_options['lightbox'] = [
'selector' => 'article:not(.slick-cloned) .wpr-grid-image-wrap',
'iframeMaxWidth' => '60%',
'hash' => false,
'autoplay' => $settings['lightbox_popup_autoplay'],
'pause' => $settings['lightbox_popup_pause'] * 1000,
'progressBar' => $settings['lightbox_popup_progressbar'],
'counter' => $settings['lightbox_popup_counter'],
'controls' => $settings['lightbox_popup_arrows'],
'getCaptionFromTitleOrAlt' => $settings['lightbox_popup_captions'],
'thumbnail' => $settings['lightbox_popup_thumbnails'],
'showThumbByDefault' => $settings['lightbox_popup_thumbnails_default'],
'share' => $settings['lightbox_popup_sharing'],
'zoom' => $settings['lightbox_popup_zoom'],
'fullScreen' => $settings['lightbox_popup_fullscreen'],
'download' => $settings['lightbox_popup_download']
];
if ( $settings['layout_slider_amount'] === 1 && $settings['layout_slider_effect'] === 'fade' ) {
$slider_options['fade'] = true;
}
$this->add_render_attribute( 'slider-settings', [
'dir' => esc_attr( $slider_direction ),
'data-slick' => wp_json_encode( $slider_options ),
] );
}
protected function render() {
// Get Settings
$settings = $this->get_settings();
// Get Posts
$posts = new \WP_Query( $this->get_main_query_args() );
// Loop: Start
if ( $posts->have_posts() ) :
$post_index = 0;
// Grid Settings
if ( 'slider' !== $settings['layout_select'] ) {
// Filters
$this->render_grid_filters( $settings );
$this->add_grid_settings( $settings );
$render_attribute = $this->get_render_attribute_string( 'grid-settings' );
// Slider Settings
} else {
$this->add_slider_settings( $settings );
$render_attribute = $this->get_render_attribute_string( 'slider-settings' );
}
// Grid Wrap
echo '
';
if ( 'slider' === $settings['layout_select'] ) {
// Slider Navigation
echo '
';
echo '
'. Utilities::get_wpr_icon( $settings['layout_slider_nav_icon'], '' ) .'
'; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
echo '
'. Utilities::get_wpr_icon( $settings['layout_slider_nav_icon'], '' ) .'
'; // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
echo '
';
// Slider Dots
echo '
';
}
// Pagination
$this->render_grid_pagination( $settings );
// No Posts Found
else:
echo '
'. esc_html($settings['query_not_found_text']) .'
';
// Loop: End
endif;
}
}