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