model() ->course() ->ofCourse() ->where('post_status', 'publish') ->pluck('post_title', 'ID') ->toArray(); $this->start_controls_section( 'course_review_content', [ 'label' => __('General Settings', 'acadlix-addon-for-elementor'), 'tab' => Controls_Manager::TAB_CONTENT, ] ); $this->add_control( 'course_review_course', array( 'label' => __('Course', 'acadlix-addon-for-elementor'), 'type' => Controls_Manager::SELECT2, 'options' => $courses, 'default' => array(), ) ); $this->add_control( 'course_review_title_display', [ 'label' => __('Show Title', '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_review_html_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' => 'h2', ) ); $this->add_control( 'course_review_title', [ 'label' => __('Title', 'acadlix-addon-for-elementor'), 'type' => Controls_Manager::TEXTAREA, 'default' => __('Course Review:', 'acadlix-addon-for-elementor'), 'placeholder' => __('Type your title here', 'acadlix-addon-for-elementor'), 'rows' => 3, ] ); $this->add_control( 'course_review_basic_display', [ 'label' => __('Show Basic Review', '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_review_breakdown_display', [ 'label' => __('Show Review Breakdown', '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_review_list_display', [ 'label' => __('Show Review List', '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->end_controls_section(); } protected function register_style_controls() { $review_title_selector = '{{WRAPPER}} .aelms-course-review-title'; $this->start_controls_section( 'course_review_style_section', [ 'label' => __('Label', 'acadlix-addon-for-elementor'), 'tab' => Controls_Manager::TAB_STYLE, ] ); $this->add_responsive_control( 'course_review_title_color', [ 'label' => __('Color', 'acadlix-addon-for-elementor'), 'type' => Controls_Manager::COLOR, 'selectors' => [ $review_title_selector => 'color: {{VALUE}};', ], 'default' => '#161616', ] ); $this->add_group_control( Group_Control_Typography::get_type(), [ 'name' => 'course_review_title_typography', 'label' => __('Typography', 'acadlix-addon-for-elementor'), 'selector' => $review_title_selector, ] ); $this->add_responsive_control( 'course_review_title_gap', array( 'label' => __('Gap', 'acadlix-addon-for-elementor'), 'type' => Controls_Manager::SLIDER, 'size_units' => array('px'), 'range' => array( 'px' => array( 'min' => -100, 'max' => 100, ), ), 'selectors' => array( $review_title_selector => 'margin-bottom: {{SIZE}}{{UNIT}};', ), ) ); $this->end_controls_section(); $container = '{{WRAPPER}} .aelms-course-review-container'; $review_summary = "{$container} .aelms-course-review-summary"; $review_basic = "{$review_summary} .aelms-course-review-basic-summary"; $review_basic_rating_value = "{$review_basic} .acadlix-rating-value"; $review_basic_rating_stars = "{$review_basic} .aelms-rating-stars i"; $review_basic_rating_count = "{$review_basic} .aelms-rating-count"; $review_list = "{$container} .aelms-course-reviews-list"; $review_pagination = "{$container} .aelms-course-reviews-pagination"; $review_summary = "{$container} .aelms-course-review-summary"; $this->start_controls_section( 'course_review_summary_content', [ 'label' => __('Review Summary', 'acadlix-addon-for-elementor'), 'tab' => Controls_Manager::TAB_STYLE, ] ); $this->add_responsive_control( 'course_review_summary_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' => [ $review_summary => 'display: {{VALUE}};', ], 'default' => 'flex', ] ); $this->add_responsive_control( 'course_review_summary_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' => [ $review_summary => 'flex-direction: {{VALUE}};', ], 'default' => 'row', 'condition' => [ 'course_review_summary_display' => 'flex', ], ] ); $this->add_responsive_control( 'course_review_summary_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' => [ $review_summary => 'justify-content: {{VALUE}};', ], 'default' => 'flex-start', 'condition' => [ 'course_review_summary_display' => 'flex', ], ] ); $this->add_responsive_control( 'course_review_summary_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' => [ $review_summary => 'align-items: {{VALUE}};', ], 'default' => 'center', 'condition' => [ 'course_review_summary_display' => 'flex', ], ] ); $this->add_responsive_control( 'course_review_summary_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' => [ "{$review_summary}" => 'gap: {{SIZE}}{{UNIT}};', ], 'condition' => [ 'course_review_summary_display' => 'flex', ], ] ); $this->end_controls_section(); $this->start_controls_section( 'course_review_basic_style_section', [ 'label' => __('Review Basic', 'acadlix-addon-for-elementor'), 'tab' => Controls_Manager::TAB_STYLE, ] ); $this->add_responsive_control( 'course_review_rating_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' => [ $review_basic => 'display: {{VALUE}};', ], 'default' => 'flex', ] ); $this->add_responsive_control( 'course_review_rating_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' => [ $review_basic => 'flex-direction: {{VALUE}};', ], 'default' => 'column', 'condition' => [ 'course_review_rating_display' => 'flex', ], ] ); $this->add_responsive_control( 'course_review_rating_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' => [ $review_basic => 'justify-content: {{VALUE}};', ], 'default' => 'flex-start', 'condition' => [ 'course_review_rating_display' => 'flex', ], ] ); $this->add_responsive_control( 'course_review_rating_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' => [ $review_basic => 'align-items: {{VALUE}};', ], 'default' => 'center', 'condition' => [ 'course_review_rating_display' => 'flex', ], ] ); $this->add_responsive_control( 'course_review_rating_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' => [ "{$review_basic}" => 'gap: {{SIZE}}{{UNIT}};', ], 'condition' => [ 'course_review_rating_display' => 'flex', ], ] ); $this->add_control( 'course_review_basic_rating_padding', array( 'label' => __('Padding', 'acadlix-addon-for-elementor'), 'type' => Controls_Manager::DIMENSIONS, 'size_units' => array('px', '%'), 'selectors' => array( "{$review_basic}" => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};', ), ) ); $this->add_control( 'course_review_basic_rating_value_color', array( 'label' => __('Text Color', 'acadlix-addon-for-elementor'), 'type' => Controls_Manager::COLOR, 'selectors' => array( $review_basic_rating_value => 'color: {{VALUE}}' ), 'default' => '#161616', ) ); $this->add_group_control( Group_Control_Typography::get_type(), array( 'name' => 'course_review_basic_rating_value_typography', 'label' => __('Text Typography', 'acadlix-addon-for-elementor'), 'selector' => $review_basic_rating_value, 'fields_options' => array( 'typography' => [ 'default' => 'yes' ], 'font_size' => [ 'default' => [ 'size' => 60, 'unit' => 'px', ] ], ) ) ); $this->add_control( 'course_review_basic_rating_stars_colors', array( 'label' => __('Star Color', 'acadlix-addon-for-elementor'), 'type' => Controls_Manager::COLOR, 'selectors' => array( $review_basic_rating_stars => 'color: {{VALUE}}' ), 'default' => '#ed9700', ) ); $this->add_responsive_control( 'course_review_basic_rating_stars_size', array( 'label' => __('Star Size', 'acadlix-addon-for-elementor'), 'type' => Controls_Manager::SLIDER, 'size_units' => array('px'), 'range' => array( 'px' => array( 'min' => 5, 'max' => 100, ), ), 'default' => array( 'unit' => 'px', 'size' => 16, ), 'selectors' => array( $review_basic_rating_stars => 'font-size: {{SIZE}}{{UNIT}};', ), ) ); $this->add_control( 'course_review_basic_rating_count_color', array( 'label' => __('Label Color', 'acadlix-addon-for-elementor'), 'type' => Controls_Manager::COLOR, 'selectors' => array( $review_basic_rating_count => 'color: {{VALUE}}' ), 'default' => '#161616', ) ); $this->add_group_control( Group_Control_Typography::get_type(), array( 'name' => 'course_review_basic_rating_count_typography', 'label' => __('Typography', 'acadlix-addon-for-elementor'), 'selector' => $review_basic_rating_count, ) ); $this->end_controls_section(); $review_breakdown = "{$review_summary} .aelms-course-review-breakdown"; $review_breakdown_item = "{$review_breakdown} .aelms-review-breakdown-item"; $review_breakdown_star = "{$review_breakdown_item} .aelms-review-breakdown-star i"; $review_breakdown_star_label = "{$review_breakdown_item} .aelms-review_star_label"; $review_breakdown_progress_bar = "{$review_breakdown_item} .aelms-review-progress-bar"; $review_breakdown_progress_value = "{$review_breakdown_item} .aelms-review-progress-value"; $review_breakdown_star_count = "{$review_breakdown_item} .aelms-review-star-count"; $this->start_controls_section( 'course_review_breakdown_style_section', [ 'label' => __('Review Breakdown', 'acadlix-addon-for-elementor'), 'tab' => Controls_Manager::TAB_STYLE, ] ); $this->add_responsive_control( 'course_review_breakdown_padding', array( 'label' => __('Padding', 'acadlix-addon-for-elementor'), 'type' => Controls_Manager::DIMENSIONS, 'size_units' => array('px', '%'), 'selectors' => array( "{$review_breakdown}" => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};', ), ) ); $this->add_control( 'course_review_breakdown_text_color', array( 'label' => __('Text Color', 'acadlix-addon-for-elementor'), 'type' => Controls_Manager::COLOR, 'selectors' => array( "$review_breakdown_star_label , $review_breakdown_star_count" => 'color: {{VALUE}}', ), 'default' => '#161616', ) ); $this->add_group_control( Group_Control_Typography::get_type(), array( 'name' => 'course_review_breakdown_text_typography', 'label' => __('Typography', 'acadlix-addon-for-elementor'), 'selector' => "$review_breakdown_star_label , $review_breakdown_star_count", ) ); $this->add_control( 'course_review_breakdown_rating_stars_colors', array( 'label' => __('Star Color', 'acadlix-addon-for-elementor'), 'type' => Controls_Manager::COLOR, 'selectors' => array( $review_breakdown_star => 'color: {{VALUE}}' ), 'default' => '#ed9700', ) ); $this->add_responsive_control( 'course_review_breakdown_rating_stars_size', array( 'label' => __('Star Size', 'acadlix-addon-for-elementor'), 'type' => Controls_Manager::SLIDER, 'size_units' => array('px'), 'range' => array( 'px' => array( 'min' => 5, 'max' => 100, ), ), 'default' => array( 'unit' => 'px', 'size' => 16, ), 'selectors' => array( $review_breakdown_star => 'font-size: {{SIZE}}{{UNIT}};', ), ) ); $this->add_control( 'course_review_breakdown_rating_progress_color', array( 'label' => __('Filled Color', 'acadlix-addon-for-elementor'), 'type' => Controls_Manager::COLOR, 'selectors' => array( $review_breakdown_progress_value => 'background-color: {{VALUE}}' ), 'default' => '#ed9700', ) ); $this->add_control( 'course_review_breakdown_rating_progress_empty_color', array( 'label' => __('Empty Color', 'acadlix-addon-for-elementor'), 'type' => Controls_Manager::COLOR, 'selectors' => array( $review_breakdown_progress_bar => 'background-color: {{VALUE}}' ), 'default' => '#e3e5eb', ) ); $this->add_responsive_control( 'course_review_breakdown_progress_height', array( 'label' => __('Progress Height', 'acadlix-addon-for-elementor'), 'type' => Controls_Manager::SLIDER, 'size_units' => array('px'), 'range' => array( 'px' => array( 'min' => 5, 'max' => 100, ), ), 'default' => array( 'unit' => 'px', 'size' => 8, ), 'selectors' => array( $review_breakdown_progress_bar => 'height: {{SIZE}}{{UNIT}};', ), ) ); $this->end_controls_section(); $review_list = "{$container} .acadlix-course-reviews-list"; $review_single_list = "{$review_list} .acadlix-course-single-review"; $review_list_image = "{$review_single_list} .acadlix-course-review-user-avatar"; $review_list_user_name = "{$review_list} .acadlix-course-review-user-name"; $review_list_date = "{$review_list} .acadlix-course-review-date"; $review_list_star = "{$review_list} .acadlix-single-course-review-stars i"; $review_list_review_text = "{$review_list} .acadlix-user-review"; $this->start_controls_section( 'course_review_list_style_section', [ 'label' => __('Review List', 'acadlix-addon-for-elementor'), 'tab' => Controls_Manager::TAB_STYLE, ] ); $this->add_responsive_control( 'course_review_list_padding', array( 'label' => __('Padding', 'acadlix-addon-for-elementor'), 'type' => Controls_Manager::DIMENSIONS, 'size_units' => array('px', '%'), 'selectors' => array( "{$review_single_list}" => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};', ), 'default' => array( 'unit' => 'px', 'top' => 10, 'right' => 10, 'bottom' => 10, 'left' => 10, ) ) ); $this->add_control( 'course_review_list_image_divider', array( 'type' => Controls_Manager::DIVIDER, ) ); $this->add_control( 'course_review_list_image_header', array( 'label' => __('Image', 'acadlix-addon-for-elementor'), 'type' => Controls_Manager::HEADING, ) ); $this->add_control( 'course_review_list_image_size', array( 'label' => __('Image Size', 'acadlix-addon-for-elementor'), 'type' => Controls_Manager::SLIDER, 'size_units' => array('px'), 'range' => array( 'px' => array( 'min' => 10, 'max' => 200, ), ), 'default' => array( 'size' => 52, 'unit' => 'px', ), 'selectors' => array( "{$review_list_image}" => 'height: {{SIZE}}{{UNIT}}; width: {{SIZE}}{{UNIT}}', ), ) ); $this->add_group_control( \Elementor\Group_Control_Css_Filter::get_type(), [ 'name' => 'course_review_list_image_css_filter', 'selector' => "{$review_list_image}", ] ); $this->add_group_control( \Elementor\Group_Control_Border::get_type(), [ 'name' => 'course_review_list_image_border', 'selector' => "{$review_list_image}", ] ); $this->add_responsive_control( 'course_review_list_image_border_radius', [ 'label' => __('Border Radius', 'acadlix-addon-for-elementor'), 'type' => Controls_Manager::DIMENSIONS, 'size_units' => ['px', '%'], 'selectors' => [ "{$review_list_image}" => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};', ], 'default' => [ 'top' => 0, 'right' => 0, 'bottom' => 0, 'left' => 0, 'unit' => 'px', 'isLinked' => true ], ] ); $this->add_group_control( \Elementor\Group_Control_Box_Shadow::get_type(), [ 'name' => 'course_review_list_image_box_shadow', 'label' => __('Box Shadow', 'acadlix-addon-for-elementor'), 'selector' => "{$review_list_image}", ] ); $this->add_control( 'course_review_list_user_divider', array( 'type' => Controls_Manager::DIVIDER, ) ); $this->add_control( 'course_review_list_user_text_color', array( 'label' => __('User Color', 'acadlix-addon-for-elementor'), 'type' => Controls_Manager::COLOR, 'selectors' => array( "$review_list_user_name" => 'color: {{VALUE}}', ), 'default' => '#161616', ) ); $this->add_group_control( Group_Control_Typography::get_type(), array( 'name' => 'course_review_list_user_text_typography', 'label' => __('User Typography', 'acadlix-addon-for-elementor'), 'selector' => "$review_list_user_name", ) ); $this->add_control( 'course_review_list_date_text_color', array( 'label' => __('Date Color', 'acadlix-addon-for-elementor'), 'type' => Controls_Manager::COLOR, 'selectors' => array( "$review_list_date" => 'color: {{VALUE}}', ), 'default' => '#161616', ) ); $this->add_group_control( Group_Control_Typography::get_type(), array( 'name' => 'course_review_list_date_text_typography', 'label' => __('Date Typography', 'acadlix-addon-for-elementor'), 'selector' => "$review_list_date", ) ); $this->add_control( 'course_review_list_star_text_color', array( 'label' => __('Star Color', 'acadlix-addon-for-elementor'), 'type' => Controls_Manager::COLOR, 'selectors' => array( "$review_list_star" => 'color: {{VALUE}}', ), 'default' => '#ed9700', ) ); $this->add_group_control( Group_Control_Typography::get_type(), array( 'name' => 'course_review_list_star_text_typography', 'label' => __('Star Typography', 'acadlix-addon-for-elementor'), 'selector' => "$review_list_star", ) ); $this->add_control( 'course_review_list_review_text_color', array( 'label' => __('Review Color', 'acadlix-addon-for-elementor'), 'type' => Controls_Manager::COLOR, 'selectors' => array( "$review_list_review_text" => 'color: {{VALUE}}', ), 'default' => '#161616', ) ); $this->add_group_control( Group_Control_Typography::get_type(), array( 'name' => 'course_review_list_review_text_typography', 'label' => __('Review Typography', 'acadlix-addon-for-elementor'), 'selector' => "$review_list_review_text", ) ); $this->end_controls_section(); $load_more_button = "{$review_pagination} .aelms-load-more-reviews-button"; $this->start_controls_section( 'course_review_load_more_button_style_section', [ 'label' => __('Load More Button', 'acadlix-addon-for-elementor'), 'tab' => Controls_Manager::TAB_STYLE, ] ); $this->add_responsive_control( 'course_review_load_more_button_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' => [ $review_pagination => 'display: {{VALUE}};', ], 'default' => 'flex', ] ); $this->add_responsive_control( 'course_review_load_more_button_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' => [ $review_pagination => 'flex-direction: {{VALUE}};', ], 'default' => 'column', 'condition' => [ 'course_review_load_more_button_display' => 'flex', ], ] ); $this->add_responsive_control( 'course_review_load_more_button_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' => [ $review_pagination => 'justify-content: {{VALUE}};', ], 'default' => 'flex-start', 'condition' => [ 'course_review_load_more_button_display' => 'flex', ], ] ); $this->add_responsive_control( 'course_review_load_more_button_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' => [ $review_pagination => 'align-items: {{VALUE}};', ], 'default' => 'center', 'condition' => [ 'course_review_load_more_button_display' => 'flex', ], ] ); $this->add_responsive_control( 'course_review_load_more_button_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' => [ "{$review_pagination}" => 'gap: {{SIZE}}{{UNIT}};', ], 'condition' => [ 'course_review_load_more_button_display' => 'flex', ], ] ); $this->add_control( 'course_review_load_more_button_padding', array( 'label' => __('Padding', 'acadlix-addon-for-elementor'), 'type' => Controls_Manager::DIMENSIONS, 'size_units' => array('px', '%'), 'selectors' => array( "{$load_more_button}" => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};', ), ) ); $this->add_control( 'course_review_load_more_button_margin', array( 'label' => __('Margin', 'acadlix-addon-for-elementor'), 'type' => Controls_Manager::DIMENSIONS, 'size_units' => array('px', '%'), 'selectors' => array( "{$load_more_button}" => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};', ), ) ); $this->start_controls_tabs( 'course_review_load_more_button_style_tabs' ); $this->start_controls_tab( 'course_review_load_more_button_style_normal', [ 'label' => __('Normal', 'acadlix-addon-for-elementor'), ] ); $this->add_responsive_control( 'course_review_load_more_button_color', [ 'label' => __('Color', 'acadlix-addon-for-elementor'), 'type' => Controls_Manager::COLOR, 'selectors' => [ "{$load_more_button}" => 'color: {{VALUE}};', ], 'default' => '#fff', ] ); $this->add_responsive_control( 'course_review_load_more_button_background_color', [ 'label' => __('Background Color', 'acadlix-addon-for-elementor'), 'type' => Controls_Manager::COLOR, 'selectors' => [ "{$load_more_button}" => 'background-color: {{VALUE}};', ], 'default' => '#0073e6', ] ); $this->add_group_control( Group_Control_Typography::get_type(), [ 'name' => 'course_review_load_more_button_typography', 'label' => __('Typography', 'acadlix-addon-for-elementor'), 'selector' => "{$load_more_button}", 'fields_options' => [ 'typography' => [ 'default' => 'yes' ], 'font_size' => [ 'default' => [ 'unit' => 'px', 'size' => 14, ], ], 'font_weight' => [ 'default' => 500 ], ], ] ); $this->end_controls_tab(); $this->start_controls_tab( 'course_review_load_more_button_style_hover', [ 'label' => __('Hover', 'acadlix-addon-for-elementor'), ] ); $this->add_responsive_control( 'course_review_load_more_button_hover_color', [ 'label' => __('Color', 'acadlix-addon-for-elementor'), 'type' => Controls_Manager::COLOR, 'selectors' => [ "{$load_more_button}:hover" => 'color: {{VALUE}};', ], ] ); $this->add_responsive_control( 'course_review_load_more_button_hover_background_color', [ 'label' => __('Background Color', 'acadlix-addon-for-elementor'), 'type' => Controls_Manager::COLOR, 'selectors' => [ "{$load_more_button}:hover" => 'background-color: {{VALUE}};', ], ] ); $this->add_group_control( Group_Control_Typography::get_type(), [ 'name' => 'course_review_load_more_button_hover_typography', 'label' => __('Typography', 'acadlix-addon-for-elementor'), 'selector' => "{$load_more_button}:hover", 'fields_options' => [ 'typography' => [ 'default' => 'yes' ], 'font_size' => [ 'default' => [ 'unit' => 'px', 'size' => 14, ], ], 'font_weight' => [ 'default' => 500 ], ], ] ); $this->end_controls_tabs(); $this->add_group_control( \Elementor\Group_Control_Border::get_type(), [ 'name' => 'course_review_load_more_button_border', 'label' => __('Border', 'acadlix-addon-for-elementor'), 'selector' => "{$load_more_button}", ] ); $this->add_responsive_control( 'course_review_load_more_button_border_radius', [ 'label' => __('Border Radius', 'acadlix-addon-for-elementor'), 'type' => Controls_Manager::DIMENSIONS, 'size_units' => ['px', '%'], 'selectors' => [ "{$load_more_button}" => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};', ], 'default' => [ 'top' => 6, 'right' => 6, 'bottom' => 6, 'left' => 6, 'unit' => 'px', 'isLinked' => true ], ] ); $this->add_group_control( \Elementor\Group_Control_Box_Shadow::get_type(), [ 'name' => 'course_review_load_more_button_box_shadow', 'label' => __('Box Shadow', 'acadlix-addon-for-elementor'), 'selector' => "{$load_more_button}", ] ); $this->end_controls_section(); $add_edit_button_container = "{$container} .aelms-add-edit-review-button-container"; $add_edit_button = "{$container} .aelms-add-edit-review-button"; $this->start_controls_section( 'course_review_add_edit_button_style_section', [ 'label' => __('Add/Edit Review Button', 'acadlix-addon-for-elementor'), 'tab' => Controls_Manager::TAB_STYLE, ] ); $this->add_responsive_control( 'course_review_add_edit_button_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' => [ $add_edit_button_container => 'display: {{VALUE}};', ], 'default' => 'block', ] ); $this->add_responsive_control( 'course_review_add_edit_button_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' => [ $add_edit_button_container => 'flex-direction: {{VALUE}};', ], 'default' => 'column', 'condition' => [ 'course_review_add_edit_button_display' => 'flex', ], ] ); $this->add_responsive_control( 'course_review_add_edit_button_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' => [ $add_edit_button_container => 'justify-content: {{VALUE}};', ], 'default' => 'flex-start', 'condition' => [ 'course_review_add_edit_button_display' => 'flex', ], ] ); $this->add_responsive_control( 'course_review_add_edit_button_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' => [ $add_edit_button_container => 'align-items: {{VALUE}};', ], 'default' => 'center', 'condition' => [ 'course_review_add_edit_button_display' => 'flex', ], ] ); $this->add_responsive_control( 'course_review_add_edit_button_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' => [ "{$add_edit_button_container}" => 'gap: {{SIZE}}{{UNIT}};', ], 'condition' => [ 'course_review_add_edit_button_display' => 'flex', ], ] ); $this->add_control( 'course_review_add_edit_button_padding', array( 'label' => __('Padding', 'acadlix-addon-for-elementor'), 'type' => Controls_Manager::DIMENSIONS, 'size_units' => array('px', '%'), 'selectors' => array( "{$add_edit_button}" => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};', ), ) ); $this->add_control( 'course_review_add_edit_button_margin', array( 'label' => __('Margin', 'acadlix-addon-for-elementor'), 'type' => Controls_Manager::DIMENSIONS, 'size_units' => array('px', '%'), 'selectors' => array( "{$add_edit_button}" => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};', ), ) ); $this->start_controls_tabs( 'course_review_add_edit_button_style_tabs' ); $this->start_controls_tab( 'course_review_add_edit_button_style_normal', [ 'label' => __('Normal', 'acadlix-addon-for-elementor'), ] ); $this->add_responsive_control( 'course_review_add_edit_button_color', [ 'label' => __('Color', 'acadlix-addon-for-elementor'), 'type' => Controls_Manager::COLOR, 'selectors' => [ "{$add_edit_button}" => 'color: {{VALUE}};', ], 'default' => '#fff', ] ); $this->add_responsive_control( 'course_review_add_edit_button_background_color', [ 'label' => __('Background Color', 'acadlix-addon-for-elementor'), 'type' => Controls_Manager::COLOR, 'selectors' => [ "{$add_edit_button}" => 'background-color: {{VALUE}};', ], 'default' => '#0073e6', ] ); $this->add_group_control( Group_Control_Typography::get_type(), [ 'name' => 'course_review_add_edit_button_typography', 'label' => __('Typography', 'acadlix-addon-for-elementor'), 'selector' => "{$add_edit_button}", 'fields_options' => [ 'typography' => [ 'default' => 'yes' ], 'font_size' => [ 'default' => [ 'unit' => 'px', 'size' => 14, ], ], 'font_weight' => [ 'default' => 500 ], ], ] ); $this->end_controls_tab(); $this->start_controls_tab( 'course_review_add_edit_button_style_hover', [ 'label' => __('Hover', 'acadlix-addon-for-elementor'), ] ); $this->add_responsive_control( 'course_review_add_edit_button_hover_color', [ 'label' => __('Color', 'acadlix-addon-for-elementor'), 'type' => Controls_Manager::COLOR, 'selectors' => [ "{$add_edit_button}:hover" => 'color: {{VALUE}};', ], ] ); $this->add_responsive_control( 'course_review_add_edit_button_hover_background_color', [ 'label' => __('Background Color', 'acadlix-addon-for-elementor'), 'type' => Controls_Manager::COLOR, 'selectors' => [ "{$add_edit_button}:hover" => 'background-color: {{VALUE}};', ], ] ); $this->add_group_control( Group_Control_Typography::get_type(), [ 'name' => 'course_review_add_edit_button_hover_typography', 'label' => __('Typography', 'acadlix-addon-for-elementor'), 'selector' => "{$add_edit_button}:hover", 'fields_options' => [ 'typography' => [ 'default' => 'yes' ], 'font_size' => [ 'default' => [ 'unit' => 'px', 'size' => 14, ], ], 'font_weight' => [ 'default' => 500 ], ], ] ); $this->end_controls_tabs(); $this->add_group_control( \Elementor\Group_Control_Border::get_type(), [ 'name' => 'course_review_add_edit_button_border', 'label' => __('Border', 'acadlix-addon-for-elementor'), 'selector' => "{$add_edit_button}", ] ); $this->add_responsive_control( 'course_review_add_edit_button_border_radius', [ 'label' => __('Border Radius', 'acadlix-addon-for-elementor'), 'type' => Controls_Manager::DIMENSIONS, 'size_units' => ['px', '%'], 'selectors' => [ "{$add_edit_button}" => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};', ], 'default' => [ 'top' => 6, 'right' => 6, 'bottom' => 6, 'left' => 6, 'unit' => 'px', 'isLinked' => true ], ] ); $this->add_group_control( \Elementor\Group_Control_Box_Shadow::get_type(), [ 'name' => 'course_review_add_edit_button_box_shadow', 'label' => __('Box Shadow', 'acadlix-addon-for-elementor'), 'selector' => "{$add_edit_button}", ] ); $this->end_controls_section(); $review_form = "{$container} .aelms-course-review-form-container"; $review_form_star_container = "{$review_form} .acadlix-rating-stars"; $review_form_star = "{$review_form} .acadlix-rating-stars i"; $review_form_textarea = "{$review_form} .acadlix-rating-textarea"; $review_form_button = "{$review_form} .acadlix-submit-review-btn"; $this->start_controls_section( 'course_review_form_section', [ 'label' => __('Review Form', 'acadlix-addon-for-elementor'), 'tab' => Controls_Manager::TAB_STYLE, ] ); $this->add_control( 'course_review_form_padding', array( 'label' => __('Padding', 'acadlix-addon-for-elementor'), 'type' => Controls_Manager::DIMENSIONS, 'size_units' => array('px', '%'), 'selectors' => array( "{$review_form}" => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};', ), ) ); $this->add_control( 'course_review_form_star_divider', array( 'type' => Controls_Manager::DIVIDER, ) ); $this->add_control( 'course_review_form_star_header', array( 'label' => __('Star', 'acadlix-addon-for-elementor'), 'type' => Controls_Manager::HEADING, ) ); $this->add_control( 'course_review_form_star_padding', array( 'label' => __('Padding', 'acadlix-addon-for-elementor'), 'type' => Controls_Manager::DIMENSIONS, 'size_units' => array('px', '%'), 'selectors' => array( "{$review_form_star_container}" => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};', ), ) ); $this->add_control( 'course_review_form_star_text_color', array( 'label' => __('Star Color', 'acadlix-addon-for-elementor'), 'type' => Controls_Manager::COLOR, 'selectors' => array( "$review_form_star" => 'color: {{VALUE}}', ), 'default' => '#ed9700', ) ); $this->add_group_control( Group_Control_Typography::get_type(), array( 'name' => 'course_review_form_star_text_typography', 'label' => __('Star Typography', 'acadlix-addon-for-elementor'), 'selector' => "$review_form_star", ) ); $this->add_control( 'course_review_form_textarea_divider', array( 'type' => Controls_Manager::DIVIDER, ) ); $this->add_control( 'course_review_form_textarea_header', array( 'label' => __('Textarea', 'acadlix-addon-for-elementor'), 'type' => Controls_Manager::HEADING, ) ); $this->add_control( 'course_review_form_textarea_margin', array( 'label' => __('Margin', 'acadlix-addon-for-elementor'), 'type' => Controls_Manager::DIMENSIONS, 'size_units' => array('px', '%'), 'selectors' => array( "{$review_form_textarea}" => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};', ), ) ); $this->add_control( 'course_review_form_button_divider', array( 'type' => Controls_Manager::DIVIDER, ) ); $this->add_control( 'course_review_form_button_header', array( 'label' => __('Submit Button', 'acadlix-addon-for-elementor'), 'type' => Controls_Manager::HEADING, ) ); $this->add_control( 'course_review_form_button_padding', array( 'label' => __('Padding', 'acadlix-addon-for-elementor'), 'type' => Controls_Manager::DIMENSIONS, 'size_units' => array('px', '%'), 'selectors' => array( "{$review_form_button}" => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};', ), ) ); $this->add_control( 'course_review_form_button_margin', array( 'label' => __('Margin', 'acadlix-addon-for-elementor'), 'type' => Controls_Manager::DIMENSIONS, 'size_units' => array('px', '%'), 'selectors' => array( "{$review_form_button}" => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};', ), ) ); $this->start_controls_tabs( 'course_review_form_button_style_tabs' ); $this->start_controls_tab( 'course_review_form_button_style_normal', [ 'label' => __('Normal', 'acadlix-addon-for-elementor'), ] ); $this->add_responsive_control( 'course_review_form_button_color', [ 'label' => __('Color', 'acadlix-addon-for-elementor'), 'type' => Controls_Manager::COLOR, 'selectors' => [ "{$review_form_button}" => 'color: {{VALUE}};', ], 'default' => '#fff', ] ); $this->add_responsive_control( 'course_review_form_button_background_color', [ 'label' => __('Background Color', 'acadlix-addon-for-elementor'), 'type' => Controls_Manager::COLOR, 'selectors' => [ "{$review_form_button}" => 'background-color: {{VALUE}};', ], 'default' => '#0073e6', ] ); $this->add_group_control( Group_Control_Typography::get_type(), [ 'name' => 'course_review_form_button_typography', 'label' => __('Typography', 'acadlix-addon-for-elementor'), 'selector' => "{$review_form_button}", 'fields_options' => [ 'typography' => [ 'default' => 'yes' ], 'font_size' => [ 'default' => [ 'unit' => 'px', 'size' => 14, ], ], 'font_weight' => [ 'default' => 500 ], ], ] ); $this->end_controls_tab(); $this->start_controls_tab( 'course_review_form_button_style_hover', [ 'label' => __('Hover', 'acadlix-addon-for-elementor'), ] ); $this->add_responsive_control( 'course_review_form_button_hover_color', [ 'label' => __('Color', 'acadlix-addon-for-elementor'), 'type' => Controls_Manager::COLOR, 'selectors' => [ "{$review_form_button}:hover" => 'color: {{VALUE}};', ], ] ); $this->add_responsive_control( 'course_review_form_button_hover_background_color', [ 'label' => __('Background Color', 'acadlix-addon-for-elementor'), 'type' => Controls_Manager::COLOR, 'selectors' => [ "{$review_form_button}:hover" => 'background-color: {{VALUE}};', ], ] ); $this->add_group_control( Group_Control_Typography::get_type(), [ 'name' => 'course_review_form_button_hover_typography', 'label' => __('Typography', 'acadlix-addon-for-elementor'), 'selector' => "{$review_form_button}:hover", 'fields_options' => [ 'typography' => [ 'default' => 'yes' ], 'font_size' => [ 'default' => [ 'unit' => 'px', 'size' => 14, ], ], 'font_weight' => [ 'default' => 500 ], ], ] ); $this->end_controls_tabs(); $this->add_group_control( \Elementor\Group_Control_Border::get_type(), [ 'name' => 'course_review_form_button_border', 'label' => __('Border', 'acadlix-addon-for-elementor'), 'selector' => "{$review_form_button}", ] ); $this->add_responsive_control( 'course_review_form_button_border_radius', [ 'label' => __('Border Radius', 'acadlix-addon-for-elementor'), 'type' => Controls_Manager::DIMENSIONS, 'size_units' => ['px', '%'], 'selectors' => [ "{$review_form_button}" => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};', ], 'default' => [ 'top' => 6, 'right' => 6, 'bottom' => 6, 'left' => 6, 'unit' => 'px', 'isLinked' => true ], ] ); $this->add_group_control( \Elementor\Group_Control_Box_Shadow::get_type(), [ 'name' => 'course_review_form_button_box_shadow', 'label' => __('Box Shadow', 'acadlix-addon-for-elementor'), 'selector' => "{$review_form_button}", ] ); $this->end_controls_section(); } protected function render() { $course = aelms_get_course(); if ($course) { ob_start(); $settings = $this->get_settings_for_display(); include AELMS_PLUGIN_DIR . 'templates/course/review.php'; $html = ob_get_clean(); echo $html; // phpcs:ignore } } }