start_controls_section( 'course_filters_category_section', [ 'label' => __('Category Section', 'acadlix-addon-for-elementor'), 'tab' => Controls_Manager::TAB_CONTENT, ] ); $this->add_control( 'course_list_category_show_category_filter', array( 'label' => __('Show Category Filter', 'acadlix-addon-for-elementor'), 'type' => Controls_Manager::SWITCHER, 'label_on' => __('Show', 'acadlix-addon-for-elementor'), 'label_off' => __('Hide', 'acadlix-addon-for-elementor'), 'return_value' => 'yes', 'default' => 'yes', ) ); $this->add_control( 'course_list_category_show_category_label', array( 'label' => __('Show Category Label', 'acadlix-addon-for-elementor'), 'type' => Controls_Manager::SWITCHER, 'label_on' => __('Show', 'acadlix-addon-for-elementor'), 'label_off' => __('Hide', 'acadlix-addon-for-elementor'), 'return_value' => 'yes', 'default' => 'yes', ) ); $this->add_control( 'course_list_category_default_open', array( 'label' => __('Default Open', 'acadlix-addon-for-elementor'), 'type' => Controls_Manager::SWITCHER, 'label_on' => __('Show', 'acadlix-addon-for-elementor'), 'label_off' => __('Hide', 'acadlix-addon-for-elementor'), 'return_value' => 'yes', 'default' => 'yes', ) ); $this->add_control( 'course_list_category_label_tag', array( 'label' => esc_html__('Select Tag', 'acadlix-addon-for-elementor'), 'type' => Controls_Manager::SELECT, 'options' => array( 'h1' => esc_html('h1'), 'h2' => esc_html('h2'), 'h3' => esc_html('h3'), 'h4' => esc_html('h4'), 'h5' => esc_html('h5'), 'h6' => esc_html('h6'), ), 'default' => 'h3', ) ); $this->add_control( 'course_list_category_label', [ 'label' => __('Title', 'acadlix-addon-for-elementor'), 'type' => Controls_Manager::TEXTAREA, 'default' => __('Filter by Category', 'acadlix-addon-for-elementor'), 'placeholder' => __('Type your title here', 'acadlix-addon-for-elementor'), 'rows' => 3, ] ); $this->end_controls_section(); } protected function register_style_controls() { $wrapper = '{{WRAPPER}} .aelms-course-filters'; $category_label = "{$wrapper} .aelms-category-filter-label"; $category_header = "{$wrapper} .aelms-category-filter-header"; $category = "{$wrapper} .aelms-single-category-filter"; $category_checkbox = "{$category} .aelms-category-filter-checkbox"; $category_checkbox_label = "{$category} .aelms-category-label"; $this->start_controls_section( 'course_filters_category_style_section', [ 'label' => __('Category Style', 'acadlix-addon-for-elementor'), 'tab' => Controls_Manager::TAB_STYLE, ] ); $this->add_control( 'course_filters_category_label_style', array( 'label' => __('Category Label', 'acadlix-addon-for-elementor'), 'type' => Controls_Manager::HEADING, ) ); $this->add_control( 'course_filters_category_label_color', array( 'label' => __('Color', 'acadlix-addon-for-elementor'), 'type' => Controls_Manager::COLOR, 'selectors' => array( $category_label => 'color: {{VALUE}};', ), ) ); $this->add_group_control( Group_Control_Typography::get_type(), array( 'name' => 'course_filters_category_label_typography', 'label' => __('Typography', 'acadlix-addon-for-elementor'), 'selector' => "{$category_label}", ) ); $this->add_control( 'course_filters_category_label_padding', array( 'label' => __('Padding', 'acadlix-addon-for-elementor'), 'type' => Controls_Manager::DIMENSIONS, 'size_units' => array('px', '%'), 'selectors' => array( "{$category_label}" => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};', ), 'default' => [ 'top' => 2, 'right' => 0, 'bottom' => 2, 'left' => 0, 'unit' => 'px', 'isLinked' => false, ], ) ); $this->add_responsive_control( 'course_filters_header_display', [ 'label' => __('Display', 'acadlix-addon-for-elementor'), 'type' => Controls_Manager::SELECT, 'options' => [ 'block' => __('Block', 'acadlix-addon-for-elementor'), 'flex' => __('Flex', 'acadlix-addon-for-elementor'), ], 'selectors' => [ $category_header => 'display: {{VALUE}};', ], 'default' => 'flex', ] ); $this->add_responsive_control( 'course_filters_header_flex_direction', [ 'label' => __('Flex Direction', 'acadlix-addon-for-elementor'), 'type' => Controls_Manager::SELECT, 'options' => [ 'row' => __('Row', 'acadlix-addon-for-elementor'), 'row-reverse' => __('Row Reverse', 'acadlix-addon-for-elementor'), 'column' => __('Column', 'acadlix-addon-for-elementor'), 'column-reverse' => __('Column Reverse', 'acadlix-addon-for-elementor'), ], 'selectors' => [ $category_header => 'flex-direction: {{VALUE}};', ], 'default' => 'row', 'condition' => [ 'course_filters_header_display' => 'flex', ], ] ); $this->add_responsive_control( 'course_filters_header_justify_content', [ 'label' => __('Justify Content', 'acadlix-addon-for-elementor'), 'type' => Controls_Manager::SELECT, 'options' => [ 'flex-start' => __('Flex Start', 'acadlix-addon-for-elementor'), 'flex-end' => __('Flex End', 'acadlix-addon-for-elementor'), 'center' => __('Center', 'acadlix-addon-for-elementor'), 'space-between' => __('Space Between', 'acadlix-addon-for-elementor'), 'space-around' => __('Space Around', 'acadlix-addon-for-elementor'), 'space-evenly' => __('Space Evenly', 'acadlix-addon-for-elementor'), 'stretch' => __('Stretch', 'acadlix-addon-for-elementor'), ], 'selectors' => [ $category_header => 'justify-content: {{VALUE}};', ], 'default' => 'flex-start', 'condition' => [ 'course_filters_header_display' => 'flex', ], ] ); $this->add_responsive_control( 'course_filters_header_align_items', [ 'label' => __('Align Items', 'acadlix-addon-for-elementor'), 'type' => Controls_Manager::SELECT, 'options' => [ 'flex-start' => __('Flex Start', 'acadlix-addon-for-elementor'), 'flex-end' => __('Flex End', 'acadlix-addon-for-elementor'), 'center' => __('Center', 'acadlix-addon-for-elementor'), 'baseline' => __('Baseline', 'acadlix-addon-for-elementor'), 'stretch' => __('Stretch', 'acadlix-addon-for-elementor'), ], 'selectors' => [ $category_header => 'align-items: {{VALUE}};', ], 'default' => 'center', 'condition' => [ 'course_filters_header_display' => 'flex', ], ] ); $this->add_responsive_control( 'course_filters_header_gap', [ 'label' => __('Gap', 'acadlix-addon-for-elementor'), 'type' => \Elementor\Controls_Manager::SLIDER, 'size_units' => ['px', '%', 'em', 'rem', 'custom'], 'range' => [ 'px' => [ 'min' => 0, 'max' => 100, 'step' => 1, ], '%' => [ 'min' => 0, 'max' => 100, ], ], 'default' => [ 'unit' => 'px', 'size' => 2, ], 'selectors' => [ "{$category_header}" => 'gap: {{SIZE}}{{UNIT}};', ], 'condition' => [ 'course_filters_header_display' => 'flex', ], ] ); $this->add_control( 'course_filters_category_style', array( 'label' => __('Category', 'acadlix-addon-for-elementor'), 'type' => Controls_Manager::HEADING, ) ); $this->add_responsive_control( 'course_filters_category_display', [ 'label' => __('Display', 'acadlix-addon-for-elementor'), 'type' => Controls_Manager::SELECT, 'options' => [ 'block' => __('Block', 'acadlix-addon-for-elementor'), 'flex' => __('Flex', 'acadlix-addon-for-elementor'), ], 'selectors' => [ $category => 'display: {{VALUE}};', ], 'default' => 'flex', ] ); $this->add_responsive_control( 'course_filters_category_flex_direction', [ 'label' => __('Flex Direction', 'acadlix-addon-for-elementor'), 'type' => Controls_Manager::SELECT, 'options' => [ 'row' => __('Row', 'acadlix-addon-for-elementor'), 'row-reverse' => __('Row Reverse', 'acadlix-addon-for-elementor'), 'column' => __('Column', 'acadlix-addon-for-elementor'), 'column-reverse' => __('Column Reverse', 'acadlix-addon-for-elementor'), ], 'selectors' => [ $category => 'flex-direction: {{VALUE}};', ], 'default' => 'row', 'condition' => [ 'course_filters_category_display' => 'flex', ], ] ); $this->add_responsive_control( 'course_filters_category_justify_content', [ 'label' => __('Justify Content', 'acadlix-addon-for-elementor'), 'type' => Controls_Manager::SELECT, 'options' => [ 'flex-start' => __('Flex Start', 'acadlix-addon-for-elementor'), 'flex-end' => __('Flex End', 'acadlix-addon-for-elementor'), 'center' => __('Center', 'acadlix-addon-for-elementor'), 'space-between' => __('Space Between', 'acadlix-addon-for-elementor'), 'space-around' => __('Space Around', 'acadlix-addon-for-elementor'), 'space-evenly' => __('Space Evenly', 'acadlix-addon-for-elementor'), 'stretch' => __('Stretch', 'acadlix-addon-for-elementor'), ], 'selectors' => [ $category => 'justify-content: {{VALUE}};', ], 'default' => 'flex-start', 'condition' => [ 'course_filters_category_display' => 'flex', ], ] ); $this->add_responsive_control( 'course_filters_category_align_items', [ 'label' => __('Align Items', 'acadlix-addon-for-elementor'), 'type' => Controls_Manager::SELECT, 'options' => [ 'flex-start' => __('Flex Start', 'acadlix-addon-for-elementor'), 'flex-end' => __('Flex End', 'acadlix-addon-for-elementor'), 'center' => __('Center', 'acadlix-addon-for-elementor'), 'baseline' => __('Baseline', 'acadlix-addon-for-elementor'), 'stretch' => __('Stretch', 'acadlix-addon-for-elementor'), ], 'selectors' => [ $category => 'align-items: {{VALUE}};', ], 'default' => 'center', 'condition' => [ 'course_filters_category_display' => 'flex', ], ] ); $this->add_responsive_control( 'course_filters_category_gap', [ 'label' => __('Gap', 'acadlix-addon-for-elementor'), 'type' => \Elementor\Controls_Manager::SLIDER, 'size_units' => ['px', '%', 'em', 'rem', 'custom'], 'range' => [ 'px' => [ 'min' => 0, 'max' => 100, 'step' => 1, ], '%' => [ 'min' => 0, 'max' => 100, ], ], 'default' => [ 'unit' => 'px', 'size' => 2, ], 'selectors' => [ "{$category}" => 'gap: {{SIZE}}{{UNIT}};', ], 'condition' => [ 'course_filters_category_display' => 'flex', ], ] ); $this->add_control( 'course_filters_category_padding', array( 'label' => __(' Padding', 'acadlix-addon-for-elementor'), 'type' => Controls_Manager::DIMENSIONS, 'size_units' => array('px', '%'), 'selectors' => array( "{$category}" => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};', ), 'default' => [ 'top' => 2, 'right' => 2, 'bottom' => 2, 'left' => 2, 'unit' => 'px', 'isLinked' => true, ], ) ); $this->add_control( 'course_filters_category_checkbox_color', array( 'label' => __('Checkbox Color', 'acadlix-addon-for-elementor'), 'type' => Controls_Manager::COLOR, 'selectors' => array( $category_checkbox => 'accent-color: {{VALUE}};', ), ) ); $this->add_responsive_control( 'course_filters_category_checkbox_size', [ 'label' => __('Checkbox Size', 'acadlix-addon-for-elementor'), 'type' => Controls_Manager::SLIDER, 'size_units' => ['px', 'em', 'rem'], 'range' => [ 'px' => [ 'min' => 10, 'max' => 50, 'step' => 1, ], ], 'default' => [ 'unit' => 'px', 'size' => 16, ], 'selectors' => [ $category_checkbox => 'width: {{SIZE}}{{UNIT}}; height: {{SIZE}}{{UNIT}};', ], ] ); $this->add_control( 'course_filters_category_checkbox_label_color', array( 'label' => __('Label Color', 'acadlix-addon-for-elementor'), 'type' => Controls_Manager::COLOR, 'selectors' => array( $category_checkbox_label => 'color: {{VALUE}};', ), ) ); $this->add_group_control( Group_Control_Typography::get_type(), array( 'name' => 'course_filters_category_checkbox_label_typography', 'label' => __('Label Typography', 'acadlix-addon-for-elementor'), 'selector' => "{$category_checkbox_label}", ) ); $this->add_control( 'course_filters_category_checkbox_label_padding', array( 'label' => __('Label Padding', 'acadlix-addon-for-elementor'), 'type' => Controls_Manager::DIMENSIONS, 'size_units' => array('px', '%'), 'selectors' => array( "{$category_checkbox_label}" => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};', ), 'default' => [ 'top' => 2, 'right' => 4, 'bottom' => 2, 'left' => 4, 'unit' => 'px', 'isLinked' => false, ], ) ); $this->end_controls_section(); } protected function render() { ob_start(); $settings = $this->get_settings_for_display(); include AELMS_PLUGIN_DIR . 'templates/course/filters.php'; $html = ob_get_clean(); echo wp_kses($html, aelms_allowed_html()); } }