PluginProbe
UiCore Elements – Free widgets and templates for Elementor / 1.3.17
UiCore Elements – Free widgets and templates for Elementor v1.3.17
1.3.17 1.3.16 trunk 1.0.0 1.0.1 1.0.10 1.0.11 1.0.12 1.0.13 1.0.14 1.0.15 1.0.16 1.0.2 1.0.3 1.0.4 1.0.5 1.0.6 1.0.7 1.0.8 1.0.9 1.2.0 1.2.1 1.2.2 1.2.3 1.2.4 All 41 releases
← All changes | includes/utils/testimonial-component.php +847 -837 1.2.11.3.17 View file →
@@ -1,5 +1,6 @@
1 1 <?php
2 +
2 3 namespace UiCoreElements\Utils;
3 4
4 5 use Elementor\Controls_Manager;
5 6 use Elementor\Plugin;
@@ -16,9 +17,10 @@
16 17
17 18
18 19 defined('ABSPATH') || exit();
19 20
20 -trait Testimonial_Trait {
21 +trait Testimonial_Trait
22 +{
21 23
22 24 // Content Controls Functions
23 25 function TRAIT_register_testimonial_repeater_controls($logo)
24 26 {
@@ -25,137 +27,137 @@
25 27 $this->start_controls_section(
26 28 'section_reviewer_content',
27 29 [
28 30 /* translators: %s: Control title */
29 - 'label' => esc_html( sprintf('%s', $logo), 'uicore-elements'),
31 + 'label' => esc_html(sprintf('%s', $logo), 'uicore-elements'),
30 32 'tab' => Controls_Manager::TAB_CONTENT,
31 33 ]
32 34 );
33 35
34 - $repeater = new Repeater();
36 + $repeater = new Repeater();
35 37
36 - $repeater->add_control(
37 - 'avatar',
38 - [
39 - 'label' => __('Avatar', 'uicore-elements'),
40 - 'type' => Controls_Manager::MEDIA,
41 - 'render_type' => 'template',
42 - 'dynamic' => [
43 - 'active' => true,
38 + $repeater->add_control(
39 + 'avatar',
40 + [
41 + 'label' => __('Avatar', 'uicore-elements'),
42 + 'type' => Controls_Manager::MEDIA,
43 + 'render_type' => 'template',
44 + 'dynamic' => [
45 + 'active' => true,
46 + ],
47 + 'default' => [
48 + 'url' => Utils::get_placeholder_image_src(),
49 + ],
50 + ]
51 + );
52 + $repeater->add_control(
53 + 'reviewer_name',
54 + [
55 + 'label' => __('Name', 'uicore-elements'),
56 + 'type' => Controls_Manager::TEXT,
57 + 'dynamic' => [
58 + 'active' => true,
59 + ],
60 + 'default' => __('Adam Smith', 'uicore-elements'),
61 + 'placeholder' => __('Enter reviewer name', 'uicore-elements'),
62 + 'label_block' => true,
63 + ]
64 + );
65 + $repeater->add_control(
66 + 'reviewer_job_title',
67 + [
68 + 'label' => __('Job Title', 'uicore-elements'),
69 + 'type' => Controls_Manager::TEXT,
70 + 'dynamic' => [
71 + 'active' => true,
72 + ],
73 + 'default' => __('SEO Expert', 'uicore-elements'),
74 + 'placeholder' => __('Enter reviewer job title', 'uicore-elements'),
75 + 'label_block' => true,
76 + ]
77 + );
78 + $repeater->add_control(
79 + 'rating_number',
80 + [
81 + 'label' => __('Rating', 'uicore-elements'),
82 + 'type' => Controls_Manager::SLIDER,
83 + 'size_units' => ['px'],
84 + 'default' => [
85 + 'size' => 4.5,
86 + ],
87 + 'range' => [
88 + 'px' => [
89 + 'min' => 0,
90 + 'max' => 5,
91 + 'step' => .5,
44 92 ],
45 - 'default' => [
46 - 'url' => Utils::get_placeholder_image_src(),
93 + ],
94 + 'dynamic' => [
95 + 'active' => true,
96 + ],
97 + ]
98 + );
99 + $repeater->add_control(
100 + 'review_text',
101 + [
102 + 'label' => __('Review Text', 'uicore-elements'),
103 + 'type' => Controls_Manager::WYSIWYG,
104 + 'dynamic' => [
105 + 'active' => true,
106 + ],
107 + 'default' => __('Click edit button to change this text. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut elit tellus, luctus nec ullamcorper mattis, pulvinar dapibus leo.', 'uicore-elements'),
108 + 'placeholder' => __('Enter review text', 'uicore-elements'),
109 + ]
110 + );
111 + $repeater->add_control(
112 + 'image',
113 + [
114 + 'label' => __('Secondary Image', 'uicore-elements'),
115 + 'type' => Controls_Manager::MEDIA,
116 + 'render_type' => 'template',
117 + 'dynamic' => [
118 + 'active' => true,
119 + ],
120 + 'default' => [
121 + 'url' => Utils::get_placeholder_image_src(),
122 + ],
123 + ]
124 + );
125 + $this->add_control(
126 + 'review_items',
127 + [
128 + 'show_label' => false,
129 + 'type' => Controls_Manager::REPEATER,
130 + 'fields' => $repeater->get_controls(),
131 + 'title_field' => '{{{ reviewer_name }}}',
132 + 'default' => [
133 + [
134 + 'reviewer_name' => __('Adam', 'uicore-elements'),
135 + 'reviewer_job_title' => __('SEO Expert', 'uicore-elements'),
47 136 ],
48 - ]
49 - );
50 - $repeater->add_control(
51 - 'reviewer_name',
52 - [
53 - 'label' => __('Name', 'uicore-elements'),
54 - 'type' => Controls_Manager::TEXT,
55 - 'dynamic' => [
56 - 'active' => true,
137 + [
138 + 'reviewer_name' => __('Karl', 'uicore-elements'),
139 + 'reviewer_job_title' => __('Designer', 'uicore-elements'),
57 140 ],
58 - 'default' => __('Adam Smith', 'uicore-elements'),
59 - 'placeholder' => __('Enter reviewer name', 'uicore-elements'),
60 - 'label_block' => true,
61 - ]
62 - );
63 - $repeater->add_control(
64 - 'reviewer_job_title',
65 - [
66 - 'label' => __('Job Title', 'uicore-elements'),
67 - 'type' => Controls_Manager::TEXT,
68 - 'dynamic' => [
69 - 'active' => true,
141 + [
142 + 'reviewer_name' => __('Maria', 'uicore-elements'),
143 + 'reviewer_job_title' => __('Developer', 'uicore-elements'),
70 144 ],
71 - 'default' => __('SEO Expert', 'uicore-elements'),
72 - 'placeholder' => __('Enter reviewer job title', 'uicore-elements'),
73 - 'label_block' => true,
74 - ]
75 - );
76 - $repeater->add_control(
77 - 'rating_number',
78 - [
79 - 'label' => __( 'Rating', 'uicore-elements' ),
80 - 'type' => Controls_Manager::SLIDER,
81 - 'size_units' => [ 'px' ],
82 - 'default' => [
83 - 'size' => 4.5,
145 + [
146 + 'reviewer_name' => __('Michael', 'uicore-elements'),
147 + 'reviewer_job_title' => __('Manager', 'uicore-elements'),
84 148 ],
85 - 'range' => [
86 - 'px' => [
87 - 'min' => 0,
88 - 'max' => 5,
89 - 'step' => .5,
90 - ],
149 + [
150 + 'reviewer_name' => __('Lena', 'uicore-elements'),
151 + 'reviewer_job_title' => __('CEO', 'uicore-elements'),
91 152 ],
92 - 'dynamic' => [
93 - 'active' => true,
153 + [
154 + 'reviewer_name' => __('Jennifer', 'uicore-elements'),
155 + 'reviewer_job_title' => __('Consultant', 'uicore-elements'),
94 156 ],
95 157 ]
96 - );
97 - $repeater->add_control(
98 - 'review_text',
99 - [
100 - 'label' => __('Review Text', 'uicore-elements'),
101 - 'type' => Controls_Manager::WYSIWYG,
102 - 'dynamic' => [
103 - 'active' => true,
104 - ],
105 - 'default' => __('Click edit button to change this text. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut elit tellus, luctus nec ullamcorper mattis, pulvinar dapibus leo.', 'uicore-elements'),
106 - 'placeholder' => __('Enter review text', 'uicore-elements'),
107 - ]
108 - );
109 - $repeater->add_control(
110 - 'image',
111 - [
112 - 'label' => __('Secondary Image', 'uicore-elements'),
113 - 'type' => Controls_Manager::MEDIA,
114 - 'render_type' => 'template',
115 - 'dynamic' => [
116 - 'active' => true,
117 - ],
118 - 'default' => [
119 - 'url' => Utils::get_placeholder_image_src(),
120 - ],
121 - ]
122 - );
123 - $this->add_control(
124 - 'review_items',
125 - [
126 - 'show_label' => false,
127 - 'type' => Controls_Manager::REPEATER,
128 - 'fields' => $repeater->get_controls(),
129 - 'title_field' => '{{{ reviewer_name }}}',
130 - 'default' => [
131 - [
132 - 'reviewer_name' => __( 'Adam', 'uicore-elements' ),
133 - 'reviewer_job_title' => __( 'SEO Expert', 'uicore-elements' ),
134 - ],
135 - [
136 - 'reviewer_name' => __( 'Karl', 'uicore-elements' ),
137 - 'reviewer_job_title' => __( 'Designer', 'uicore-elements' ),
138 - ],
139 - [
140 - 'reviewer_name' => __( 'Maria', 'uicore-elements' ),
141 - 'reviewer_job_title' => __( 'Developer', 'uicore-elements' ),
142 - ],
143 - [
144 - 'reviewer_name' => __( 'Michael', 'uicore-elements' ),
145 - 'reviewer_job_title' => __( 'Manager', 'uicore-elements' ),
146 - ],
147 - [
148 - 'reviewer_name' => __( 'Lena', 'uicore-elements' ),
149 - 'reviewer_job_title' => __( 'CEO', 'uicore-elements' ),
150 - ],
151 - [
152 - 'reviewer_name' => __( 'Jennifer', 'uicore-elements' ),
153 - 'reviewer_job_title' => __( 'Consultant', 'uicore-elements' ),
154 - ],
155 - ]
156 - ]
157 - );
158 + ]
159 + );
158 160
159 161 $this->end_controls_section();
160 162 }
161 163 function TRAIT_register_testimonial_additional_controls()
@@ -201,14 +203,14 @@
201 203 );
202 204 $this->add_control(
203 205 'rating_type',
204 206 [
205 - 'label' => __( 'Rating Type', 'uicore-elements' ),
207 + 'label' => __('Rating Type', 'uicore-elements'),
206 208 'type' => Controls_Manager::SELECT,
207 209 'default' => 'star',
208 210 'options' => [
209 - 'star' => __( 'Star', 'uicore-elements' ),
210 - 'number' => __( 'Number', 'uicore-elements' ),
211 + 'star' => __('Star', 'uicore-elements'),
212 + 'number' => __('Number', 'uicore-elements'),
211 213 ],
212 214 'condition' => [
213 215 'show_reviewer_rating' => 'yes'
214 216 ]
@@ -285,17 +287,17 @@
285 287 'default' => 'flex-start',
286 288 'toggle' => false,
287 289 'options' => [
288 290 'flex-start' => [
289 - 'title' => __( 'Top', 'uicore-elements' ),
291 + 'title' => __('Top', 'uicore-elements'),
290 292 'icon' => 'eicon-v-align-top',
291 293 ],
292 294 'center' => [
293 - 'title' => __( 'Center', 'uicore-elements' ),
295 + 'title' => __('Center', 'uicore-elements'),
294 296 'icon' => 'eicon-v-align-middle',
295 297 ],
296 298 'flex-end' => [
297 - 'title' => __( 'Bottom', 'uicore-elements' ),
299 + 'title' => __('Bottom', 'uicore-elements'),
298 300 'icon' => 'eicon-v-align-bottom',
299 301 ],
300 302 ],
301 303 'selectors' => [
@@ -340,8 +342,9 @@
340 342 'title' => __('Justified', 'uicore-elements'),
341 343 'icon' => 'eicon-text-align-justify',
342 344 ],
343 345 ],
346 + 'default' => is_rtl() ? 'right' : 'left',
344 347 'prefix_class' => 'ui-e-h-align-',
345 348 'selectors' => [
346 349 '{{WRAPPER}} .ui-e-item' => 'text-align: {{VALUE}};',
347 350 ],
@@ -362,13 +365,18 @@
362 365 'center' => [
363 366 'title' => __('Center', 'uicore-elements'),
364 367 'icon' => 'eicon-align-center-v',
365 368 ],
369 + 'space-between' => [
370 + 'title' => __('Space Between', 'uicore-elements'),
371 + 'icon' => 'eicon-justify-space-between-v',
372 + ],
366 373 'end' => [
367 374 'title' => __('Bottom', 'uicore-elements'),
368 375 'icon' => 'eicon-align-end-v',
369 376 ],
370 377 ],
378 + 'prefix_class' => 'ui-e-v-align-',
371 379 'selectors' => [
372 380 '{{WRAPPER}} .ui-e-item' => '--ui-e-content-v-alignment: {{VALUE}};',
373 381 ]
374 382 ]
@@ -388,182 +396,182 @@
388 396 ]
389 397 ]
390 398 );
391 399
392 - $this->add_group_control(
393 - Group_Control_Border::get_type(),
394 - [
395 - 'name' => 'avatar_border',
396 - 'selector' => '{{WRAPPER}} .ui-e-testimonial-avatar img'
397 - ]
398 - );
399 - $this->add_control(
400 - 'avatar_radius',
401 - [
402 - 'label' => esc_html__('Border Radius', 'uicore-elements'),
403 - 'type' => Controls_Manager::DIMENSIONS,
404 - 'size_units' => ['px', 'em', '%'],
405 - 'selectors' => [
406 - '{{WRAPPER}} .ui-e-testimonial-avatar img' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
400 + $this->add_group_control(
401 + Group_Control_Border::get_type(),
402 + [
403 + 'name' => 'avatar_border',
404 + 'selector' => '{{WRAPPER}} .ui-e-testimonial-avatar img'
405 + ]
406 + );
407 + $this->add_control(
408 + 'avatar_radius',
409 + [
410 + 'label' => esc_html__('Border Radius', 'uicore-elements'),
411 + 'type' => Controls_Manager::DIMENSIONS,
412 + 'size_units' => ['px', 'em', '%'],
413 + 'selectors' => [
414 + '{{WRAPPER}} .ui-e-testimonial-avatar img' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
415 + ],
416 + ]
417 + );
418 + $this->add_responsive_control(
419 + 'avatar_padding',
420 + [
421 + 'label' => __('Padding', 'uicore-elements'),
422 + 'type' => Controls_Manager::DIMENSIONS,
423 + 'size_units' => ['px', 'em', '%'],
424 + 'selectors' => [
425 + '{{WRAPPER}} .ui-e-testimonial-avatar img' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
426 + ],
427 + ]
428 + );
429 + $this->add_responsive_control(
430 + 'avatar_size',
431 + [
432 + 'label' => __('Size', 'uicore-elements'),
433 + 'type' => Controls_Manager::SLIDER,
434 + 'size_units' => ['px', '%'],
435 + 'default' => [
436 + 'size' => 120,
437 + 'unit' => 'px'
438 + ],
439 + 'range' => [
440 + '%' => [
441 + 'min' => 1,
442 + 'max' => 100,
407 443 ],
408 - ]
409 - );
410 - $this->add_control(
411 - 'avatar_padding',
412 - [
413 - 'label' => __('Padding', 'uicore-elements'),
414 - 'type' => Controls_Manager::DIMENSIONS,
415 - 'size_units' => ['px', 'em', '%'],
416 - 'selectors' => [
417 - '{{WRAPPER}} .ui-e-testimonial-avatar img' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
418 - ],
419 - ]
420 - );
421 - $this->add_responsive_control(
422 - 'avatar_size',
423 - [
424 - 'label' => __('Size', 'uicore-elements'),
425 - 'type' => Controls_Manager::SLIDER,
426 - 'size_units' => [ 'px', '%' ],
427 - 'default' => [
428 - 'size' => 120,
429 - 'unit' => 'px'
430 - ],
431 - 'range' => [
432 - '%' => [
433 - 'min' => 1,
434 - 'max' => 100,
435 - ],
436 - 'px' => [
437 - 'min' => 10,
438 - 'max' => 500,
439 - ]
440 - ],
441 - 'description' => __('Using `%` might make image height fits the available space, depending on layout and inline options, cutting the image. Using `px` althougt adjust the image.', 'uicore-elements'),
442 - 'selectors' => [
443 - '{{WRAPPER}}' => '--ui-e-avatar-size: {{SIZE}}{{UNIT}};',
444 - ],
445 - 'render_type' => 'template',
446 - 'condition' => [
447 - 'layout!' => 'layout_5',
444 + 'px' => [
445 + 'min' => 10,
446 + 'max' => 500,
448 447 ]
448 + ],
449 + 'description' => __('Using `%` might make image height fits the available space, depending on layout and inline options, cutting the image. Using `px` althougt adjust the image.', 'uicore-elements'),
450 + 'selectors' => [
451 + '{{WRAPPER}}' => '--ui-e-avatar-size: {{SIZE}}{{UNIT}};',
452 + ],
453 + 'render_type' => 'template',
454 + 'condition' => [
455 + 'layout!' => 'layout_5',
449 456 ]
450 - );
451 - $this->add_control(
452 - 'avatar_size_px',
453 - [
454 - 'label' => __('Size', 'uicore-elements'),
455 - 'type' => Controls_Manager::SLIDER,
456 - 'default' => [
457 - 'size' => 80,
458 - 'unit' => 'px'
457 + ]
458 + );
459 + $this->add_responsive_control(
460 + 'avatar_size_px',
461 + [
462 + 'label' => __('Size', 'uicore-elements'),
463 + 'type' => Controls_Manager::SLIDER,
464 + 'default' => [
465 + 'size' => 80,
466 + 'unit' => 'px'
467 + ],
468 + 'range' => [
469 + 'px' => [
470 + 'min' => 1,
471 + 'max' => 250,
459 472 ],
460 - 'range' => [
461 - 'px' => [
462 - 'min' => 1,
463 - 'max' => 250,
464 - ],
465 - ],
466 - 'selectors' => [
467 - '{{WRAPPER}}' => '--ui-e-avatar-size: {{SIZE}}{{UNIT}};',
468 - ],
469 - 'condition' => [
470 - 'layout' => 'layout_5',
471 - ]
473 + ],
474 + 'selectors' => [
475 + '{{WRAPPER}}' => '--ui-e-avatar-size: {{SIZE}}{{UNIT}};',
476 + ],
477 + 'condition' => [
478 + 'layout' => 'layout_5',
472 479 ]
473 - );
474 - $this->add_control(
475 - 'avatar_spacing',
476 - [
477 - 'label' => __('Spacing', 'uicore-elements'),
478 - 'type' => Controls_Manager::SLIDER,
479 - 'default' => [
480 - 'size' => 15,
480 + ]
481 + );
482 + $this->add_responsive_control(
483 + 'avatar_spacing',
484 + [
485 + 'label' => __('Spacing', 'uicore-elements'),
486 + 'type' => Controls_Manager::SLIDER,
487 + 'default' => [
488 + 'size' => 15,
489 + ],
490 + 'selectors' => [
491 + '{{WRAPPER}}' => '--ui-e-avatar-spacing: {{SIZE}}{{UNIT}}'
492 + ],
493 + ]
494 + );
495 + $this->add_group_control(
496 + Group_Control_Box_Shadow::get_type(),
497 + [
498 + 'name' => 'avatar_shadow',
499 + 'selector' => '{{WRAPPER}} .ui-e-testimonial-avatar img'
500 + ]
501 + );
502 + $this->add_control(
503 + 'avatar_offset_toggle',
504 + [
505 + 'label' => __('Offset', 'uicore-elements'),
506 + 'type' => Controls_Manager::POPOVER_TOGGLE,
507 + 'label_off' => __('None', 'uicore-elements'),
508 + 'label_on' => __('Custom', 'uicore-elements'),
509 + 'return_value' => 'yes',
510 + ]
511 + );
512 + $this->start_popover();
513 +
514 + $this->add_responsive_control(
515 + 'avatar_horizontal_offset',
516 + [
517 + 'label' => __('Horizontal', 'uicore-elements'),
518 + 'type' => Controls_Manager::SLIDER,
519 + 'default' => [
520 + 'size' => 0,
521 + ],
522 + 'tablet_default' => [
523 + 'size' => 0,
524 + ],
525 + 'mobile_default' => [
526 + 'size' => 0,
527 + ],
528 + 'range' => [
529 + 'px' => [
530 + 'min' => -200,
531 + 'max' => 200,
481 532 ],
482 - 'selectors' => [
483 - '{{WRAPPER}}' => '--ui-e-avatar-spacing: {{SIZE}}{{UNIT}}'
533 + ],
534 + 'condition' => [
535 + 'avatar_offset_toggle' => 'yes'
536 + ],
537 + 'render_type' => 'ui',
538 + 'selectors' => [
539 + '{{WRAPPER}}' => '--ui-e-avatar-h-offset: {{SIZE}}px;'
540 + ],
541 + ]
542 + );
543 + $this->add_responsive_control(
544 + 'avatar_vertical_offset',
545 + [
546 + 'label' => __('Vertical', 'uicore-elements'),
547 + 'type' => Controls_Manager::SLIDER,
548 + 'default' => [
549 + 'size' => 0,
550 + ],
551 + 'tablet_default' => [
552 + 'size' => 0,
553 + ],
554 + 'mobile_default' => [
555 + 'size' => 0,
556 + ],
557 + 'range' => [
558 + 'px' => [
559 + 'min' => -200,
560 + 'max' => 200,
484 561 ],
485 - ]
486 - );
487 - $this->add_group_control(
488 - Group_Control_Box_Shadow::get_type(),
489 - [
490 - 'name' => 'avatar_shadow',
491 - 'selector' => '{{WRAPPER}} .ui-e-testimonial-avatar img'
492 - ]
493 - );
494 - $this->add_control(
495 - 'avatar_offset_toggle',
496 - [
497 - 'label' => __('Offset', 'uicore-elements'),
498 - 'type' => Controls_Manager::POPOVER_TOGGLE,
499 - 'label_off' => __('None', 'uicore-elements'),
500 - 'label_on' => __('Custom', 'uicore-elements'),
501 - 'return_value' => 'yes',
502 - ]
503 - );
504 - $this->start_popover();
562 + ],
563 + 'condition' => [
564 + 'avatar_offset_toggle' => 'yes'
565 + ],
566 + 'render_type' => 'ui',
567 + 'selectors' => [
568 + '{{WRAPPER}}' => '--ui-e-avatar-v-offset: {{SIZE}}px;'
569 + ],
570 + ]
571 + );
572 + $this->end_popover();
505 573
506 - $this->add_responsive_control(
507 - 'avatar_horizontal_offset',
508 - [
509 - 'label' => __('Horizontal', 'uicore-elements'),
510 - 'type' => Controls_Manager::SLIDER,
511 - 'default' => [
512 - 'size' => 0,
513 - ],
514 - 'tablet_default' => [
515 - 'size' => 0,
516 - ],
517 - 'mobile_default' => [
518 - 'size' => 0,
519 - ],
520 - 'range' => [
521 - 'px' => [
522 - 'min' => -200,
523 - 'max' => 200,
524 - ],
525 - ],
526 - 'condition' => [
527 - 'avatar_offset_toggle' => 'yes'
528 - ],
529 - 'render_type' => 'ui',
530 - 'selectors' => [
531 - '{{WRAPPER}}' => '--ui-e-avatar-h-offset: {{SIZE}}px;'
532 - ],
533 - ]
534 - );
535 - $this->add_responsive_control(
536 - 'avatar_vertical_offset',
537 - [
538 - 'label' => __('Vertical', 'uicore-elements'),
539 - 'type' => Controls_Manager::SLIDER,
540 - 'default' => [
541 - 'size' => 0,
542 - ],
543 - 'tablet_default' => [
544 - 'size' => 0,
545 - ],
546 - 'mobile_default' => [
547 - 'size' => 0,
548 - ],
549 - 'range' => [
550 - 'px' => [
551 - 'min' => -200,
552 - 'max' => 200,
553 - ],
554 - ],
555 - 'condition' => [
556 - 'avatar_offset_toggle' => 'yes'
557 - ],
558 - 'render_type' => 'ui',
559 - 'selectors' => [
560 - '{{WRAPPER}}' => '--ui-e-avatar-v-offset: {{SIZE}}px;'
561 - ],
562 - ]
563 - );
564 - $this->end_popover();
565 -
566 574 $this->end_controls_section();
567 575 $this->start_controls_section(
568 576 'section_style_image',
569 577 [
@@ -573,115 +581,115 @@
573 581 'show_reviewer_image' => 'yes'
574 582 ]
575 583 ]
576 584 );
577 - $this->add_control(
578 - 'image_size',
579 - [
580 - 'label' => __('Size', 'uicore-elements'),
581 - 'type' => Controls_Manager::SLIDER,
582 - 'default' => [
583 - 'size' => 40,
584 - 'unit' => 'px'
585 + $this->add_responsive_control(
586 + 'image_size',
587 + [
588 + 'label' => __('Size', 'uicore-elements'),
589 + 'type' => Controls_Manager::SLIDER,
590 + 'default' => [
591 + 'size' => 40,
592 + 'unit' => 'px'
593 + ],
594 + 'range' => [
595 + 'px' => [
596 + 'min' => 10,
597 + 'max' => 500,
585 598 ],
586 - 'range' => [
587 - 'px' => [
588 - 'min' => 10,
589 - 'max' => 500,
590 - ],
591 - ],
592 - 'selectors' => [
593 - '{{WRAPPER}}' => '--ui-e-image-size: {{SIZE}}{{UNIT}};',
594 - ],
599 + ],
600 + 'selectors' => [
601 + '{{WRAPPER}}' => '--ui-e-image-size: {{SIZE}}{{UNIT}};',
602 + ],
603 + ]
604 + );
605 + $this->add_responsive_control(
606 + 'image_spacing',
607 + [
608 + 'label' => __('Spacing', 'uicore-elements'),
609 + 'type' => Controls_Manager::SLIDER,
610 + 'default' => [
611 + 'size' => 15,
612 + ],
613 + 'selectors' => [
614 + '{{WRAPPER}}' => '--ui-e-img-spacing: {{SIZE}}{{UNIT}}'
615 + ],
616 + 'condition' => [
617 + 'layout!' => ['layout_2', 'layout_4', 'layout_6'],
595 618 ]
596 - );
597 - $this->add_control(
598 - 'image_spacing',
599 - [
600 - 'label' => __('Spacing', 'uicore-elements'),
601 - 'type' => Controls_Manager::SLIDER,
602 - 'default' => [
603 - 'size' => 15,
619 + ]
620 + );
621 + $this->add_control(
622 + 'image_offset_toggle',
623 + [
624 + 'label' => __('Offset', 'uicore-elements'),
625 + 'type' => Controls_Manager::POPOVER_TOGGLE,
626 + 'label_off' => __('None', 'uicore-elements'),
627 + 'label_on' => __('Custom', 'uicore-elements'),
628 + 'return_value' => 'yes',
629 + ]
630 + );
631 + $this->start_popover();
632 +
633 + $this->add_responsive_control(
634 + 'image_horizontal_offset',
635 + [
636 + 'label' => __('Horizontal', 'uicore-elements'),
637 + 'type' => Controls_Manager::SLIDER,
638 + 'default' => [
639 + 'size' => 0,
640 + ],
641 + 'tablet_default' => [
642 + 'size' => 0,
643 + ],
644 + 'mobile_default' => [
645 + 'size' => 0,
646 + ],
647 + 'range' => [
648 + 'px' => [
649 + 'min' => -200,
650 + 'max' => 200,
604 651 ],
605 - 'selectors' => [
606 - '{{WRAPPER}}' => '--ui-e-img-spacing: {{SIZE}}{{UNIT}}'
652 + ],
653 + 'condition' => [
654 + 'image_offset_toggle' => 'yes'
655 + ],
656 + 'render_type' => 'ui',
657 + 'selectors' => [
658 + '{{WRAPPER}}' => '--ui-e-img-h-offset: {{SIZE}}px;'
659 + ],
660 + ]
661 + );
662 + $this->add_responsive_control(
663 + 'image_vertical_offset',
664 + [
665 + 'label' => __('Vertical', 'uicore-elements'),
666 + 'type' => Controls_Manager::SLIDER,
667 + 'default' => [
668 + 'size' => 0,
669 + ],
670 + 'tablet_default' => [
671 + 'size' => 0,
672 + ],
673 + 'mobile_default' => [
674 + 'size' => 0,
675 + ],
676 + 'range' => [
677 + 'px' => [
678 + 'min' => -200,
679 + 'max' => 200,
607 680 ],
608 - 'condition' => [
609 - 'layout!' => ['layout_2', 'layout_4', 'layout_6'],
610 - ]
611 - ]
612 - );
613 - $this->add_control(
614 - 'image_offset_toggle',
615 - [
616 - 'label' => __('Offset', 'uicore-elements'),
617 - 'type' => Controls_Manager::POPOVER_TOGGLE,
618 - 'label_off' => __('None', 'uicore-elements'),
619 - 'label_on' => __('Custom', 'uicore-elements'),
620 - 'return_value' => 'yes',
621 - ]
622 - );
623 - $this->start_popover();
624 -
625 - $this->add_responsive_control(
626 - 'image_horizontal_offset',
627 - [
628 - 'label' => __('Horizontal', 'uicore-elements'),
629 - 'type' => Controls_Manager::SLIDER,
630 - 'default' => [
631 - 'size' => 0,
632 - ],
633 - 'tablet_default' => [
634 - 'size' => 0,
635 - ],
636 - 'mobile_default' => [
637 - 'size' => 0,
638 - ],
639 - 'range' => [
640 - 'px' => [
641 - 'min' => -200,
642 - 'max' => 200,
643 - ],
644 - ],
645 - 'condition' => [
646 - 'image_offset_toggle' => 'yes'
647 - ],
648 - 'render_type' => 'ui',
649 - 'selectors' => [
650 - '{{WRAPPER}}' => '--ui-e-img-h-offset: {{SIZE}}px;'
651 - ],
652 - ]
653 - );
654 - $this->add_responsive_control(
655 - 'image_vertical_offset',
656 - [
657 - 'label' => __('Vertical', 'uicore-elements'),
658 - 'type' => Controls_Manager::SLIDER,
659 - 'default' => [
660 - 'size' => 0,
661 - ],
662 - 'tablet_default' => [
663 - 'size' => 0,
664 - ],
665 - 'mobile_default' => [
666 - 'size' => 0,
667 - ],
668 - 'range' => [
669 - 'px' => [
670 - 'min' => -200,
671 - 'max' => 200,
672 - ],
673 - ],
674 - 'condition' => [
675 - 'image_offset_toggle' => 'yes'
676 - ],
677 - 'render_type' => 'ui',
678 - 'selectors' => [
679 - '{{WRAPPER}}' => '--ui-e-img-v-offset: {{SIZE}}px;'
680 - ],
681 - ]
682 - );
683 - $this->end_popover();
681 + ],
682 + 'condition' => [
683 + 'image_offset_toggle' => 'yes'
684 + ],
685 + 'render_type' => 'ui',
686 + 'selectors' => [
687 + '{{WRAPPER}}' => '--ui-e-img-v-offset: {{SIZE}}px;'
688 + ],
689 + ]
690 + );
691 + $this->end_popover();
684 692 $this->end_controls_section();
685 693 }
686 694 function register_testimonial_name_controls()
687 695 {
@@ -695,59 +703,59 @@
695 703 ]
696 704 ]
697 705 );
698 706
699 - $this->add_control(
700 - 'name_color',
701 - [
702 - 'label' => __('Color', 'uicore-elements'),
703 - 'type' => Controls_Manager::COLOR,
704 - 'selectors' => [
705 - '{{WRAPPER}} .ui-e-testimonial-name' => 'color: {{VALUE}};',
707 + $this->add_control(
708 + 'name_color',
709 + [
710 + 'label' => __('Color', 'uicore-elements'),
711 + 'type' => Controls_Manager::COLOR,
712 + 'selectors' => [
713 + '{{WRAPPER}} .ui-e-testimonial-name' => 'color: {{VALUE}};',
714 + ],
715 + ]
716 + );
717 + $this->add_control(
718 + 'name_hover_color',
719 + [
720 + 'label' => __('Hover Color', 'uicore-elements'),
721 + 'type' => Controls_Manager::COLOR,
722 + 'selectors' => [
723 + '{{WRAPPER}} .ui-e-item:hover .ui-e-testimonial-name' => 'color: {{VALUE}};',
724 + ],
725 + ]
726 + );
727 + $this->add_responsive_control(
728 + 'name_bottom_space',
729 + [
730 + 'label' => __('Spacing', 'uicore-elements'),
731 + 'type' => Controls_Manager::SLIDER,
732 + 'range' => [
733 + 'px' => [
734 + 'min' => 0,
735 + 'max' => 100,
706 736 ],
707 - ]
708 - );
709 - $this->add_control(
710 - 'name_hover_color',
711 - [
712 - 'label' => __('Hover Color', 'uicore-elements'),
713 - 'type' => Controls_Manager::COLOR,
714 - 'selectors' => [
715 - '{{WRAPPER}} .ui-e-item:hover .ui-e-testimonial-name' => 'color: {{VALUE}};',
716 - ],
717 - ]
718 - );
719 - $this->add_control(
720 - 'name_bottom_space',
721 - [
722 - 'label' => __('Spacing', 'uicore-elements'),
723 - 'type' => Controls_Manager::SLIDER,
724 - 'range' => [
725 - 'px' => [
726 - 'min' => 0,
727 - 'max' => 100,
728 - ],
729 - ],
730 - 'selectors' => [
731 - '{{WRAPPER}} .ui-e-testimonial-name' => 'padding-bottom: {{SIZE}}{{UNIT}};',
732 - ],
733 - ]
734 - );
735 - $this->add_group_control(
736 - Group_Control_Typography::get_type(),
737 - [
738 - 'name' => 'name_typography',
739 - 'selector' => '{{WRAPPER}} .ui-e-testimonial-name',
740 - ]
741 - );
742 - $this->add_group_control(
743 - Group_Control_Text_Shadow::get_type(),
744 - [
745 - 'name' => 'name_shadow',
746 - 'label' => __( 'Text Shadow', 'uicore-elements' ),
747 - 'selector' => '{{WRAPPER}} .ui-e-testimonial-name',
748 - ]
749 - );
737 + ],
738 + 'selectors' => [
739 + '{{WRAPPER}} .ui-e-testimonial-name' => 'padding-bottom: {{SIZE}}{{UNIT}};',
740 + ],
741 + ]
742 + );
743 + $this->add_group_control(
744 + Group_Control_Typography::get_type(),
745 + [
746 + 'name' => 'name_typography',
747 + 'selector' => '{{WRAPPER}} .ui-e-testimonial-name',
748 + ]
749 + );
750 + $this->add_group_control(
751 + Group_Control_Text_Shadow::get_type(),
752 + [
753 + 'name' => 'name_shadow',
754 + 'label' => __('Text Shadow', 'uicore-elements'),
755 + 'selector' => '{{WRAPPER}} .ui-e-testimonial-name',
756 + ]
757 + );
750 758
751 759 $this->end_controls_section();
752 760 }
753 761 function register_testimonial_job_controls()
@@ -762,55 +770,55 @@
762 770 ]
763 771 ]
764 772 );
765 773
766 - $this->add_control(
767 - 'job_title_color',
768 - [
769 - 'label' => __('Color', 'uicore-elements'),
770 - 'type' => Controls_Manager::COLOR,
771 - 'selectors' => [
772 - '{{WRAPPER}} .ui-e-testimonial-job-title' => 'color: {{VALUE}};',
774 + $this->add_control(
775 + 'job_title_color',
776 + [
777 + 'label' => __('Color', 'uicore-elements'),
778 + 'type' => Controls_Manager::COLOR,
779 + 'selectors' => [
780 + '{{WRAPPER}} .ui-e-testimonial-job-title' => 'color: {{VALUE}};',
781 + ],
782 + ]
783 + );
784 + $this->add_control(
785 + 'job_title_hover_color',
786 + [
787 + 'label' => __('Hover Color', 'uicore-elements'),
788 + 'type' => Controls_Manager::COLOR,
789 + 'selectors' => [
790 + '{{WRAPPER}} .ui-e-item:hover .ui-e-testimonial-job-title' => 'color: {{VALUE}};',
791 + ],
792 + ]
793 + );
794 + $this->add_responsive_control(
795 + 'job_title_bottom_space',
796 + [
797 + 'label' => __('Spacing', 'uicore-elements'),
798 + 'type' => Controls_Manager::SLIDER,
799 + 'range' => [
800 + 'px' => [
801 + 'min' => 0,
802 + 'max' => 100,
773 803 ],
774 - ]
775 - );
776 - $this->add_control(
777 - 'job_title_hover_color',
778 - [
779 - 'label' => __('Hover Color', 'uicore-elements'),
780 - 'type' => Controls_Manager::COLOR,
781 - 'selectors' => [
782 - '{{WRAPPER}} .ui-e-item:hover .ui-e-testimonial-job-title' => 'color: {{VALUE}};',
783 - ],
784 - ]
785 - );
786 - $this->add_control(
787 - 'job_title_bottom_space',
788 - [
789 - 'label' => __('Spacing', 'uicore-elements'),
790 - 'type' => Controls_Manager::SLIDER,
791 - 'range' => [
792 - 'px' => [
793 - 'min' => 0,
794 - 'max' => 100,
795 - ],
796 - ],
797 - 'default' => [
798 - 'size' => 10,
799 - 'unit' => 'px'
800 - ],
801 - 'selectors' => [
802 - '{{WRAPPER}} .ui-e-testimonial-job-title' => 'padding-bottom: {{SIZE}}{{UNIT}};',
803 - ],
804 - ]
805 - );
806 - $this->add_group_control(
807 - Group_Control_Typography::get_type(),
808 - [
809 - 'name' => 'job_title_typography',
810 - 'selector' => '{{WRAPPER}} .ui-e-testimonial-job-title',
811 - ]
812 - );
804 + ],
805 + 'default' => [
806 + 'size' => 10,
807 + 'unit' => 'px'
808 + ],
809 + 'selectors' => [
810 + '{{WRAPPER}} .ui-e-testimonial-job-title' => 'padding-bottom: {{SIZE}}{{UNIT}};',
811 + ],
812 + ]
813 + );
814 + $this->add_group_control(
815 + Group_Control_Typography::get_type(),
816 + [
817 + 'name' => 'job_title_typography',
818 + 'selector' => '{{WRAPPER}} .ui-e-testimonial-job-title',
819 + ]
820 + );
813 821
814 822 $this->end_controls_section();
815 823 }
816 824 function register_testimonial_text_controls()
@@ -825,55 +833,55 @@
825 833 ]
826 834 ]
827 835 );
828 836
829 - $this->add_control(
830 - 'text_color',
831 - [
832 - 'label' => __('Color', 'uicore-elements'),
833 - 'type' => Controls_Manager::COLOR,
834 - 'selectors' => [
835 - '{{WRAPPER}} .ui-e-testimonial-text' => 'color: {{VALUE}};',
837 + $this->add_control(
838 + 'text_color',
839 + [
840 + 'label' => __('Color', 'uicore-elements'),
841 + 'type' => Controls_Manager::COLOR,
842 + 'selectors' => [
843 + '{{WRAPPER}} .ui-e-testimonial-text' => 'color: {{VALUE}};',
844 + ],
845 + ]
846 + );
847 + $this->add_control(
848 + 'text_hover_color',
849 + [
850 + 'label' => __('Hover Color', 'uicore-elements'),
851 + 'type' => Controls_Manager::COLOR,
852 + 'selectors' => [
853 + '{{WRAPPER}} .ui-e-item:hover .ui-e-testimonial-text' => 'color: {{VALUE}};',
854 + ],
855 + ]
856 + );
857 + $this->add_group_control(
858 + Group_Control_Typography::get_type(),
859 + [
860 + 'name' => 'text_typography',
861 + 'selector' => '{{WRAPPER}} .ui-e-testimonial-text',
862 + ]
863 + );
864 + $this->add_responsive_control(
865 + 'text_bottom_space',
866 + [
867 + 'label' => __('Spacing', 'uicore-elements'),
868 + 'type' => Controls_Manager::SLIDER,
869 + 'range' => [
870 + 'px' => [
871 + 'min' => 0,
872 + 'max' => 100,
836 873 ],
837 - ]
838 - );
839 - $this->add_control(
840 - 'text_hover_color',
841 - [
842 - 'label' => __('Hover Color', 'uicore-elements'),
843 - 'type' => Controls_Manager::COLOR,
844 - 'selectors' => [
845 - '{{WRAPPER}} .ui-e-item:hover .ui-e-testimonial-text' => 'color: {{VALUE}};',
846 - ],
847 - ]
848 - );
849 - $this->add_group_control(
850 - Group_Control_Typography::get_type(),
851 - [
852 - 'name' => 'text_typography',
853 - 'selector' => '{{WRAPPER}} .ui-e-testimonial-text',
854 - ]
855 - );
856 - $this->add_control(
857 - 'text_bottom_space',
858 - [
859 - 'label' => __('Spacing', 'uicore-elements'),
860 - 'type' => Controls_Manager::SLIDER,
861 - 'range' => [
862 - 'px' => [
863 - 'min' => 0,
864 - 'max' => 100,
865 - ],
866 - ],
867 - 'default' => [
868 - 'size' => 15,
869 - 'unit' => 'px'
870 - ],
871 - 'selectors' => [
872 - '{{WRAPPER}} .ui-e-testimonial-text' => 'padding-bottom: {{SIZE}}{{UNIT}};',
873 - ],
874 - ]
875 - );
874 + ],
875 + 'default' => [
876 + 'size' => 15,
877 + 'unit' => 'px'
878 + ],
879 + 'selectors' => [
880 + '{{WRAPPER}} .ui-e-testimonial-text' => 'padding-bottom: {{SIZE}}{{UNIT}};',
881 + ],
882 + ]
883 + );
876 884
877 885 $this->end_controls_section();
878 886 }
879 887 function register_testimonial_rating_controls()
@@ -888,75 +896,34 @@
888 896 ],
889 897 ]
890 898 );
891 899
892 - // If SVG inline, we only need one color control because the semi-star bg color hack is not enabled with this experiment
893 - if(Plugin::$instance->experiments->is_feature_active('e_font_icon_svg')) {
894 - $this->add_control(
895 - 'active_rating_color',
896 - [
897 - 'label' => esc_html__('Color', 'uicore-elements'),
898 - 'type' => Controls_Manager::COLOR,
899 - 'default' => '#ffab1a',
900 - 'selectors' => [
901 - '{{WRAPPER}} .ui-e-testimonial-rating svg' => 'fill: {{VALUE}};',
902 - ],
903 - 'condition' => [
904 - 'rating_type' => 'star',
905 - ],
906 - ]
907 - );
908 - // Without the experiment, two colors are usefull because <i> elements can be cut and printed as decimal-stars
909 - } else {
910 - $this->add_control(
911 - 'active_rating_color',
912 - [
913 - 'label' => esc_html__('Active Color', 'uicore-elements'),
914 - 'type' => Controls_Manager::COLOR,
915 - 'default' => '#ffab1a',
916 - 'selectors' => [
917 - '{{WRAPPER}} .ui-e-testimonial-rating .ui-e-marked i' => 'color: {{VALUE}};',
918 - ],
919 - 'condition' => [
920 - 'rating_type' => 'star',
921 - ],
922 - ]
923 - );
924 - $this->add_control(
925 - 'rating_color',
926 - [
927 - 'label' => esc_html__('Color', 'uicore-elements'),
928 - 'type' => Controls_Manager::COLOR,
929 - 'default' => '#ccd6df',
930 - 'selectors' => [
931 - '{{WRAPPER}} .ui-e-testimonial-rating .ui-e-unmarked i' => 'color: {{VALUE}};',
932 - ],
933 - 'condition' => [
934 - 'rating_type' => 'star',
935 - ],
936 - ]
937 - );
938 - }
900 + // If SVG inline, we only need one color control because the semi-star bg color hack is not enabled with this experiment
901 + if (Plugin::$instance->experiments->is_feature_active('e_font_icon_svg')) {
939 902 $this->add_control(
940 - 'rating_number_color',
903 + 'active_rating_color',
941 904 [
942 905 'label' => esc_html__('Color', 'uicore-elements'),
943 906 'type' => Controls_Manager::COLOR,
907 + 'default' => '#ffab1a',
944 908 'selectors' => [
945 - '{{WRAPPER}} .ui-e-testimonial-rating' => 'color: {{VALUE}};',
909 + '{{WRAPPER}} .ui-e-testimonial-rating svg' => 'fill: {{VALUE}};',
946 910 ],
947 911 'condition' => [
948 - 'rating_type' => 'number',
912 + 'rating_type' => 'star',
949 913 ],
950 914 ]
951 915 );
916 + // Without the experiment, two colors are usefull because <i> elements can be cut and printed as decimal-stars
917 + } else {
952 918 $this->add_control(
953 - 'rating_background',
919 + 'active_rating_color',
954 920 [
955 - 'label' => __( 'Background Color', 'uicore-elements' ),
956 - 'type' => Controls_Manager::COLOR,
921 + 'label' => esc_html__('Active Color', 'uicore-elements'),
922 + 'type' => Controls_Manager::COLOR,
923 + 'default' => '#ffab1a',
957 924 'selectors' => [
958 - '{{WRAPPER}} .ui-e-testimonial-rating' => 'background-color: {{VALUE}};',
925 + '{{WRAPPER}} .ui-e-testimonial-rating .ui-e-marked i' => 'color: {{VALUE}};',
959 926 ],
960 927 'condition' => [
961 928 'rating_type' => 'star',
962 929 ],
@@ -962,99 +929,139 @@
962 929 ],
963 930 ]
964 931 );
965 932 $this->add_control(
966 - 'rating_number_background',
933 + 'rating_color',
967 934 [
968 - 'label' => __( 'Background Color', 'uicore-elements' ),
969 - 'type' => Controls_Manager::COLOR,
935 + 'label' => esc_html__('Color', 'uicore-elements'),
936 + 'type' => Controls_Manager::COLOR,
937 + 'default' => '#ccd6df',
970 938 'selectors' => [
971 - '{{WRAPPER}} .ui-e-testimonial-rating' => 'background-color: {{VALUE}};',
939 + '{{WRAPPER}} .ui-e-testimonial-rating .ui-e-unmarked i' => 'color: {{VALUE}};',
972 940 ],
973 - 'global' => [
974 - 'default' => Global_Colors::COLOR_PRIMARY,
975 - ],
976 941 'condition' => [
977 - 'rating_type' => 'number',
942 + 'rating_type' => 'star',
978 943 ],
979 944 ]
980 945 );
946 + }
947 + $this->add_control(
948 + 'rating_number_color',
949 + [
950 + 'label' => esc_html__('Color', 'uicore-elements'),
951 + 'type' => Controls_Manager::COLOR,
952 + 'selectors' => [
953 + '{{WRAPPER}} .ui-e-testimonial-rating' => 'color: {{VALUE}};',
954 + ],
955 + 'condition' => [
956 + 'rating_type' => 'number',
957 + ],
958 + ]
959 + );
960 + $this->add_control(
961 + 'rating_background',
962 + [
963 + 'label' => __('Background Color', 'uicore-elements'),
964 + 'type' => Controls_Manager::COLOR,
965 + 'selectors' => [
966 + '{{WRAPPER}} .ui-e-testimonial-rating' => 'background-color: {{VALUE}};',
967 + ],
968 + 'condition' => [
969 + 'rating_type' => 'star',
970 + ],
971 + ]
972 + );
973 + $this->add_control(
974 + 'rating_number_background',
975 + [
976 + 'label' => __('Background Color', 'uicore-elements'),
977 + 'type' => Controls_Manager::COLOR,
978 + 'selectors' => [
979 + '{{WRAPPER}} .ui-e-testimonial-rating' => 'background-color: {{VALUE}};',
980 + ],
981 + 'default' => 'var(--e-global-color-uicore_primary)',
981 982
982 - $this->add_group_control(
983 - Group_Control_Border::get_type(),
984 - [
985 - 'name' => 'rating_border',
986 - 'selector' => '{{WRAPPER}} .ui-e-testimonial-rating',
987 - ]
988 - );
989 - $this->add_control(
990 - 'rating_border_radius',
991 - [
992 - 'label' => __( 'Border Radius', 'uicore-elements' ),
993 - 'type' => Controls_Manager::DIMENSIONS,
994 - 'size_units' => [ 'px', 'em', '%' ],
995 - 'selectors' => [
996 - '{{WRAPPER}} .ui-e-testimonial-rating' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
983 + 'condition' => [
984 + 'rating_type' => 'number',
985 + ],
986 + ]
987 + );
988 +
989 + $this->add_group_control(
990 + Group_Control_Border::get_type(),
991 + [
992 + 'name' => 'rating_border',
993 + 'selector' => '{{WRAPPER}} .ui-e-testimonial-rating',
994 + ]
995 + );
996 + $this->add_control(
997 + 'rating_border_radius',
998 + [
999 + 'label' => __('Border Radius', 'uicore-elements'),
1000 + 'type' => Controls_Manager::DIMENSIONS,
1001 + 'size_units' => ['px', 'em', '%'],
1002 + 'selectors' => [
1003 + '{{WRAPPER}} .ui-e-testimonial-rating' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
1004 + ],
1005 + ]
1006 + );
1007 + $this->add_control(
1008 + 'rating_padding',
1009 + [
1010 + 'label' => esc_html__('Padding', 'uicore-elements'),
1011 + 'type' => Controls_Manager::DIMENSIONS,
1012 + 'size_units' => ['px', 'em', '%'],
1013 + 'selectors' => [
1014 + '{{WRAPPER}} .ui-e-testimonial-rating' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
1015 + ],
1016 + ]
1017 + );
1018 + $this->add_control(
1019 + 'rating_margin',
1020 + [
1021 + 'label' => esc_html__('Margin', 'uicore-elements'),
1022 + 'type' => Controls_Manager::DIMENSIONS,
1023 + 'size_units' => ['px', '%'],
1024 + 'selectors' => [
1025 + '{{WRAPPER}} .ui-e-testimonial-rating' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
1026 + ],
1027 + ]
1028 + );
1029 + $this->add_control(
1030 + 'rating_size',
1031 + [
1032 + 'label' => esc_html__('Size', 'uicore-elements'),
1033 + 'type' => Controls_Manager::SLIDER,
1034 + 'default' => [
1035 + 'size' => 14,
1036 + 'unit' => 'px'
1037 + ],
1038 + 'selectors' => [
1039 + '{{WRAPPER}} .ui-e-testimonial-rating' => 'font-size: {{SIZE}}{{UNIT}};',
1040 + '{{WRAPPER}} .ui-e-testimonial-rating svg' => 'width: {{SIZE}}{{UNIT}};',
1041 + ],
1042 + ]
1043 + );
1044 + $this->add_control(
1045 + 'rating_space_between',
1046 + [
1047 + 'label' => esc_html__('Space Between', 'uicore-elements'),
1048 + 'type' => Controls_Manager::SLIDER,
1049 + 'range' => [
1050 + 'px' => [
1051 + 'min' => 0,
1052 + 'max' => 10,
997 1053 ],
998 - ]
999 - );
1000 - $this->add_control(
1001 - 'rating_padding',
1002 - [
1003 - 'label' => esc_html__('Padding', 'uicore-elements'),
1004 - 'type' => Controls_Manager::DIMENSIONS,
1005 - 'size_units' => ['px', 'em', '%'],
1006 - 'selectors' => [
1007 - '{{WRAPPER}} .ui-e-testimonial-rating' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
1008 - ],
1009 - ]
1010 - );
1011 - $this->add_control(
1012 - 'rating_margin',
1013 - [
1014 - 'label' => esc_html__('Margin', 'uicore-elements'),
1015 - 'type' => Controls_Manager::DIMENSIONS,
1016 - 'size_units' => ['px', '%'],
1017 - 'selectors' => [
1018 - '{{WRAPPER}} .ui-e-testimonial-rating' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
1019 - ],
1020 - ]
1021 - );
1022 - $this->add_control(
1023 - 'rating_size',
1024 - [
1025 - 'label' => esc_html__('Size', 'uicore-elements'),
1026 - 'type' => Controls_Manager::SLIDER,
1027 - 'default' => [
1028 - 'size' => 14,
1029 - 'unit' => 'px'
1030 - ],
1031 - 'selectors' => [
1032 - '{{WRAPPER}} .ui-e-testimonial-rating' => 'font-size: {{SIZE}}{{UNIT}};',
1033 - '{{WRAPPER}} .ui-e-testimonial-rating svg' => 'width: {{SIZE}}{{UNIT}};',
1034 - ],
1035 - ]
1036 - );
1037 - $this->add_control(
1038 - 'rating_space_between',
1039 - [
1040 - 'label' => esc_html__('Space Between', 'uicore-elements'),
1041 - 'type' => Controls_Manager::SLIDER,
1042 - 'range' => [
1043 - 'px' => [
1044 - 'min' => 0,
1045 - 'max' => 10,
1046 - ],
1047 - ],
1048 - 'selectors' => [
1049 - '{{WRAPPER}} .ui-e-testimonial-rating .ui-e-icon + .ui-e-icon' => 'margin-left: {{SIZE}}{{UNIT}};', // star type
1050 - '{{WRAPPER}} .ui-e-testimonial-rating span' => 'margin-right: {{SIZE}}{{UNIT}};', // number type
1051 - ],
1052 - 'condition' => [
1053 - 'rating_type' => 'star',
1054 - ],
1055 - ]
1056 - );
1054 + ],
1055 + 'selectors' => [
1056 + '{{WRAPPER}} .ui-e-testimonial-rating .ui-e-icon + .ui-e-icon' => 'margin-left: {{SIZE}}{{UNIT}};', // star type
1057 + '{{WRAPPER}} .ui-e-testimonial-rating span' => 'margin-right: {{SIZE}}{{UNIT}};', // number type
1058 + ],
1059 + 'condition' => [
1060 + 'rating_type' => 'star',
1061 + ],
1062 + ]
1063 + );
1057 1064
1058 1065 $this->end_controls_section();
1059 1066 }
1060 1067 function register_testimonial_divider_controls()
@@ -1070,32 +1077,32 @@
1070 1077 ]
1071 1078 ]
1072 1079 );
1073 1080
1074 - $this->add_control(
1075 - 'divider_color',
1076 - [
1077 - 'label' => __('Color', 'uicore-elements'),
1078 - 'type' => Controls_Manager::COLOR,
1079 - 'selectors' => [
1080 - '{{WRAPPER}} .ui-e-testimonial-divider' => 'border-color: {{VALUE}};',
1081 - ],
1082 - ]
1083 - );
1084 - $this->add_control(
1085 - 'divider_spacing',
1086 - [
1087 - 'label' => __('Spacing', 'uicore-elements'),
1088 - 'type' => Controls_Manager::SLIDER,
1089 - 'default' => [
1090 - 'size' => 20,
1091 - 'unit' => 'px'
1092 - ],
1093 - 'selectors' => [
1094 - '{{WRAPPER}} .ui-e-testimonial-divider' => 'margin-bottom: {{SIZE}}{{UNIT}};',
1095 - ],
1096 - ]
1097 - );
1081 + $this->add_control(
1082 + 'divider_color',
1083 + [
1084 + 'label' => __('Color', 'uicore-elements'),
1085 + 'type' => Controls_Manager::COLOR,
1086 + 'selectors' => [
1087 + '{{WRAPPER}} .ui-e-testimonial-divider' => 'border-color: {{VALUE}};',
1088 + ],
1089 + ]
1090 + );
1091 + $this->add_responsive_control(
1092 + 'divider_spacing',
1093 + [
1094 + 'label' => __('Spacing', 'uicore-elements'),
1095 + 'type' => Controls_Manager::SLIDER,
1096 + 'default' => [
1097 + 'size' => 20,
1098 + 'unit' => 'px'
1099 + ],
1100 + 'selectors' => [
1101 + '{{WRAPPER}} .ui-e-testimonial-divider' => 'margin-bottom: {{SIZE}}{{UNIT}};',
1102 + ],
1103 + ]
1104 + );
1098 1105
1099 1106 $this->end_controls_section();
1100 1107 }
1101 1108
@@ -1153,23 +1160,23 @@
1153 1160 // Register specific Controls that can't be called in blocks because are positioned differently on widgets, or used only by specific testimonial types, such as grid or carousel
1154 1161 function TRAIT_register_specific_testimonial_controls($arg)
1155 1162 {
1156 1163
1157 - switch ($arg){
1158 - case 'layout' :
1164 + switch ($arg) {
1165 + case 'layout':
1159 1166 $this->add_control(
1160 1167 'layout',
1161 1168 [
1162 - 'label' => esc_html__( 'Layout', 'uicore-elements' ),
1169 + 'label' => esc_html__('Layout', 'uicore-elements'),
1163 1170 'type' => Controls_Manager::SELECT,
1164 1171 'default' => 'layout_1',
1165 1172 'options' => [
1166 - 'layout_1' => esc_html__( 'Layout 1', 'uicore-elements' ),
1167 - 'layout_2' => esc_html__( 'Layout 2', 'uicore-elements' ),
1168 - 'layout_3' => esc_html__( 'Layout 3', 'uicore-elements' ),
1169 - 'layout_4' => esc_html__( 'Layout 4', 'uicore-elements' ),
1170 - 'layout_5' => esc_html__( 'Layout 5', 'uicore-elements' ),
1171 - 'layout_6' => esc_html__( 'Layout 6', 'uicore-elements' ),
1173 + 'layout_1' => esc_html__('Layout 1', 'uicore-elements'),
1174 + 'layout_2' => esc_html__('Layout 2', 'uicore-elements'),
1175 + 'layout_3' => esc_html__('Layout 3', 'uicore-elements'),
1176 + 'layout_4' => esc_html__('Layout 4', 'uicore-elements'),
1177 + 'layout_5' => esc_html__('Layout 5', 'uicore-elements'),
1178 + 'layout_6' => esc_html__('Layout 6', 'uicore-elements'),
1172 1179 ],
1173 1180 'render_type' => 'template',
1174 1181 'prefix_class' => 'ui-e-',
1175 1182 'frontend_available' => true
@@ -1176,13 +1183,13 @@
1176 1183 ]
1177 1184 );
1178 1185 break;
1179 1186
1180 - case 'item_animations' :
1187 + case 'item_animations':
1181 1188 $this->add_control(
1182 1189 'item_hover_animation',
1183 1190 [
1184 - 'label' => esc_html__( 'Item Hover Animation', 'uicore-elements' ),
1191 + 'label' => esc_html__('Item Hover Animation', 'uicore-elements'),
1185 1192 'type' => Controls_Manager::SELECT,
1186 1193 'default' => '',
1187 1194 'label_block' => true,
1188 1195 'options' => $this->get_animations(),
@@ -1189,9 +1196,8 @@
1189 1196 ]
1190 1197 );
1191 1198 break;
1192 1199 }
1193 -
1194 1200 }
1195 1201
1196 1202 // HTML Rendering Functions
1197 1203 function render_reviewer_avatar($item)
@@ -1196,16 +1202,18 @@
1196 1202 // HTML Rendering Functions
1197 1203 function render_reviewer_avatar($item)
1198 1204 {
1199 1205 $settings = $this->get_settings_for_display();
1200 - $fit_avatar = ( isset($settings['avatar_size']) && $settings['avatar_size']['unit'] === 'px' ) ? 'ui-avatar-fit' : '';
1206 + $fit_avatar = ($this->is_option('avatar_size') && $settings['avatar_size']['unit'] === 'px')
1207 + ? 'ui-avatar-fit'
1208 + : '';
1201 1209
1202 - if ( ! $settings['show_reviewer_avatar'] ) {
1203 - return;
1204 - }
1210 + if (! $settings['show_reviewer_avatar']) {
1211 + return;
1212 + }
1205 1213
1206 - ?>
1207 - <div class="ui-e-testimonial-avatar <?php echo esc_attr($settings['avatar_animations']);?> <?php echo esc_attr($fit_avatar);?>">
1214 +?>
1215 + <div class="ui-e-testimonial-avatar <?php echo esc_attr($settings['avatar_animations']); ?> <?php echo esc_attr($fit_avatar); ?>">
1208 1216 <?php
1209 1217 $avatar_url = Group_Control_Image_Size::get_attachment_image_src($item['avatar']['id'], 'avatar_media_size', $settings);
1210 1218 if (!$avatar_url) {
1211 1219 printf('<img src="%1$s" alt="%2$s">', esc_url($item['avatar']['url']), esc_html($item['reviewer_name']));
@@ -1220,9 +1228,9 @@
1220 1228 ));
1221 1229 }
1222 1230 ?>
1223 1231 </div>
1224 - <?php
1232 + <?php
1225 1233 }
1226 1234 function render_reviewer_secondary_image($item)
1227 1235 {
1228 1236 $settings = $this->get_settings_for_display();
@@ -1228,14 +1236,14 @@
1228 1236 $settings = $this->get_settings_for_display();
1229 1237
1230 1238 $thumb_url = Group_Control_Image_Size::get_attachment_image_src($item['image']['id'], 'image_media_size', $settings);
1231 1239
1232 - if ( ! $settings['show_reviewer_image'] || !$thumb_url ) {
1233 - return;
1234 - }
1240 + if (! $settings['show_reviewer_image'] || !$thumb_url) {
1241 + return;
1242 + }
1235 1243
1236 - ?>
1237 - <div class="ui-e-testimonial-image <?php echo esc_attr($settings['image_animations']);?>">
1244 + ?>
1245 + <div class="ui-e-testimonial-image <?php echo esc_attr($settings['image_animations']); ?>">
1238 1246 <?php
1239 1247 if ($thumb_url) {
1240 1248 print(wp_get_attachment_image(
1241 1249 $item['image']['id'],
@@ -1245,54 +1253,54 @@
1245 1253 ));
1246 1254 }
1247 1255 ?>
1248 1256 </div>
1249 - <?php
1257 + <?php
1250 1258 }
1251 1259 function render_reviewer_name($item)
1252 1260 {
1253 1261 $settings = $this->get_settings_for_display();
1254 1262
1255 - if ( ! $settings['show_reviewer_name'] ) {
1256 - return;
1257 - }
1263 + if (! $settings['show_reviewer_name']) {
1264 + return;
1265 + }
1258 1266
1259 - ?>
1260 - <?php if ( $item['reviewer_name'] ) : ?>
1261 - <<?php echo esc_html($settings['review_name_tag']); ?> class="ui-e-testimonial-name <?php echo esc_attr($settings['name_animations']);?>">
1262 - <span><?php echo wp_kses_post($item['reviewer_name']);?></span>
1263 - </<?php echo esc_html($settings['review_name_tag']); ?>>
1267 + ?>
1268 + <?php if ($item['reviewer_name']) : ?>
1269 + <<?php echo Helper::esc_tag($settings['review_name_tag']); ?> class="ui-e-testimonial-name <?php echo esc_attr($settings['name_animations']); ?>">
1270 + <span><?php echo wp_kses_post($item['reviewer_name']); ?></span>
1271 + </<?php echo Helper::esc_tag($settings['review_name_tag']); ?>>
1264 1272 <?php endif; ?>
1265 - <?php
1273 + <?php
1266 1274 }
1267 1275 function render_reviewer_job_title($item)
1268 1276 {
1269 1277 $settings = $this->get_settings_for_display();
1270 1278
1271 - if ( ! $settings['show_reviewer_job_title'] ) {
1272 - return;
1273 - }
1279 + if (! $settings['show_reviewer_job_title']) {
1280 + return;
1281 + }
1274 1282
1275 - ?>
1276 - <?php if ( $item['reviewer_job_title'] ) : ?>
1277 - <div class="ui-e-testimonial-job-title <?php echo esc_attr($settings['job_animations']);?>">
1283 + ?>
1284 + <?php if ($item['reviewer_job_title']) : ?>
1285 + <div class="ui-e-testimonial-job-title <?php echo esc_attr($settings['job_animations']); ?>">
1278 1286 <span><?php echo esc_html($item['reviewer_job_title']); ?></span>
1279 1287 </div>
1280 1288 <?php endif; ?>
1281 - <?php
1289 + <?php
1282 1290 }
1283 1291 function render_review_text($item)
1284 1292 {
1285 1293 $settings = $this->get_settings_for_display();
1286 1294
1287 - if ( ! $settings['show_reviewer_text'] ) {
1288 - return;
1289 - }
1295 + if (! $settings['show_reviewer_text']) {
1296 + return;
1297 + }
1290 1298
1291 - ?>
1292 - <?php if ( $item['review_text'] ) : ?>
1293 - <div class="ui-e-testimonial-text <?php echo esc_attr($settings['text_animations']);?>">
1294 - <?php echo wp_kses_post( $item['review_text'] ); ?>
1299 + ?>
1300 + <?php if ($item['review_text']) : ?>
1301 + <div class="ui-e-testimonial-text <?php echo esc_attr($settings['text_animations']); ?>">
1302 + <?php echo wp_kses_post($this->parse_text_editor($item['review_text'])); ?>
1295 1303 </div>
1296 1304 <?php endif; ?>
1297 1305 <?php
1298 1306 }
@@ -1301,9 +1309,9 @@
1301 1309
1302 1310 $settings = $this->get_settings_for_display();
1303 1311
1304 1312 $ID = $item['_id'];
1305 - if ( !$settings['show_reviewer_rating'] ) {
1313 + if (!$settings['show_reviewer_rating']) {
1306 1314 return;
1307 1315 }
1308 1316
1309 1317 $rating_value = $item['rating_number']['size']; // get rating value
@@ -1309,79 +1317,81 @@
1309 1317 $rating_value = $item['rating_number']['size']; // get rating value
1310 1318
1311 1319 if ($settings['rating_type'] == 'star') {
1312 1320
1313 - ?>
1314 - <div class="ui-e-testimonial-rating <?php echo esc_attr($settings['rating_animations']);?>">
1321 + ?>
1322 + <div class="ui-e-testimonial-rating <?php echo esc_attr($settings['rating_animations']); ?>">
1315 1323 <?php
1316 1324
1317 1325 $rating_scale = 5;
1318 1326
1319 - if ( '' === $rating_value ) {
1327 + if ('' === $rating_value) {
1320 1328 $rating_value = $rating_scale;
1321 1329 }
1322 1330
1323 - $rating_value = floatval( $rating_value );
1324 - $rating_value = round( $rating_value, 2 );
1331 + $rating_value = floatval($rating_value);
1332 + $rating_value = round($rating_value, 2);
1325 1333
1326 - for ( $index = 1; $index <= $rating_scale; $index++ ) {
1334 + for ($index = 1; $index <= $rating_scale; $index++) {
1327 1335
1328 1336 // SVG Method (uses font-awesome library for it's half-star icon, and can prints full and half-star)
1329 - if (Plugin::$instance->experiments->is_feature_active('e_font_icon_svg')){
1330 - ?>
1337 + if (Plugin::$instance->experiments->is_feature_active('e_font_icon_svg')) {
1338 + ?>
1331 1339 <div class="ui-e-icon">
1332 1340 <?php
1333 - if ( $rating_value >= $index ) {
1334 - echo Icons_Manager::try_get_icon_html( ['value' => 'fas fa-star', 'library' => 'fa-solid'], [ 'aria-hidden' => 'true' ] ); //phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
1335 - } elseif ( intval( ceil( $rating_value ) ) === $index ) {
1336 - echo Icons_Manager::try_get_icon_html( ['value' => 'fas fa-star-half', 'library' => 'fa-solid'], ['aria-hidden' => 'true'] ); //phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
1337 - }
1341 + if ($rating_value >= $index) {
1342 + echo Icons_Manager::try_get_icon_html(['value' => 'fas fa-star', 'library' => 'fa-solid'], ['aria-hidden' => 'true']); //phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
1343 + } elseif (intval(ceil($rating_value)) === $index) {
1344 + echo Icons_Manager::try_get_icon_html(['value' => 'fas fa-star-half', 'library' => 'fa-solid'], ['aria-hidden' => 'true']); //phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
1345 + }
1338 1346 ?>
1339 1347 </div>
1340 - <?php
1341 - // Font Icon Method (uses elementor library and can print decimal specific stars)
1348 + <?php
1349 + // Font Icon Method (uses elementor library and can print decimal specific stars)
1342 1350 } else {
1343 1351
1344 - if ( $rating_value >= $index ) {
1352 + if ($rating_value >= $index) {
1345 1353 $width = '100%'; // Full star if rate superior to current loop
1346 - } elseif ( intval( ceil( $rating_value ) ) === $index ) {
1347 - $width = ( $rating_value - ( $index - 1 ) ) * 100 . '%'; // Semi-star, calculating the width based on the decimal value
1354 + } elseif (intval(ceil($rating_value)) === $index) {
1355 + $width = ($rating_value - ($index - 1)) * 100 . '%'; // Semi-star, calculating the width based on the decimal value
1348 1356 } else {
1349 1357 $width = '0%'; // No star if rate inferior to current loop
1350 1358 }
1351 1359
1352 1360 // Creates the atts
1353 - $this->add_render_attribute( "icon_marked_$ID" . "_$index", [
1361 + $this->add_render_attribute("icon_marked_$ID" . "_$index", [
1354 1362 'class' => 'ui-e-marked',
1355 - ] );
1356 - if ( '100%' !== $width ) {
1357 - $this->add_render_attribute( "icon_marked_$ID" . "_$index", [
1363 + ]);
1364 + if ('100%' !== $width) {
1365 + $this->add_render_attribute("icon_marked_$ID" . "_$index", [
1358 1366 'style' => '--ui-e-rate-width: ' . $width . ';',
1359 - ] );
1367 + ]);
1360 1368 }
1361 1369
1362 - ?>
1363 - <div class="ui-e-icon">
1364 - <div <?php $this->print_render_attribute_string( "icon_marked_$ID" . "_$index",); ?>>
1365 - <?php echo Icons_Manager::try_get_icon_html( ['value' => 'eicon-star','library' => 'eicons'], [ 'aria-hidden' => 'true' ] ); //phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped?>
1366 - </div>
1367 - <div class="ui-e-unmarked">
1368 - <?php echo Icons_Manager::try_get_icon_html( ['value' => 'eicon-star','library' => 'eicons'], [ 'aria-hidden' => 'true' ] ); //phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped?>
1369 - </div>
1370 + ?>
1371 + <div class="ui-e-icon">
1372 + <div <?php $this->print_render_attribute_string("icon_marked_$ID" . "_$index",); ?>>
1373 + <?php echo Icons_Manager::try_get_icon_html(['value' => 'eicon-star', 'library' => 'eicons'], ['aria-hidden' => 'true']); //phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
1374 + ?>
1370 1375 </div>
1371 - <?php
1376 + <div class="ui-e-unmarked">
1377 + <?php echo Icons_Manager::try_get_icon_html(['value' => 'eicon-star', 'library' => 'eicons'], ['aria-hidden' => 'true']); //phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
1378 + ?>
1379 + </div>
1380 + </div>
1381 + <?php
1372 1382 }
1373 1383 }
1374 1384 ?>
1375 1385 </div>
1376 - <?php
1386 + <?php
1377 1387
1378 1388 } else { // number type rating
1379 - ?>
1380 - <div class="ui-e-testimonial-rating number">
1381 - <span><?php echo esc_html($rating_value);?></span>
1382 - </div>
1383 - <?php
1389 + ?>
1390 + <div class="ui-e-testimonial-rating number">
1391 + <span><?php echo esc_html($rating_value); ?></span>
1392 + </div>
1393 + <?php
1384 1394 }
1385 1395 }
1386 1396 function render_review_divider()
1387 1397 {
@@ -1386,15 +1396,15 @@
1386 1396 function render_review_divider()
1387 1397 {
1388 1398 $settings = $this->get_settings_for_display();
1389 1399
1390 - if ( !$settings['show_reviewer_divider'] ) {
1400 + if (!$settings['show_reviewer_divider']) {
1391 1401 return;
1392 1402 }
1393 1403
1394 1404 ?>
1395 - <span class="ui-e-testimonial-divider"></span>
1396 - <?php
1405 + <span class="ui-e-testimonial-divider"></span>
1406 + <?php
1397 1407 }
1398 1408 function TRAIT_render_review_item($item, $layout)
1399 1409 {
1400 1410 $settings = $this->get_settings_for_display();
@@ -1400,14 +1410,14 @@
1400 1410 $settings = $this->get_settings_for_display();
1401 1411
1402 1412 // Atts used by some layouts
1403 1413 $atts = [
1404 - 'inline' => $settings['image_inline'] == 'yes' ? true : false,
1414 + 'inline' => $this->is_option('image_inline', 'yes') ? true : false,
1405 1415 ];
1406 1416
1407 1417 // Get entrance and item hover animation classes
1408 - $entrance = (isset($settings['animate_items']) && $settings['animate_items'] == 'ui-e-grid-animate') ? 'elementor-invisible' : '';
1409 - $hover = isset($settings['item_hover_animation']) ? $settings['item_hover_animation'] : null;
1418 + $entrance = $this->is_option('animate_items', 'ui-e-grid-animate') ? 'elementor-invisible' : '';
1419 + $hover = isset($settings['item_hover_animation']) ? $settings['item_hover_animation'] : null;
1410 1420 $animations = sprintf('%s %s', $entrance, $hover);
1411 1421
1412 1422 // Get all elements animation control options (triggered by .ui-e-animations-wrp:hover)
1413 1423 $animation_options = [
@@ -1422,36 +1432,36 @@
1422 1432 if (!str_contains($this->get_name(), 'slider')) {
1423 1433 $animation_options[] = $settings['item_hover_animation'];
1424 1434 }
1425 1435 // check if any of the animation are set
1426 - $has_animation = array_filter($animation_options, function($value) {
1436 + $has_animation = array_filter($animation_options, function ($value) {
1427 1437 return $value !== '';
1428 1438 });
1429 1439 // and also check if entrance is set
1430 1440 $has_animation = $entrance !== '' ? true : $has_animation;
1431 1441
1432 - ?>
1442 + ?>
1433 1443
1434 1444 <div class="ui-e-wrp swiper-slide">
1435 1445 <?php if (!empty($has_animation)) : ?>
1436 - <div class="ui-e-animations-wrp <?php echo esc_attr($animations);?>">
1437 - <?php endif; ?>
1446 + <div class="ui-e-animations-wrp <?php echo esc_attr($animations); ?>">
1447 + <?php endif; ?>
1438 1448 <div class="ui-e-item">
1439 1449 <?php
1440 - switch($layout){
1441 - case 'layout_2' :
1450 + switch ($layout) {
1451 + case 'layout_2':
1442 1452 $this->render_layout_2($item, $atts);
1443 1453 break;
1444 - case 'layout_3' :
1454 + case 'layout_3':
1445 1455 $this->render_layout_3($item, $atts);
1446 1456 break;
1447 - case 'layout_4' :
1457 + case 'layout_4':
1448 1458 $this->render_layout_4($item);
1449 1459 break;
1450 - case 'layout_5' :
1460 + case 'layout_5':
1451 1461 $this->render_layout_5($item);
1452 1462 break;
1453 - case 'layout_6' :
1463 + case 'layout_6':
1454 1464 $this->render_layout_6($item);
1455 1465 break;
1456 1466 default:
1457 1467 $this->render_layout_1($item, $atts);
@@ -1458,13 +1468,13 @@
1458 1468 break;
1459 1469 }
1460 1470 ?>
1461 1471 </div>
1462 - <?php if (!empty($has_animation)) : ?>
1472 + <?php if (!empty($has_animation)) : ?>
1463 1473 </div>
1464 1474 <?php endif; ?>
1465 1475 </div>
1466 - <?php
1476 + <?php
1467 1477 }
1468 1478
1469 1479 // Layouts
1470 1480 function render_layout_1($item, $atts)
@@ -1470,9 +1480,9 @@
1470 1480 function render_layout_1($item, $atts)
1471 1481 {
1472 1482
1473 1483 $this->render_reviewer_secondary_image($item);
1474 - ?>
1484 + ?>
1475 1485 <div class="ui-e-content">
1476 1486
1477 1487 <?php $this->render_review_text($item); ?>
1478 1488
@@ -1481,11 +1491,11 @@
1481 1491 <div class="ui-e-testimonial-flex">
1482 1492 <?php $this->render_reviewer_avatar($item); ?>
1483 1493 <div class="ui-e-inner-content">
1484 1494 <?php
1485 - $this->render_reviewer_name($item);
1486 - $this->render_reviewer_job_title($item);
1487 - $this->render_review_rating($item);
1495 + $this->render_reviewer_name($item);
1496 + $this->render_reviewer_job_title($item);
1497 + $this->render_review_rating($item);
1488 1498 ?>
1489 1499 </div>
1490 1500 </div>
1491 1501
@@ -1495,14 +1505,14 @@
1495 1505 $this->render_reviewer_job_title($item);
1496 1506 $this->render_review_rating($item);
1497 1507 endif; ?>
1498 1508
1499 - </div>
1500 - <?php
1509 + </div>
1510 + <?php
1501 1511 }
1502 1512 function render_layout_2($item, $atts)
1503 1513 {
1504 - ?>
1514 + ?>
1505 1515 <div class="ui-e-content">
1506 1516
1507 1517 <?php if ($atts['inline']) : ?>
1508 1518 <div class="ui-e-testimonial-flex">
@@ -1508,11 +1518,11 @@
1508 1518 <div class="ui-e-testimonial-flex">
1509 1519 <?php $this->render_reviewer_avatar($item); ?>
1510 1520 <div class="ui-e-inner-content">
1511 1521 <?php
1512 - $this->render_reviewer_name($item);
1513 - $this->render_reviewer_job_title($item);
1514 - $this->render_review_rating($item);
1522 + $this->render_reviewer_name($item);
1523 + $this->render_reviewer_job_title($item);
1524 + $this->render_review_rating($item);
1515 1525 ?>
1516 1526 </div>
1517 1527 </div>
1518 1528
@@ -1525,24 +1535,24 @@
1525 1535
1526 1536 <?php $this->render_review_text($item); ?>
1527 1537 </div>
1528 1538
1529 - <?php
1539 + <?php
1530 1540 $this->render_reviewer_secondary_image($item);
1531 1541 }
1532 1542 function render_layout_3($item, $atts)
1533 1543 {
1534 1544 $this->render_reviewer_secondary_image($item);
1535 - ?>
1545 + ?>
1536 1546 <div class="ui-e-content">
1537 1547
1538 1548 <?php
1539 - $this->render_review_rating($item);
1540 - $this->render_review_text($item);
1541 - $this->render_review_divider();
1549 + $this->render_review_rating($item);
1550 + $this->render_review_text($item);
1551 + $this->render_review_divider();
1542 1552 ?>
1543 1553
1544 - <?php if ($atts['inline']) :?>
1554 + <?php if ($atts['inline']) : ?>
1545 1555
1546 1556 <div class="ui-e-testimonial-flex">
1547 1557 <?php $this->render_reviewer_avatar($item); ?>
1548 1558 <div class="ui-e-inner-content">
@@ -1556,13 +1566,13 @@
1556 1566 $this->render_reviewer_name($item);
1557 1567 $this->render_reviewer_job_title($item);
1558 1568 endif; ?>
1559 1569 </div>
1560 - <?php
1570 + <?php
1561 1571 }
1562 1572 function render_layout_4($item)
1563 1573 {
1564 - ?>
1574 + ?>
1565 1575 <div class="ui-e-testimonial-flex">
1566 1576 <?php $this->render_reviewer_avatar($item); ?>
1567 1577 <?php $this->render_reviewer_secondary_image($item); ?>
1568 1578 </div>
@@ -1568,37 +1578,37 @@
1568 1578 </div>
1569 1579
1570 1580 <div class="ui-e-content">
1571 1581 <?php
1572 - $this->render_review_text($item);
1573 - $this->render_reviewer_name($item);
1574 - $this->render_reviewer_job_title($item);
1575 - $this->render_review_rating($item);
1582 + $this->render_review_text($item);
1583 + $this->render_reviewer_name($item);
1584 + $this->render_reviewer_job_title($item);
1585 + $this->render_review_rating($item);
1576 1586 ?>
1577 1587 </div>
1578 - <?php
1588 + <?php
1579 1589 }
1580 1590 function render_layout_5($item)
1581 1591 {
1582 - ?>
1592 + ?>
1583 1593 <div class="ui-e-testimonial-flex">
1584 1594 <div class="ui-e-content">
1585 1595
1586 1596 <?php
1587 - $this->render_reviewer_secondary_image($item);
1588 - $this->render_review_text($item);
1589 - $this->render_review_rating($item);
1590 - $this->render_reviewer_name($item);
1591 - $this->render_reviewer_job_title($item);
1597 + $this->render_reviewer_secondary_image($item);
1598 + $this->render_review_text($item);
1599 + $this->render_review_rating($item);
1600 + $this->render_reviewer_name($item);
1601 + $this->render_reviewer_job_title($item);
1592 1602 ?>
1593 1603 </div>
1594 1604 <?php $this->render_reviewer_avatar($item); ?>
1595 1605 </div>
1596 - <?php
1606 + <?php
1597 1607 }
1598 1608 function render_layout_6($item)
1599 1609 {
1600 - ?>
1610 + ?>
1601 1611 <div class="ui-e-testimonial-flex">
1602 1612
1603 1613 <?php $this->render_reviewer_avatar($item); ?>
1604 1614
@@ -1603,15 +1613,15 @@
1603 1613 <?php $this->render_reviewer_avatar($item); ?>
1604 1614
1605 1615 <div class="ui-e-content">
1606 1616 <?php
1607 - $this->render_reviewer_name($item);
1608 - $this->render_reviewer_job_title($item);
1609 - $this->render_review_rating($item);
1610 - $this->render_review_text($item);
1611 - $this->render_reviewer_secondary_image($item);
1617 + $this->render_reviewer_name($item);
1618 + $this->render_reviewer_job_title($item);
1619 + $this->render_review_rating($item);
1620 + $this->render_review_text($item);
1621 + $this->render_reviewer_secondary_image($item);
1612 1622 ?>
1613 1623 </div>
1614 1624 </div>
1615 - <?php
1625 +<?php
1616 1626 }
1617 -}
1627 +}