PluginProbe
Ultimate Store Kit – Store Builder Addons for Elementor, WooCommerce Store Builder, EDD Store Builder / 2.0.5
Ultimate Store Kit – Store Builder Addons for Elementor, WooCommerce Store Builder, EDD Store Builder v2.0.5
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 2.0.5, at modules/info-list/widgets/info-list.php

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