PluginProbe
Ultimate Store Kit – Store Builder Addons for Elementor, WooCommerce Store Builder, EDD Store Builder / 3.0.9
Ultimate Store Kit – Store Builder Addons for Elementor, WooCommerce Store Builder, EDD Store Builder v3.0.9
3.1.4 3.0.8 3.0.9 3.1.0 3.1.2 3.1.3 3.0.7 3.0.5 3.0.4 3.0.3 3.0.2 trunk 1.5.0 1.5.1 1.5.2 1.6.1 1.6.2 1.6.3 1.6.4 2.0.0 2.0.1 2.0.2 2.0.3 2.0.4 2.0.5 All 93 releases
ultimate-store-kit / modules / info-list / widgets / info-list.php

info-list.php in Ultimate Store Kit – Store Builder Addons for Elementor, WooCommerce Store Builder, EDD Store Builder 3.0.9, at modules/info-list/widgets/info-list.php

795 lines 26.3 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace UltimateStoreKit\Modules\InfoList\Widgets;
4
5 use UltimateStoreKit\Base\Module_Base;
6 use Elementor\Group_Control_Css_Filter;
7 use Elementor\Repeater;
8 use Elementor\Controls_Manager;
9 use Elementor\Group_Control_Box_Shadow;
10 use Elementor\Group_Control_Image_Size;
11 use Elementor\Group_Control_Typography;
12 use Elementor\Group_Control_Text_Shadow;
13 use Elementor\Group_Control_Background;
14 use Elementor\Group_Control_Border;
15 use Elementor\Icons_Manager;
16 use UltimateStoreKit\Classes\Utils;
17
18 if (! defined('ABSPATH')) {
19 exit;
20 } // Exit if accessed directly
21
22 class Info_List extends Module_Base {
23
24 public function get_name()
25 {
26 return 'usk-info-list';
27 }
28
29 public function get_title()
30 {
31 return esc_html__('Info List', 'ultimate-store-kit');
32 }
33
34 public function get_icon()
35 {
36 return 'usk-widget-icon usk-icon-info-list';
37 }
38
39 public function get_categories()
40 {
41 return ['ultimate-store-kit'];
42 }
43
44 public function get_keywords()
45 {
46 return [ 'icon', 'list', 'feature', 'box', 'info' ];
47 }
48
49 public function get_style_depends()
50 {
51 if ($this->usk_is_edit_mode()) {
52 return [ 'usk-styles' ];
53 } else {
54 return [ 'usk-info-list' ];
55 }
56 }
57
58 public function get_custom_help_url() {
59 return 'https://youtu.be/vVCYUAPuqcg?si=ld1BjZ6KIy3OU62Y';
60 }
61
62 public function has_widget_inner_wrapper(): bool {
63 return ! \Elementor\Plugin::$instance->experiments->is_feature_active( 'e_optimized_markup' );
64 }
65
66 protected function is_dynamic_content(): bool {
67 return false;
68 }
69
70 protected function register_controls() {
71
72 $this->start_controls_section(
73 'usk_section_list',
74 [
75 'label' => __('Items', 'ultimate-store-kit'),
76 'tab' => Controls_Manager::TAB_CONTENT,
77 ]
78 );
79
80 $repeater = new Repeater();
81
82 $repeater->add_control(
83 'list_icon',
84 [
85 'label' => __('Icon', 'ultimate-store-kit'),
86 'type' => Controls_Manager::ICONS,
87 'label_block' => false,
88 'default' => [
89 'value' => 'fas fa-star',
90 'library' => 'fa-solid',
91 ],
92 'skin' => 'inline',
93 ]
94 );
95
96 $repeater->add_control(
97 'title',
98 [
99 'label' => __('Title', 'ultimate-store-kit'),
100 'type' => Controls_Manager::TEXT,
101 'dynamic' => [
102 'active' => true,
103 ],
104 'default' => esc_html__('This is a title', 'ultimate-store-kit'),
105 'placeholder' => __('Enter your title', 'ultimate-store-kit'),
106 'label_block' => true,
107 ]
108 );
109
110 $repeater->add_control(
111 'title_link',
112 [
113 'label' => esc_html__('Title Link', 'ultimate-store-kit'),
114 'type' => Controls_Manager::URL,
115 'dynamic' => [ 'active' => true ],
116 'placeholder' => 'http://your-link.com',
117 ]
118 );
119
120 $repeater->add_control(
121 'text',
122 [
123 'label' => esc_html__('Text', 'ultimate-store-kit'),
124 'type' => Controls_Manager::WYSIWYG,
125 'label_block' => true,
126 'dynamic' => ['active' => true],
127 'default' => esc_html__('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.', 'ultimate-store-kit'),
128
129 ]
130 );
131
132 $repeater->add_group_control(
133 Group_Control_Background::get_type(),
134 [
135 'name' => 'item_repeater_background',
136 'selector' => '{{WRAPPER}} {{CURRENT_ITEM}}.usk-info-list-item',
137 'separator' => 'before'
138 ]
139 );
140
141 $this->add_control(
142 'info_items',
143 [
144 'show_label' => false,
145 'type' => Controls_Manager::REPEATER,
146 'fields' => $repeater->get_controls(),
147 'default' => [
148 [
149 'title' => __('List Item #1', 'ultimate-store-kit'),
150 ],
151 [
152 'title' => __('List Item #2', 'ultimate-store-kit'),
153 ],
154 [
155 'title' => __('List Item #3', 'ultimate-store-kit'),
156 ],
157 ],
158 'title_field' => '{{{ elementor.helpers.renderIcon( this, list_icon, {}, "i", "panel" ) || \'<i class="{{ icon }}" aria-hidden="true"></i>\' }}} {{{ title }}}',
159 ]
160 );
161
162 $this->end_controls_section();
163
164 $this->start_controls_section(
165 'section_layout',
166 [
167 'label' => __('Additional Options', 'ultimate-store-kit'),
168 'tab' => Controls_Manager::TAB_CONTENT,
169 ]
170 );
171
172 $this->add_responsive_control(
173 'columns',
174 [
175 'label' => __('Columns', 'ultimate-store-kit'),
176 'type' => Controls_Manager::SELECT,
177 'default' => 1,
178 'tablet_default' => 1,
179 'mobile_default' => 1,
180 'options' => [
181 1 => '1',
182 2 => '2',
183 3 => '3',
184 4 => '4',
185 5 => '5',
186 6 => '6',
187 ],
188 'selectors' => [
189 '{{WRAPPER}} .usk-info-list' => 'grid-template-columns: repeat({{SIZE}}, 1fr);',
190 ],
191 ]
192 );
193
194 $this->add_responsive_control(
195 'column_gap',
196 [
197 'label' => esc_html__('Column Gap', 'ultimate-store-kit'),
198 'type' => Controls_Manager::SLIDER,
199 'default' => [
200 'size' => 15,
201 ],
202 'selectors' => [
203 '{{WRAPPER}} .usk-info-list' => 'grid-column-gap: {{SIZE}}{{UNIT}};',
204 ],
205 ]
206 );
207
208 $this->add_responsive_control(
209 'row_gap',
210 [
211 'label' => esc_html__('Row Gap', 'ultimate-store-kit'),
212 'type' => Controls_Manager::SLIDER,
213 'default' => [
214 'size' => 15,
215 ],
216 'selectors' => [
217 '{{WRAPPER}} .usk-info-list' => 'grid-row-gap: {{SIZE}}{{UNIT}};',
218 ],
219 ]
220 );
221
222 $this->add_control(
223 'icon_position',
224 [
225 'label' => esc_html__('Icon Position', 'ultimate-store-kit'),
226 'type' => Controls_Manager::CHOOSE,
227 'default' => 'top',
228 'options' => [
229 'left' => [
230 'title' => esc_html__('Left', 'ultimate-store-kit'),
231 'icon' => 'eicon-h-align-left',
232 ],
233 'top' => [
234 'title' => esc_html__('Top', 'ultimate-store-kit'),
235 'icon' => 'eicon-v-align-top',
236 ],
237 'right' => [
238 'title' => esc_html__('Right', 'ultimate-store-kit'),
239 'icon' => 'eicon-h-align-right',
240 ],
241 ],
242 'toggle' => false
243 ]
244 );
245
246 $this->add_responsive_control(
247 'icon_alignment',
248 [
249 'label' => esc_html__('Icon Alignment', 'ultimate-store-kit'),
250 'type' => Controls_Manager::CHOOSE,
251 'options' => [
252 'flex-start' => [
253 'title' => esc_html__('Top', 'ultimate-store-kit'),
254 'icon' => 'eicon-v-align-top',
255 ],
256 'center' => [
257 'title' => esc_html__('Center', 'ultimate-store-kit'),
258 'icon' => 'eicon-v-align-middle',
259 ],
260 'flex-end' => [
261 'title' => esc_html__('Bottom', 'ultimate-store-kit'),
262 'icon' => 'eicon-v-align-bottom',
263 ],
264 ],
265 'selectors' => [
266 '{{WRAPPER}} .usk-info-list .usk-info-list-item' => 'align-items: {{VALUE}}',
267 ],
268 'condition' => [
269 'icon_position!' => 'top'
270 ]
271 ]
272 );
273
274 $this->add_responsive_control(
275 'icon_spacing',
276 [
277 'label' => esc_html__('Icon Spacing', 'ultimate-store-kit'),
278 'type' => Controls_Manager::SLIDER,
279 'default' => [
280 'size' => 15,
281 ],
282 'selectors' => [
283 '{{WRAPPER}} .usk-info-list-item' => 'grid-column-gap: {{SIZE}}{{UNIT}};',
284 '{{WRAPPER}} .usk-info-style-top .usk-info-list-item' => 'grid-row-gap: {{SIZE}}{{UNIT}};',
285 ],
286 ]
287 );
288
289 $this->add_responsive_control(
290 'alignment',
291 [
292 'label' => esc_html__('Alignment', 'ultimate-store-kit'),
293 'type' => Controls_Manager::CHOOSE,
294 'options' => [
295 'left' => [
296 'title' => esc_html__('Left', 'ultimate-store-kit'),
297 'icon' => 'eicon-h-align-left',
298 ],
299 'center' => [
300 'title' => esc_html__('Center', 'ultimate-store-kit'),
301 'icon' => 'eicon-h-align-center',
302 ],
303 'right' => [
304 'title' => esc_html__('Right', 'ultimate-store-kit'),
305 'icon' => 'eicon-h-align-right',
306 ],
307 ],
308 'selectors' => [
309 '{{WRAPPER}} .usk-info-list-item, {{WRAPPER}} .usk-info-list-content' => 'text-align: {{VALUE}}',
310 ],
311 ]
312 );
313
314 $this->add_control(
315 'show_title',
316 [
317 'label' => __('Show Title', 'ultimate-store-kit'),
318 'type' => Controls_Manager::SWITCHER,
319 'default' => 'yes',
320 'separator' => 'before',
321 ]
322 );
323
324 $this->add_control(
325 'title_tag',
326 [
327 'label' => __('Title HTML Tag', 'ultimate-store-kit'),
328 'type' => Controls_Manager::SELECT,
329 'default' => 'h3',
330 'options' => ultimate_store_kit_title_tags(),
331 'condition' => [
332 'show_title' => 'yes',
333 ]
334 ]
335 );
336
337 $this->add_control(
338 'show_text',
339 [
340 'label' => esc_html__('Show Text', 'ultimate-store-kit'),
341 'type' => Controls_Manager::SWITCHER,
342 'default' => 'yes',
343 ]
344 );
345
346 $this->end_controls_section();
347
348 $this->start_controls_section(
349 'section_style_items',
350 [
351 'label' => __('Items', 'ultimate-store-kit'),
352 'tab' => Controls_Manager::TAB_STYLE,
353 ]
354 );
355
356 $this->start_controls_tabs('tabs_item_style');
357
358 $this->start_controls_tab(
359 'tab_item_normal',
360 [
361 'label' => esc_html__('Normal', 'ultimate-store-kit'),
362 ]
363 );
364
365 $this->add_group_control(
366 Group_Control_Background::get_type(),
367 [
368 'name' => 'item_background',
369 'selector' => '{{WRAPPER}} .usk-info-list-item',
370 ]
371 );
372
373 $this->add_group_control(
374 Group_Control_Border::get_type(),
375 [
376 'name' => 'item_border',
377 'label' => esc_html__('Border', 'ultimate-store-kit'),
378 'fields_options' => [
379 'border' => [
380 'default' => 'solid',
381 ],
382 'width' => [
383 'default' => [
384 'top' => '1',
385 'right' => '1',
386 'bottom' => '1',
387 'left' => '1',
388 'isLinked' => false,
389 ],
390 ],
391 'color' => [
392 'default' => '#dbdbdb',
393 ],
394 ],
395 'selector' => '{{WRAPPER}} .usk-info-list-item',
396 'separator' => 'before',
397 ]
398 );
399
400 $this->add_responsive_control(
401 'item_border_radius',
402 [
403 'label' => esc_html__('Border Radius', 'ultimate-store-kit'),
404 'type' => Controls_Manager::DIMENSIONS,
405 'size_units' => [ 'px', 'em', '%' ],
406 'selectors' => [
407 '{{WRAPPER}} .usk-info-list-item' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
408 ],
409 ]
410 );
411
412 $this->add_responsive_control(
413 'item_padding',
414 [
415 'label' => esc_html__('Padding', 'ultimate-store-kit'),
416 'type' => Controls_Manager::DIMENSIONS,
417 'size_units' => [ 'px', 'em', '%' ],
418 'selectors' => [
419 '{{WRAPPER}} .usk-info-list-item' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
420 ],
421 ]
422 );
423
424 $this->add_group_control(
425 Group_Control_Box_Shadow::get_type(),
426 [
427 'name' => 'item_box_shadow',
428 'selector' => '{{WRAPPER}} .usk-info-list-item',
429 ]
430 );
431
432 $this->end_controls_tab();
433
434 $this->start_controls_tab(
435 'tab_item_hover',
436 [
437 'label' => esc_html__('Hover', 'ultimate-store-kit'),
438 ]
439 );
440
441 $this->add_group_control(
442 Group_Control_Background::get_type(),
443 [
444 'name' => 'item_hover_background',
445 'selector' => '{{WRAPPER}} .usk-info-list-item:hover',
446 ]
447 );
448
449 $this->add_control(
450 'item_hover_border_color',
451 [
452 'label' => esc_html__('Border Color', 'ultimate-store-kit'),
453 'type' => Controls_Manager::COLOR,
454 'default' => '#2B2D42',
455 'condition' => [
456 'item_border_border!' => '',
457 ],
458 'selectors' => [
459 '{{WRAPPER}} .usk-info-list-item:hover' => 'border-color: {{VALUE}};',
460 ],
461 'separator' => 'before'
462 ]
463 );
464
465 $this->add_group_control(
466 Group_Control_Box_Shadow::get_type(),
467 [
468 'name' => 'item_hover_box_shadow',
469 'selector' => '{{WRAPPER}} .usk-info-list-item:hover',
470 ]
471 );
472
473 $this->end_controls_tab();
474
475 $this->end_controls_tabs();
476
477 $this->end_controls_section();
478
479 $this->start_controls_section(
480 'section_title_style',
481 [
482 'label' => __('Title', 'ultimate-store-kit'),
483 'tab' => Controls_Manager::TAB_STYLE,
484 ]
485 );
486
487 $this->add_control(
488 'title_color',
489 [
490 'label' => __('Color', 'ultimate-store-kit'),
491 'type' => Controls_Manager::COLOR,
492 'selectors' => [
493 '{{WRAPPER}} .usk-info-list-title a' => 'color: {{VALUE}} ',
494 ],
495 ]
496 );
497
498 $this->add_control(
499 'title_hover_color',
500 [
501 'label' => __('Hover Color', 'ultimate-store-kit'),
502 'type' => Controls_Manager::COLOR,
503 'selectors' => [
504 '{{WRAPPER}} .usk-info-list-title a:hover' => 'color: {{VALUE}} ',
505 ],
506 ]
507 );
508
509 $this->add_responsive_control(
510 'title_margin',
511 [
512 'label' => esc_html__('Margin', 'ultimate-store-kit'),
513 'type' => Controls_Manager::DIMENSIONS,
514 'size_units' => [ 'px', 'em', '%' ],
515 'selectors' => [
516 '{{WRAPPER}} .usk-info-list-title' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
517 ],
518 ]
519 );
520
521 $this->add_group_control(
522 Group_Control_Typography::get_type(),
523 [
524 'name' => 'title_typography',
525 'selector' => '{{WRAPPER}} .usk-info-list-title',
526 ]
527 );
528
529 $this->end_controls_section();
530
531 $this->start_controls_section(
532 'section_style_text',
533 [
534 'label' => __('Text', 'ultimate-store-kit'),
535 'tab' => Controls_Manager::TAB_STYLE,
536 ]
537 );
538
539 $this->add_control(
540 'text_color',
541 [
542 'label' => __('Color', 'ultimate-store-kit'),
543 'type' => Controls_Manager::COLOR,
544 'selectors' => [
545 '{{WRAPPER}} .usk-info-list-text' => 'color: {{VALUE}};',
546 ],
547 ]
548 );
549
550 $this->add_responsive_control(
551 'text_margin',
552 [
553 'label' => esc_html__('Margin', 'ultimate-store-kit'),
554 'type' => Controls_Manager::DIMENSIONS,
555 'size_units' => [ 'px', 'em', '%' ],
556 'selectors' => [
557 '{{WRAPPER}} .usk-info-list-text' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
558 ],
559 ]
560 );
561
562 $this->add_group_control(
563 Group_Control_Typography::get_type(),
564 [
565 'name' => 'text_typography',
566 'selector' => '{{WRAPPER}} .usk-info-list-text',
567 ]
568 );
569
570 $this->end_controls_section();
571
572 $this->start_controls_section(
573 'section_style_icon',
574 [
575 'label' => esc_html__('Icon', 'ultimate-store-kit'),
576 'tab' => Controls_Manager::TAB_STYLE,
577 ]
578 );
579
580 $this->start_controls_tabs('tabs_icon_style');
581
582 $this->start_controls_tab(
583 'tab_icon_normal',
584 [
585 'label' => esc_html__('Normal', 'ultimate-store-kit'),
586 ]
587 );
588
589 $this->add_control(
590 'icon_color',
591 [
592 'label' => esc_html__('Color', 'ultimate-store-kit'),
593 'type' => Controls_Manager::COLOR,
594 'selectors' => [
595 '{{WRAPPER}} .usk-info-list-icon span' => 'color: {{VALUE}};',
596 '{{WRAPPER}} .usk-info-list-icon svg' => 'fill: {{VALUE}};',
597 ],
598 ]
599 );
600
601 $this->add_group_control(
602 Group_Control_Background::get_type(),
603 [
604 'name' => 'icon_background',
605 'selector' => '{{WRAPPER}} .usk-info-list-icon span',
606 ]
607 );
608
609 $this->add_group_control(
610 Group_Control_Border::get_type(),
611 [
612 'name' => 'icon_border',
613 'selector' => '{{WRAPPER}} .usk-info-list-icon span',
614 ]
615 );
616
617 $this->add_responsive_control(
618 'icon_border_radius',
619 [
620 'label' => esc_html__('Border Radius', 'ultimate-store-kit'),
621 'type' => Controls_Manager::DIMENSIONS,
622 'size_units' => [ 'px', '%' ],
623 'selectors' => [
624 '{{WRAPPER}} .usk-info-list-icon span' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
625 ],
626 ]
627 );
628
629 $this->add_responsive_control(
630 'icon_padding',
631 [
632 'label' => esc_html__('Padding', 'ultimate-store-kit'),
633 'type' => Controls_Manager::DIMENSIONS,
634 'size_units' => [ 'px', 'em', '%' ],
635 'selectors' => [
636 '{{WRAPPER}} .usk-info-list-icon span' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
637 ],
638 ]
639 );
640
641 $this->add_responsive_control(
642 'icon_margin',
643 [
644 'label' => esc_html__('Margin', 'ultimate-store-kit'),
645 'type' => Controls_Manager::DIMENSIONS,
646 'size_units' => [ 'px', 'em', '%' ],
647 'selectors' => [
648 '{{WRAPPER}} .usk-info-list-icon span' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
649 ],
650 ]
651 );
652
653 $this->add_group_control(
654 Group_Control_Box_Shadow::get_type(),
655 [
656 'name' => 'icon_shadow',
657 'selector' => '{{WRAPPER}} .usk-info-list-icon span',
658 ]
659 );
660
661 $this->add_group_control(
662 Group_Control_Typography::get_type(),
663 [
664 'name' => 'icon_typography',
665 'label' => esc_html__('Typography', 'ultimate-store-kit'),
666 'selector' => '{{WRAPPER}} .usk-info-list-icon span',
667 ]
668 );
669
670 $this->end_controls_tab();
671
672 $this->start_controls_tab(
673 'tab_icon_hover',
674 [
675 'label' => esc_html__('Hover', 'ultimate-store-kit'),
676 ]
677 );
678
679 $this->add_control(
680 'icon_hover_color',
681 [
682 'label' => esc_html__('Color', 'ultimate-store-kit'),
683 'type' => Controls_Manager::COLOR,
684 'selectors' => [
685 '{{WRAPPER}} .usk-info-list-icon span:hover' => 'color: {{VALUE}};',
686 '{{WRAPPER}} .usk-info-list-icon span:hover svg' => 'fill: {{VALUE}};',
687 ],
688 ]
689 );
690
691 $this->add_group_control(
692 Group_Control_Background::get_type(),
693 [
694 'name' => 'icon_hover_background',
695 'selector' => '{{WRAPPER}} .usk-info-list-icon span:hover',
696 ]
697 );
698
699 $this->add_control(
700 'icon_hover_border_color',
701 [
702 'label' => esc_html__('Border Color', 'ultimate-store-kit'),
703 'type' => Controls_Manager::COLOR,
704 'condition' => [
705 'icon_border_border!' => '',
706 ],
707 'selectors' => [
708 '{{WRAPPER}} .usk-info-list-icon span:hover' => 'border-color: {{VALUE}};',
709 ],
710 ]
711 );
712
713 $this->end_controls_tab();
714 $this->end_controls_tabs();
715 $this->end_controls_section();
716 }
717
718
719 public function render_title($item)
720 {
721 $settings = $this->get_settings_for_display();
722
723 if (! $settings['show_title']) {
724 return;
725 }
726
727 if ( !empty($item['title']) && !empty($item['title_link']['url']) ) {
728 $this->add_link_attributes('title-link', $item['title_link'], true);
729 }
730
731 if (!empty($item['title'])) {
732 printf(
733 '<%1$s class="usk-info-list-title"><a %2$s title="%3$s">%3$s</a></%1$s>',
734 esc_attr( Utils::get_valid_html_tag($settings['title_tag']) ),
735 $this->get_render_attribute_string('title-link'), // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped
736 esc_attr($item['title'])
737 );
738 }
739 }
740
741 public function render_text($item)
742 {
743 $settings = $this->get_settings_for_display();
744
745 if (! $settings['show_text']) {
746 return;
747 }
748
749 ?>
750 <?php if ($item['text']) : ?>
751 <div class="usk-info-list-text">
752 <?php echo wp_kses_post($item['text']); ?>
753 </div>
754 <?php endif;
755 }
756
757 protected function render()
758 {
759 $settings = $this->get_settings_for_display();
760
761 if (empty($settings['info_items'])) {
762 return;
763 }
764
765 $this->add_render_attribute('info-list', 'class', 'usk-info-list usk-info-style-' . $settings['icon_position']);
766
767 ?>
768 <div <?php $this->print_render_attribute_string('info-list'); ?>>
769 <?php foreach ($settings['info_items'] as $item) :
770
771 $this->add_render_attribute('item-wrap', 'class', 'usk-info-list-item elementor-repeater-item-' . esc_attr($item['_id']), true);
772
773 ?>
774 <div <?php $this->print_render_attribute_string('item-wrap'); ?>>
775
776 <?php if (!empty($item['list_icon']['value'])) : ?>
777 <div class="usk-info-list-icon">
778 <span>
779 <?php Icons_Manager::render_icon($item['list_icon'], ['aria-hidden' => 'true']); ?>
780 </span>
781 </div>
782 <?php endif; ?>
783 <div class="usk-info-list-content">
784 <?php $this->render_title($item); ?>
785 <?php $this->render_text($item); ?>
786 </div>
787
788 </div>
789
790 <?php endforeach; ?>
791 </div>
792 <?php
793 }
794 }
795