PluginProbe
Ultimate Store Kit – Store Builder Addons for Elementor, WooCommerce Store Builder, EDD Store Builder / 3.1.4
Ultimate Store Kit – Store Builder Addons for Elementor, WooCommerce Store Builder, EDD Store Builder v3.1.4
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
← All changes | modules/info-list/widgets/info-list.php +115 -123 1.6.43.1.4 View file →
@@ -12,16 +12,15 @@
12 12 use Elementor\Group_Control_Text_Shadow;
13 13 use Elementor\Group_Control_Background;
14 14 use Elementor\Group_Control_Border;
15 15 use Elementor\Icons_Manager;
16 - use Elementor\Utils;
16 + use UltimateStoreKit\Classes\Utils;
17 17
18 18 if (! defined('ABSPATH')) {
19 19 exit;
20 20 } // Exit if accessed directly
21 21
22 -class Info_List extends Module_Base
23 -{
22 +class Info_List extends Module_Base {
24 23
25 24 public function get_name()
26 25 {
27 26 return 'usk-info-list';
@@ -59,15 +58,114 @@
59 58 public function get_custom_help_url() {
60 59 return 'https://youtu.be/vVCYUAPuqcg?si=ld1BjZ6KIy3OU62Y';
61 60 }
62 61
63 - protected function register_controls()
64 - {
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 + );
65 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 +
66 164 $this->start_controls_section(
67 165 'section_layout',
68 166 [
69 - 'label' => __('Layout', 'ultimate-store-kit'),
167 + 'label' => __('Additional Options', 'ultimate-store-kit'),
70 168 'tab' => Controls_Manager::TAB_CONTENT,
71 169 ]
72 170 );
73 171
@@ -244,114 +342,11 @@
244 342 'default' => 'yes',
245 343 ]
246 344 );
247 345
248 - $this->add_group_control(
249 - Group_Control_Image_Size::get_type(),
250 - [
251 - 'name' => 'thumbnail',
252 - 'default' => 'medium',
253 - 'separator' => 'before',
254 - 'exclude' => ['custom']
255 - ]
256 - );
257 -
258 346 $this->end_controls_section();
259 347
260 348 $this->start_controls_section(
261 - 'usk_section_list',
262 - [
263 - 'label' => __('Items', 'ultimate-store-kit'),
264 - 'tab' => Controls_Manager::TAB_CONTENT,
265 - ]
266 - );
267 -
268 - $repeater = new Repeater();
269 -
270 - $repeater->add_control(
271 - 'list_icon',
272 - [
273 - 'label' => __('Icon', 'ultimate-store-kit'),
274 - 'type' => Controls_Manager::ICONS,
275 - 'label_block' => false,
276 - 'default' => [
277 - 'value' => 'fas fa-star',
278 - 'library' => 'fa-solid',
279 - ],
280 - 'skin' => 'inline',
281 - ]
282 - );
283 -
284 - $repeater->add_control(
285 - 'title',
286 - [
287 - 'label' => __('Title', 'ultimate-store-kit'),
288 - 'type' => Controls_Manager::TEXT,
289 - 'dynamic' => [
290 - 'active' => true,
291 - ],
292 - 'default' => esc_html__('This is a title', 'ultimate-store-kit'),
293 - 'placeholder' => __('Enter your title', 'ultimate-store-kit'),
294 - 'label_block' => true,
295 - ]
296 - );
297 -
298 - $repeater->add_control(
299 - 'title_link',
300 - [
301 - 'label' => esc_html__('Title Link', 'ultimate-store-kit'),
302 - 'type' => Controls_Manager::URL,
303 - 'dynamic' => [ 'active' => true ],
304 - 'placeholder' => 'http://your-link.com',
305 - ]
306 - );
307 -
308 - $repeater->add_control(
309 - 'text',
310 - [
311 - 'label' => esc_html__('Text', 'ultimate-store-kit'),
312 - 'type' => Controls_Manager::WYSIWYG,
313 - 'label_block' => true,
314 - 'dynamic' => ['active' => true],
315 - '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'),
316 -
317 - ]
318 - );
319 -
320 - $repeater->add_group_control(
321 - Group_Control_Background::get_type(),
322 - [
323 - 'name' => 'item_repeater_background',
324 - 'selector' => '{{WRAPPER}} {{CURRENT_ITEM}}.usk-info-list-item',
325 - 'separator' => 'before'
326 - ]
327 - );
328 -
329 - $this->add_control(
330 - 'info_items',
331 - [
332 - 'show_label' => false,
333 - 'type' => Controls_Manager::REPEATER,
334 - 'fields' => $repeater->get_controls(),
335 - 'default' => [
336 - [
337 - 'title' => __('List Item #1', 'ultimate-store-kit'),
338 - ],
339 - [
340 - 'title' => __('List Item #2', 'ultimate-store-kit'),
341 - ],
342 - [
343 - 'title' => __('List Item #3', 'ultimate-store-kit'),
344 - ],
345 - ],
346 - 'title_field' => '{{{ elementor.helpers.renderIcon( this, list_icon, {}, "i", "panel" ) || \'<i class="{{ icon }}" aria-hidden="true"></i>\' }}} {{{ title }}}',
347 - ]
348 - );
349 -
350 - $this->end_controls_section();
351 -
352 - //Style
353 - $this->start_controls_section(
354 349 'section_style_items',
355 350 [
356 351 'label' => __('Items', 'ultimate-store-kit'),
357 352 'tab' => Controls_Manager::TAB_STYLE,
@@ -597,8 +592,9 @@
597 592 'label' => esc_html__('Color', 'ultimate-store-kit'),
598 593 'type' => Controls_Manager::COLOR,
599 594 'selectors' => [
600 595 '{{WRAPPER}} .usk-info-list-icon span' => 'color: {{VALUE}};',
596 + '{{WRAPPER}} .usk-info-list-icon svg' => 'fill: {{VALUE}};',
601 597 ],
602 598 ]
603 599 );
604 600
@@ -686,8 +682,9 @@
686 682 'label' => esc_html__('Color', 'ultimate-store-kit'),
687 683 'type' => Controls_Manager::COLOR,
688 684 'selectors' => [
689 685 '{{WRAPPER}} .usk-info-list-icon span:hover' => 'color: {{VALUE}};',
686 + '{{WRAPPER}} .usk-info-list-icon span:hover svg' => 'fill: {{VALUE}};',
690 687 ],
691 688 ]
692 689 );
693 690
@@ -713,11 +710,9 @@
713 710 ]
714 711 );
715 712
716 713 $this->end_controls_tab();
717 -
718 714 $this->end_controls_tabs();
719 -
720 715 $this->end_controls_section();
721 716 }
722 717
723 718
@@ -728,22 +723,19 @@
728 723 if (! $settings['show_title']) {
729 724 return;
730 725 }
731 726
732 - $this->add_render_attribute(
733 - [
734 - 'title-link' => [
735 - 'href' => isset($item['title_link']['url']) && !empty($item['title_link']['url']) ? esc_url($item['title_link']['url']) : 'javascript:void(0);',
736 - 'target' => $item['title_link']['is_external'] ? '_blank' : '_self'
737 - ]
738 - ],
739 - '',
740 - '',
741 - true
742 - );
727 + if ( !empty($item['title']) && !empty($item['title_link']['url']) ) {
728 + $this->add_link_attributes('title-link', $item['title_link'], true);
729 + }
743 730
744 731 if (!empty($item['title'])) {
745 - 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']));
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 + );
746 738 }
747 739 }
748 740
749 741 public function render_text($item)