PluginProbe
King Addons for Elementor – 80+ Elementor Widgets, 4 000+ Elementor Templates, WooCommerce, Mega Menu, Popup Builder / 51.1.36
King Addons for Elementor – 80+ Elementor Widgets, 4 000+ Elementor Templates, WooCommerce, Mega Menu, Popup Builder v51.1.36
51.1.83 51.1.82 51.1.81 51.1.79 51.1.78 51.1.77 51.1.76 51.1.74 51.1.75 51.1.65 51.1.64 51.1.63 trunk 51.1.14 51.1.2 51.1.35 51.1.36 51.1.37 51.1.38 51.1.39 51.1.44 51.1.45 51.1.46 51.1.47 51.1.49 All 37 releases
king-addons / includes / widgets / Slider / Slider.php

Slider.php in King Addons for Elementor – 80+ Elementor Widgets, 4 000+ Elementor Templates, WooCommerce, Mega Menu, Popup Builder 51.1.36, at includes/widgets/Slider/Slider.php

3,312 lines 121.4 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace King_Addons;
4
5 use Elementor;
6 use Elementor\Widget_Base;
7 use Elementor\Controls_Manager;
8 use Elementor\Group_Control_Typography;
9 use Elementor\Group_Control_Background;
10 use Elementor\Group_Control_Image_Size;
11 use Elementor\Group_Control_Box_Shadow;
12 use Elementor\Repeater;
13 use Elementor\Icons_Manager;
14 use Elementor\Modules\DynamicTags\Module as TagsModule;
15
16 if (!defined('ABSPATH')) {
17 exit;
18 }
19
20 class Slider extends Widget_Base
21 {
22
23
24
25 public function get_name()
26 {
27 return 'king-addons-slider';
28 }
29
30 public function get_title()
31 {
32 return esc_html__('Slider/Carousel', 'king-addons');
33 }
34
35 public function get_icon()
36 {
37 return 'king-addons-icon king-addons-slider';
38 }
39
40 public function get_categories()
41 {
42 return ['king-addons'];
43 }
44
45 public function get_keywords()
46 {
47 return ['king addons', 'king', 'addons', 'kingaddons', 'king-addons', 'image', 'images', 'media', 'content',
48 'slider', 'carousel', 'post', 'posts', 'image slider', 'slideshow', 'slick',
49 'image carousel', 'template slider', 'posts slider'];
50 }
51
52 public function get_script_depends()
53 {
54 return [
55 KING_ADDONS_ASSETS_UNIQUE_KEY . '-imagesloaded-imagesloaded',
56 KING_ADDONS_ASSETS_UNIQUE_KEY . '-slick-slick',
57 KING_ADDONS_ASSETS_UNIQUE_KEY . '-slider-script'
58 ];
59 }
60
61 public function get_style_depends()
62 {
63 return [
64 KING_ADDONS_ASSETS_UNIQUE_KEY . '-slick-helper',
65 KING_ADDONS_ASSETS_UNIQUE_KEY . '-animation-general',
66 KING_ADDONS_ASSETS_UNIQUE_KEY . '-animation-timing',
67 KING_ADDONS_ASSETS_UNIQUE_KEY . '-slider-style',
68 KING_ADDONS_ASSETS_UNIQUE_KEY . '-general-general',
69 ];
70 }
71
72 public function get_custom_help_url()
73 {
74 return 'mailto:bug@kingaddons.com?subject=Bug Report - King Addons&body=Please describe the issue';
75 }
76
77 public function add_control_slider_effect()
78 {
79 $this->add_control(
80 'slider_effect',
81 [
82 'type' => Controls_Manager::SELECT,
83 'label' => esc_html__('Effect', 'king-addons'),
84 'default' => 'slide',
85 'options' => [
86 'slide' => esc_html__('Slide', 'king-addons'),
87 'sl_vl' => esc_html__('Sl Vertical (Pro)', 'king-addons'),
88 'fade' => esc_html__('Fade', 'king-addons'),
89 ],
90 'separator' => 'before'
91 ]
92 );
93 }
94
95 public function add_control_slider_nav_hover()
96 {
97 $this->add_control(
98 'slider_nav_hover',
99 [
100 'label' => sprintf(__('Show on Hover %s', 'king-addons'), '<i class="eicon-pro-icon"></i>'),
101 'type' => Controls_Manager::SWITCHER,
102 'classes' => 'king-addons-pro-control no-distance'
103 ]
104 );
105 }
106
107 public function add_control_slider_dots_layout()
108 {
109 $this->add_control(
110 'slider_dots_layout',
111 [
112 'label' => esc_html__('Pagination Layout', 'king-addons'),
113 'type' => Controls_Manager::SELECT,
114 'default' => 'horizontal',
115 'options' => [
116 'horizontal' => esc_html__('Horizontal', 'king-addons'),
117 'pro-vr' => esc_html__('Vertical (Pro)', 'king-addons'),
118 ],
119 'prefix_class' => 'king-addons-slider-dots-',
120 'render_type' => 'template',
121 ]
122 );
123 }
124
125 public function add_control_slider_autoplay()
126 {
127 $this->add_control(
128 'slider_autoplay',
129 [
130 'label' => sprintf(__('Autoplay %s', 'king-addons'), '<i class="eicon-pro-icon"></i>'),
131 'type' => Controls_Manager::SWITCHER,
132 'separator' => 'before',
133 'classes' => 'king-addons-pro-control'
134 ]
135 );
136 }
137
138 public function add_control_slider_autoplay_duration()
139 {
140 }
141
142 public function add_control_slider_pause_on_hover()
143 {
144 $this->add_control(
145 'pause_on_hover',
146 [
147 'label' => sprintf(__('Pause on Hover %s', 'king-addons'), '<i class="eicon-pro-icon"></i>'),
148 'type' => Controls_Manager::SWITCHER,
149 'classes' => 'king-addons-pro-control no-distance'
150 ]
151 );
152 }
153
154 public function add_control_slider_scroll_btn()
155 {
156 $this->add_control(
157 'slider_scroll_btn',
158 [
159 'label' => sprintf(__('Scroll to Section Button %s', 'king-addons'), '<i class="eicon-pro-icon"></i>'),
160 'type' => Controls_Manager::SWITCHER,
161 'separator' => 'before',
162 'classes' => 'king-addons-pro-control'
163 ]
164 );
165 }
166
167 public function add_repeater_args_slider_item_bg_kenburns()
168 {
169 return [
170 'label' => sprintf(__('Ken Burn Effect %s', 'king-addons'), '<i class="eicon-pro-icon"></i>'),
171 'type' => Controls_Manager::SWITCHER,
172 'separator' => 'before',
173 'conditions' => [
174 'terms' => [
175 [
176 'name' => 'slider_item_bg_image[url]',
177 'operator' => '!=',
178 'value' => '',
179 ],
180 ],
181 ],
182 'classes' => 'king-addons-pro-control'
183 ];
184 }
185
186 public function add_repeater_args_slider_item_bg_zoom()
187 {
188 return [
189 'type' => Controls_Manager::HIDDEN,
190 'default' => ''
191 ];
192 }
193
194 public function add_repeater_args_slider_content_type()
195 {
196 return [
197 'custom' => esc_html__('Custom', 'king-addons'),
198 'pro-tm' => esc_html__('Elementor Template (Pro)', 'king-addons'),
199 ];
200 }
201
202 public function add_repeater_args_slider_select_template()
203 {
204 return [
205 'type' => Controls_Manager::HIDDEN,
206 'default' => ''
207 ];
208 }
209
210 public function add_repeater_args_slider_item_link_type()
211 {
212 return [
213 'label' => esc_html__('Link Type', 'king-addons'),
214 'type' => Controls_Manager::SELECT,
215 'default' => 'none',
216 'options' => [
217 'none' => esc_html__('None', 'king-addons'),
218 'pro-cstm' => esc_html__('Custom URL (Pro)', 'king-addons'),
219 'pro-yt' => esc_html__('Youtube (Pro)', 'king-addons'),
220 'pro-vm' => esc_html__('Vimeo (Pro)', 'king-addons'),
221 'pro-md' => esc_html__('Custom Video (Pro)', 'king-addons')
222 ],
223 'condition' => [
224 'slider_content_type' => 'custom'
225 ],
226 'separator' => 'before'
227 ];
228 }
229
230 public function add_section_style_scroll_btn()
231 {
232 }
233
234 public function add_control_slider_amount()
235 {
236 $this->add_responsive_control(
237 'slider_amount',
238 [
239 'label' => esc_html__('Columns (Carousel)', 'king-addons'),
240 'type' => Controls_Manager::SELECT,
241 'label_block' => false,
242 'default' => 1,
243 'widescreen_default' => 1,
244 'laptop_default' => 1,
245 'tablet_extra_default' => 1,
246 'tablet_default' => 1,
247 'mobile_extra_default' => 1,
248 'mobile_default' => 1,
249 'options' => [
250 1 => esc_html__('One', 'king-addons'),
251 2 => esc_html__('Two', 'king-addons'),
252 'pro-3' => esc_html__('Three (Pro)', 'king-addons'),
253 'pro-4' => esc_html__('Four (Pro)', 'king-addons'),
254 'pro-5' => esc_html__('Five (Pro)', 'king-addons'),
255 'pro-6' => esc_html__('Six (Pro)', 'king-addons'),
256 ],
257 'prefix_class' => 'king-addons-adv-slider-columns-%s',
258 'render_type' => 'template',
259 'frontend_available' => true,
260 'separator' => 'before',
261 'condition' => [
262 'slider_effect!' => 'slide_vertical'
263 ]
264 ]
265 );
266 }
267
268 public function add_control_slides_to_scroll()
269 {
270 $this->add_control(
271 'slides_to_scroll',
272 [
273 'label' => esc_html__('Slides to Scroll', 'king-addons'),
274 'type' => Controls_Manager::NUMBER,
275 'min' => 1,
276 'max' => 2,
277 'prefix_class' => 'king-addons-adv-slides-to-scroll-',
278 'render_type' => 'template',
279 'frontend_available' => true,
280 'default' => 1,
281 'condition' => [
282 'slider_effect!' => 'slide_vertical'
283 ]
284 ]
285 );
286 }
287
288 public function add_control_stack_slider_nav_position()
289 {
290 }
291
292 public function add_control_slider_dots_hr()
293 {
294 }
295
296 protected function register_controls()
297 {
298
299
300 $this->start_controls_section(
301 'settings_section_slides',
302 [
303 'label' => KING_ADDONS_ELEMENTOR_ICON . esc_html__('Slides', 'king-addons'),
304 ]
305 );
306
307 $repeater = new Repeater();
308
309 $repeater->add_control(
310 'slider_content_type',
311 [
312 'label' => esc_html__('Content Type', 'king-addons'),
313 'type' => Controls_Manager::SELECT,
314 'default' => 'custom',
315 'options' => $this->add_repeater_args_slider_content_type(),
316 'render_type' => 'template'
317 ]
318 );
319
320 Core::renderUpgradeProNotice($repeater, Controls_Manager::RAW_HTML, 'slider', 'slider_content_type', ['pro-tm']);
321
322 $repeater->add_control('slider_select_template', $this->add_repeater_args_slider_select_template());
323
324 $repeater->add_control(
325 'slider_content_type_divider',
326 [
327 'type' => Controls_Manager::DIVIDER,
328 'style' => 'thick',
329 ]
330 );
331
332 $repeater->start_controls_tabs('tabs_slider_item');
333
334 $repeater->start_controls_tab(
335 'tab_slider_item_background',
336 [
337 'label' => esc_html__('Background', 'king-addons'),
338 ]
339 );
340
341 $repeater->add_control(
342 'slider_item_bg_image',
343 [
344 'label' => esc_html__('Image', 'king-addons'),
345 'type' => Controls_Manager::MEDIA,
346 'dynamic' => [
347 'active' => true,
348 ]
349 ]
350 );
351
352 $repeater->add_control(
353 'slider_item_bg_size',
354 [
355 'label' => esc_html__('Size', 'king-addons'),
356 'type' => Controls_Manager::SELECT,
357 'default' => 'cover',
358 'options' => [
359 'cover' => esc_html__('Cover', 'king-addons'),
360 'contain' => esc_html__('Contain', 'king-addons'),
361 'auto' => esc_html__('Auto', 'king-addons'),
362 ],
363 'selectors' => [
364 '{{WRAPPER}} {{CURRENT_ITEM}} .king-addons-slider-item-bg' => 'background-size: {{VALUE}}',
365 ],
366
367
368 ]
369 );
370
371 $repeater->add_control('slider_item_link_type', $this->add_repeater_args_slider_item_link_type());
372
373
374 Core::renderUpgradeProNotice($repeater, Controls_Manager::RAW_HTML, 'slider', 'slider_item_link_type', ['pro-cstm', 'pro-yt', 'pro-vm', 'pro-md']);
375
376 $repeater->add_control(
377 'vimeo_notice',
378 [
379 'type' => Controls_Manager::RAW_HTML,
380 'raw' => 'Please Upload Background Image',
381 'content_classes' => 'elementor-panel-alert elementor-panel-alert-info',
382 'condition' => [
383 'slider_item_link_type' => 'video-vimeo'
384 ]
385 ]
386 );
387
388 $repeater->add_control(
389 'slider_item_bg_image_url',
390 [
391 'type' => Controls_Manager::URL,
392 'dynamic' => [
393 'active' => true,
394 ],
395 'placeholder' => esc_html__('https://example.com', 'king-addons'),
396 'show_label' => false,
397 'condition' => [
398 'slider_item_link_type' => 'custom',
399 ],
400 ]
401 );
402
403 $repeater->add_control(
404 'hosted_url',
405 [
406 'label' => esc_html__('Choose File', 'elementor'),
407 'type' => Controls_Manager::MEDIA,
408 'dynamic' => [
409 'active' => true,
410 'categories' => [
411 TagsModule::MEDIA_CATEGORY,
412 ],
413 ],
414 'media_type' => 'video',
415 'condition' => [
416 'slider_content_type' => 'custom',
417 'slider_item_link_type' => 'video-media',
418 ],
419 'ai' => [
420 'active' => false,
421 ],
422 ]
423 );
424
425 $repeater->add_control(
426 'slider_item_video_src',
427 [
428 'label' => esc_html__('Video URL', 'king-addons'),
429 'type' => Controls_Manager::TEXT,
430 'dynamic' => [
431 'active' => true,
432 ],
433 'placeholder' => esc_html__('https://example.com', 'king-addons'),
434 'condition' => [
435 'slider_content_type' => 'custom',
436 'slider_item_link_type' => ['video-youtube', 'video-vimeo'],
437 ],
438 ]
439 );
440
441 $repeater->add_control(
442 'slider_item_video_autoplay',
443 [
444 'label' => esc_html__('Autoplay', 'king-addons'),
445 'type' => Controls_Manager::SWITCHER,
446 'condition' => [
447 'slider_content_type' => 'custom',
448 'slider_item_link_type' => ['video-youtube', 'video-vimeo', 'video-media'],
449 ],
450 ]
451 );
452
453 $repeater->add_control(
454 'slider_item_video_loop',
455 [
456 'label' => esc_html__('Loop', 'king-addons'),
457 'type' => Controls_Manager::SWITCHER,
458 'condition' => [
459 'slider_content_type' => 'custom',
460 'slider_item_link_type' => ['video-youtube', 'video-vimeo', 'video-media'],
461 ],
462 ]
463 );
464
465 $repeater->add_control(
466 'slider_item_video_mute',
467 [
468 'label' => esc_html__('Mute', 'king-addons'),
469 'type' => Controls_Manager::SWITCHER,
470 'condition' => [
471 'slider_content_type' => 'custom',
472 'slider_item_link_type' => ['video-youtube', 'video-vimeo', 'video-media'],
473 ],
474 ]
475 );
476
477 $repeater->add_control(
478 'slider_item_video_controls',
479 [
480 'label' => esc_html__('Controls', 'king-addons'),
481 'type' => Controls_Manager::SWITCHER,
482 'condition' => [
483 'slider_content_type' => 'custom',
484 'slider_item_link_type' => ['video-youtube', 'video-vimeo', 'video-media'],
485 ],
486 ]
487 );
488
489 $repeater->add_control(
490 'slider_item_video_start',
491 [
492 'label' => esc_html__('Start Time', 'king-addons'),
493 'type' => Controls_Manager::NUMBER,
494 'min' => 0,
495 'description' => esc_html__('Specify a start time (in seconds)', 'king-addons'),
496 'frontend_available' => true,
497 'condition' => [
498 'slider_content_type' => 'custom',
499 'slider_item_link_type' => ['video-youtube', 'video-vimeo'],
500 'slider_item_video_loop!' => 'yes',
501 ],
502 ]
503 );
504
505 $repeater->add_control(
506 'slider_item_video_end',
507 [
508 'label' => esc_html__('End Time', 'king-addons'),
509 'type' => Controls_Manager::NUMBER,
510 'min' => 0,
511 'description' => esc_html__('Specify an end time (in seconds)', 'king-addons'),
512 'frontend_available' => true,
513 'condition' => [
514 'slider_content_type' => 'custom',
515 'slider_item_link_type' => 'video-youtube',
516 'slider_item_video_loop!' => 'yes',
517 ],
518 ]
519 );
520
521 $repeater->add_control('slider_item_bg_kenburns', $this->add_repeater_args_slider_item_bg_kenburns());
522
523 $repeater->add_control('slider_item_bg_zoom', $this->add_repeater_args_slider_item_bg_zoom());
524
525 $repeater->add_control(
526 'overlay_divider',
527 [
528 'type' => Controls_Manager::DIVIDER,
529 'style' => 'thick',
530 ]
531 );
532
533 $repeater->add_control(
534 'slider_item_overlay',
535 [
536 'label' => esc_html__('Background Overlay', 'king-addons'),
537 'type' => Controls_Manager::SWITCHER,
538 'default' => 'yes',
539 'render_type' => 'template',
540 'condition' => [
541 'slider_content_type' => 'custom'
542 ]
543 ]
544 );
545
546 $repeater->add_control(
547 'slider_item_overlay_bg',
548 [
549 'label' => esc_html__('Color', 'king-addons'),
550 'type' => Controls_Manager::COLOR,
551 'default' => 'rgba(236,64,122,0.8)',
552 'selectors' => [
553 '{{WRAPPER}} {{CURRENT_ITEM}} .king-addons-slider-item-overlay' => 'background-color: {{VALUE}}',
554 ],
555 'condition' => [
556 'slider_item_overlay' => 'yes',
557 'slider_content_type' => 'custom'
558 ],
559 ]
560 );
561
562 $repeater->add_control(
563 'slider_item_blend_mode',
564 [
565 'label' => esc_html__('Blend Mode', 'king-addons'),
566 'type' => Controls_Manager::SELECT,
567 'default' => 'normal',
568 'options' => [
569 'normal' => esc_html__('Normal', 'king-addons'),
570 'multiply' => esc_html__('Multiply', 'king-addons'),
571 'screen' => esc_html__('Screen', 'king-addons'),
572 'overlay' => esc_html__('Overlay', 'king-addons'),
573 'darken' => esc_html__('Darken', 'king-addons'),
574 'lighten' => esc_html__('Lighten', 'king-addons'),
575 'color-dodge' => esc_html__('Color-dodge', 'king-addons'),
576 'color-burn' => esc_html__('Color-burn', 'king-addons'),
577 'hard-light' => esc_html__('Hard-light', 'king-addons'),
578 'soft-light' => esc_html__('Soft-light', 'king-addons'),
579 'difference' => esc_html__('Difference', 'king-addons'),
580 'exclusion' => esc_html__('Exclusion', 'king-addons'),
581 'hue' => esc_html__('Hue', 'king-addons'),
582 'saturation' => esc_html__('Saturation', 'king-addons'),
583 'color' => esc_html__('Color', 'king-addons'),
584 'luminosity' => esc_html__('luminosity', 'king-addons'),
585 ],
586 'render_type' => 'template',
587 'selectors' => [
588 '{{WRAPPER}} {{CURRENT_ITEM}} .king-addons-slider-item-overlay' => 'mix-blend-mode: {{VALUE}}',
589 ],
590 'condition' => [
591 'slider_item_overlay' => 'yes',
592 'slider_content_type' => 'custom'
593 ],
594 ]
595 );
596
597 $repeater->end_controls_tab();
598
599 $repeater->start_controls_tab(
600 'tab_slider_item_content',
601 [
602 'label' => esc_html__('Content', 'king-addons'),
603 ]
604 );
605
606 $repeater->add_control(
607 'slider_show_content',
608 [
609 'label' => esc_html__('Show Sldier Content', 'king-addons'),
610 'type' => Controls_Manager::SWITCHER,
611 'default' => 'yes',
612 'separator' => 'after'
613 ]
614 );
615
616 $repeater->add_control(
617 'slider_title_tag',
618 [
619 'label' => esc_html__('Title HTML Tag', 'king-addons'),
620 'type' => Controls_Manager::SELECT,
621 'options' => [
622 'h1' => esc_html__('H1', 'king-addons'),
623 'h2' => esc_html__('H2', 'king-addons'),
624 'h3' => esc_html__('H3', 'king-addons'),
625 'h4' => esc_html__('H4', 'king-addons'),
626 'h5' => esc_html__('H5', 'king-addons'),
627 'h6' => esc_html__('H6', 'king-addons'),
628 'div' => 'div',
629 'span' => 'span',
630 'P' => 'p'
631 ],
632 'default' => 'h2',
633 'condition' => [
634 'slider_show_content' => 'yes',
635 ]
636 ]
637 );
638
639 $repeater->add_control(
640 'slider_item_title',
641 [
642 'label' => esc_html__('Title', 'king-addons'),
643 'type' => Controls_Manager::TEXT,
644 'dynamic' => [
645 'active' => true,
646 ],
647 'default' => 'Slide Title',
648 'condition' => [
649 'slider_show_content' => 'yes',
650 ],
651 ]
652 );
653
654 $repeater->add_control(
655 'slider_sub_title_tag',
656 [
657 'label' => esc_html__('Sub Title HTML Tag', 'king-addons'),
658 'type' => Controls_Manager::SELECT,
659 'options' => [
660 'h1' => esc_html__('H1', 'king-addons'),
661 'h2' => esc_html__('H2', 'king-addons'),
662 'h3' => esc_html__('H3', 'king-addons'),
663 'h4' => esc_html__('H4', 'king-addons'),
664 'h5' => esc_html__('H5', 'king-addons'),
665 'h6' => esc_html__('H6', 'king-addons'),
666 'div' => 'div',
667 'span' => 'span',
668 'P' => 'p'
669 ],
670 'default' => 'h3',
671 'condition' => [
672 'slider_show_content' => 'yes',
673 ]
674 ]
675 );
676
677 $repeater->add_control(
678 'slider_item_sub_title',
679 [
680 'label' => esc_html__('Sub Title', 'king-addons'),
681 'type' => Controls_Manager::TEXT,
682 'dynamic' => [
683 'active' => true,
684 ],
685 'default' => 'Slide Sub Title',
686 'condition' => [
687 'slider_show_content' => 'yes',
688 ],
689 ]
690 );
691
692 $repeater->add_control(
693 'slider_item_description',
694 [
695 'label' => esc_html__('Description', 'king-addons'),
696 'type' => Controls_Manager::TEXTAREA,
697 'dynamic' => [
698 'active' => true,
699 ],
700 'default' => 'Slider Description Text, Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur laoreet cursus volutpat. Aliquam sit amet ligula et justo tincidunt laoreet non vitae lorem. ',
701 'condition' => [
702 'slider_show_content' => 'yes',
703 ],
704 ]
705 );
706
707 $repeater->add_control(
708 'slider_item_btn_1_divider',
709 [
710 'type' => Controls_Manager::DIVIDER,
711 'style' => 'thick',
712 'condition' => [
713 'slider_show_content' => 'yes',
714 ],
715 ]
716 );
717
718 $repeater->add_responsive_control(
719 'slider_item_btn_1',
720 [
721 'label' => esc_html__('Button Primary', 'king-addons'),
722 'type' => Controls_Manager::SWITCHER,
723 'default' => 'yes',
724 'widescreen_default' => 'yes',
725 'laptop_default' => 'yes',
726 'tablet_extra_default' => 'yes',
727 'tablet_default' => 'yes',
728 'mobile_extra_default' => 'yes',
729 'mobile_default' => 'yes',
730 'selectors_dictionary' => [
731 '' => 'none',
732 'yes' => 'inline-block'
733 ],
734 'selectors' => [
735 '{{WRAPPER}} {{CURRENT_ITEM}} .king-addons-slider-primary-btn' => 'display:{{VALUE}};',
736 ],
737 'condition' => [
738 'slider_show_content' => 'yes',
739 ],
740 'render_type' => 'template'
741 ]
742 );
743
744 $repeater->add_control(
745 'slider_item_btn_text_1',
746 [
747 'label' => esc_html__('Text', 'king-addons'),
748 'type' => Controls_Manager::TEXT,
749 'dynamic' => [
750 'active' => true,
751 ],
752 'default' => 'Button 1',
753 'condition' => [
754 'slider_item_btn_1' => 'yes',
755 'slider_show_content' => 'yes',
756 ],
757 ]
758 );
759
760 $repeater->add_control(
761 'slider_item_btn_icon_1',
762 [
763 'label' => esc_html__('Select Icon', 'king-addons'),
764 'type' => Controls_Manager::ICONS,
765 'skin' => 'inline',
766 'label_block' => false,
767 'condition' => [
768 'slider_item_btn_1' => 'yes',
769 'slider_show_content' => 'yes',
770 ],
771 ]
772 );
773
774 $repeater->add_control(
775 'slider_item_btn_url_1',
776 [
777 'label' => esc_html__('Link', 'king-addons'),
778 'type' => Controls_Manager::URL,
779 'dynamic' => [
780 'active' => true,
781 ],
782 'label_block' => false,
783 'placeholder' => esc_html__('https://example.com', 'king-addons'),
784 'condition' => [
785 'slider_item_btn_1' => 'yes',
786 'slider_show_content' => 'yes',
787 ],
788 ]
789 );
790
791 $repeater->add_control(
792 'slider_item_btn_2_divider',
793 [
794 'type' => Controls_Manager::DIVIDER,
795 'style' => 'thick',
796 'condition' => [
797 'slider_show_content' => 'yes',
798 ],
799 ]
800 );
801
802 $repeater->add_responsive_control(
803 'slider_item_btn_2',
804 [
805 'label' => esc_html__('Button Secondary', 'king-addons'),
806 'type' => Controls_Manager::SWITCHER,
807 'default' => 'yes',
808 'widescreen_default' => 'yes',
809 'laptop_default' => 'yes',
810 'tablet_extra_default' => 'yes',
811 'tablet_default' => 'yes',
812 'mobile_extra_default' => 'yes',
813 'mobile_default' => 'yes',
814 'selectors_dictionary' => [
815 '' => 'none',
816 'yes' => 'inline-block'
817 ],
818 'selectors' => [
819 '{{WRAPPER}} {{CURRENT_ITEM}} .king-addons-slider-secondary-btn' => 'display:{{VALUE}};',
820 ],
821 'condition' => [
822 'slider_show_content' => 'yes',
823 ],
824 'render_type' => 'template'
825 ]
826 );
827
828 $repeater->add_control(
829 'slider_item_btn_text_2',
830 [
831 'label' => esc_html__('Text', 'king-addons'),
832 'type' => Controls_Manager::TEXT,
833 'dynamic' => [
834 'active' => true,
835 ],
836 'default' => 'Button 2',
837 'condition' => [
838 'slider_item_btn_2' => 'yes',
839 'slider_show_content' => 'yes',
840 ],
841 ]
842 );
843
844 $repeater->add_control(
845 'slider_item_btn_icon_2',
846 [
847 'label' => esc_html__('Select Icon', 'king-addons'),
848 'type' => Controls_Manager::ICONS,
849 'skin' => 'inline',
850 'label_block' => false,
851 'condition' => [
852 'slider_item_btn_2' => 'yes',
853 'slider_show_content' => 'yes',
854 ],
855 ]
856 );
857
858 $repeater->add_control(
859 'slider_item_btn_url_2',
860 [
861 'label' => esc_html__('Link', 'king-addons'),
862 'type' => Controls_Manager::URL,
863 'dynamic' => [
864 'active' => true,
865 ],
866 'label_block' => false,
867 'placeholder' => esc_html__('https://example.com', 'king-addons'),
868 'condition' => [
869 'slider_item_btn_2' => 'yes',
870 'slider_show_content' => 'yes',
871 ],
872 ]
873 );
874
875 $repeater->end_controls_tab();
876
877 $repeater->end_controls_tabs();
878
879 $this->add_control(
880 'slider_items',
881 [
882 'type' => Controls_Manager::REPEATER,
883 'fields' => $repeater->get_controls(),
884 'default' => [
885 [
886 'slider_item_title' => esc_html__('Slide 1 Title', 'king-addons'),
887 'slider_item_sub_title' => esc_html__('Slide 1 Sub Title', 'king-addons'),
888 'slider_item_description' => esc_html__('Slider 1 Description Text, Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur laoreet cursus volutpat. Aliquam sit amet ligula et justo tincidunt laoreet non vitae lorem. ', 'king-addons'),
889 'slider_item_btn_text_1' => esc_html__('Button 1', 'king-addons'),
890 'slider_item_btn_text_2' => esc_html__('Button 2', 'king-addons'),
891 'slider_item_overlay_bg' => '#1300B19C',
892 ],
893 [
894 'slider_item_title' => esc_html__('Slide 2 Title', 'king-addons'),
895 'slider_item_sub_title' => esc_html__('Slide 2 Sub Title', 'king-addons'),
896 'slider_item_description' => esc_html__('Slider 2 Description Text, Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur laoreet cursus volutpat. Aliquam sit amet ligula et justo tincidunt laoreet non vitae lorem. ', 'king-addons'),
897 'slider_item_btn_text_1' => esc_html__('Button 1', 'king-addons'),
898 'slider_item_btn_text_2' => esc_html__('Button 2', 'king-addons'),
899 'slider_item_overlay_bg' => '#0D7C00AB',
900 ],
901 [
902 'slider_item_title' => esc_html__('Slide 3 Title', 'king-addons'),
903 'slider_item_sub_title' => esc_html__('Slide 3 Sub Title', 'king-addons'),
904 'slider_item_description' => esc_html__('Slider 3 Description Text, Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur laoreet cursus volutpat. Aliquam sit amet ligula et justo tincidunt laoreet non vitae lorem. ', 'king-addons'),
905 'slider_item_btn_text_1' => esc_html__('Button 1', 'king-addons'),
906 'slider_item_btn_text_2' => esc_html__('Button 2', 'king-addons'),
907 'slider_item_overlay_bg' => '#D5040094',
908 ],
909 ],
910 'title_field' => '{{{ slider_item_title }}}',
911 ]
912 );
913
914 if (!king_addons_freemius()->can_use_premium_code__premium_only()) {
915 $this->add_control(
916 'slider_repeater_pro_notice',
917 [
918 'type' => Controls_Manager::RAW_HTML,
919 'raw' => 'More than 4 Slides are available<br> in the <strong><a href="https://kingaddons.com/pricing/?utm_source=kng-module-slider-settings-upgrade-pro&utm_medium=plugin&utm_campaign=kng" target="_blank">Pro version</a></strong>',
920
921 'content_classes' => 'king-addons-pro-notice',
922 ]
923 );
924 }
925
926 $this->end_controls_section();
927
928
929 $this->start_controls_section(
930 'settings_section_slider_options',
931 [
932 'label' => KING_ADDONS_ELEMENTOR_ICON . esc_html__('Settings', 'king-addons'),
933 'type' => Controls_Manager::SECTION,
934 ]
935 );
936
937 $this->add_group_control(
938 Group_Control_Image_Size::get_type(),
939 [
940 'name' => 'slider_image_size',
941 'default' => 'full',
942 ]
943 );
944
945 $this->add_control(
946 'slider_image_type',
947 [
948 'label' => esc_html__('Media Type', 'king-addons'),
949 'type' => Controls_Manager::SELECT,
950 'default' => 'background',
951 'options' => [
952 'background' => esc_html__('Background', 'king-addons'),
953 'image' => esc_html__('Image', 'king-addons')
954 ]
955 ]
956 );
957
958 $this->add_responsive_control(
959 'slider_height',
960 [
961 'type' => Controls_Manager::SLIDER,
962 'label' => esc_html__('Height', 'king-addons'),
963 'size_units' => ['px', 'vh'],
964 'range' => [
965 'px' => [
966 'min' => 20,
967 'max' => 1500,
968 ],
969 'vh' => [
970 'min' => 20,
971 'max' => 100,
972 ],
973 ],
974 'default' => [
975 'unit' => 'px',
976 'size' => 500,
977 ],
978 'selectors' => [
979 '{{WRAPPER}} .king-addons-advanced-slider' => 'height: {{SIZE}}{{UNIT}};',
980 '{{WRAPPER}} .king-addons-slider-item' => 'height: {{SIZE}}{{UNIT}};',
981 '{{WRAPPER}} .slick-list' => 'height: {{SIZE}}{{UNIT}};'
982 ],
983 'separator' => 'before',
984 'condition' => [
985 'slider_image_type' => 'background'
986 ]
987 ]
988 );
989
990 $this->add_control_slider_amount();
991
992 if (!king_addons_freemius()->can_use_premium_code__premium_only()) {
993 $this->add_control(
994 'slider_columns_pro_notice',
995 [
996 'type' => Controls_Manager::RAW_HTML,
997 'raw' => 'Slider Columns option is fully supported<br> in the <strong><a href="https://kingaddons.com/pricing/?utm_source=kng-module-advanced-slider-settings-upgrade-pro&utm_medium=plugin&utm_campaign=kng" target="_blank">Pro version</a></strong>',
998
999 'content_classes' => 'king-addons-pro-notice',
1000 ]
1001 );
1002 }
1003
1004 $this->add_control_slides_to_scroll();
1005
1006 $this->add_control(
1007 'slides_amount_hidden',
1008 [
1009 'type' => Controls_Manager::HIDDEN,
1010 'prefix_class' => 'king-addons-adv-slider-columns-',
1011 'default' => 1,
1012 'condition' => [
1013 'slider_effect' => 'slide_vertical'
1014 ]
1015 ]
1016 );
1017
1018 $this->add_control(
1019 'slides_to_scroll_hidden',
1020 [
1021 'type' => Controls_Manager::HIDDEN,
1022 'prefix_class' => 'king-addons-adv-slides-to-scroll-',
1023 'default' => 1,
1024 'condition' => [
1025 'slider_effect' => 'slide_vertical'
1026 ]
1027 ]
1028 );
1029
1030 $this->add_responsive_control(
1031 'slider_gutter',
1032 [
1033 'type' => Controls_Manager::SLIDER,
1034 'label' => esc_html__('Gutter', 'king-addons'),
1035 'size_units' => ['px'],
1036 'range' => [
1037 'px' => [
1038 'min' => 0,
1039 'max' => 300,
1040 ]
1041 ],
1042 'default' => [
1043 'unit' => 'px',
1044 'size' => 0,
1045 ],
1046 'selectors' => [
1047 '{{WRAPPER}} .king-addons-advanced-slider .slick-slide' => 'margin-left: {{SIZE}}{{UNIT}};',
1048 '{{WRAPPER}} .king-addons-advanced-slider .slick-list' => 'margin-left: -{{SIZE}}{{UNIT}};',
1049 ],
1050 'render_type' => 'template',
1051 'condition' => [
1052 'slider_amount!' => '1',
1053 ],
1054 ]
1055 );
1056
1057 $this->add_responsive_control(
1058 'slider_title',
1059 [
1060 'label' => esc_html__('Title', 'king-addons'),
1061 'type' => Controls_Manager::SWITCHER,
1062 'default' => 'yes',
1063 'widescreen_default' => 'yes',
1064 'laptop_default' => 'yes',
1065 'tablet_extra_default' => 'yes',
1066 'tablet_default' => 'yes',
1067 'mobile_extra_default' => 'yes',
1068 'mobile_default' => 'yes',
1069 'selectors_dictionary' => [
1070 '' => 'none',
1071 'yes' => 'block'
1072 ],
1073 'selectors' => [
1074 '{{WRAPPER}} .king-addons-slider-title' => 'display:{{VALUE}};',
1075 ],
1076 'separator' => 'before',
1077 'render_type' => 'template'
1078 ]
1079 );
1080
1081 $this->add_control(
1082 'slider_title_tag',
1083 [
1084 'label' => esc_html__('Title HTML Tag', 'king-addons'),
1085 'type' => Controls_Manager::SELECT,
1086 'options' => [
1087 'h1' => esc_html__('H1', 'king-addons'),
1088 'h2' => esc_html__('H2', 'king-addons'),
1089 'h3' => esc_html__('H3', 'king-addons'),
1090 'h4' => esc_html__('H4', 'king-addons'),
1091 'h5' => esc_html__('H5', 'king-addons'),
1092 'h6' => esc_html__('H6', 'king-addons')
1093 ],
1094 'default' => 'h2',
1095 'condition' => [
1096 'slider_title' => 'yes'
1097 ]
1098 ]
1099 );
1100
1101 $this->add_responsive_control(
1102 'slider_sub_title',
1103 [
1104 'label' => esc_html__('Sub Title', 'king-addons'),
1105 'type' => Controls_Manager::SWITCHER,
1106 'default' => 'yes',
1107 'widescreen_default' => 'yes',
1108 'laptop_default' => 'yes',
1109 'tablet_extra_default' => 'yes',
1110 'tablet_default' => 'yes',
1111 'mobile_extra_default' => 'yes',
1112 'mobile_default' => 'yes',
1113 'selectors_dictionary' => [
1114 '' => 'none',
1115 'yes' => 'block'
1116 ],
1117 'selectors' => [
1118 '{{WRAPPER}} .king-addons-slider-sub-title' => 'display:{{VALUE}};',
1119 ],
1120 'render_type' => 'template'
1121 ]
1122 );
1123
1124 $this->add_control(
1125 'slider_sub_title_tag',
1126 [
1127 'label' => esc_html__('Sub Title HTML Tag', 'king-addons'),
1128 'type' => Controls_Manager::SELECT,
1129 'options' => [
1130 'h1' => esc_html__('H1', 'king-addons'),
1131 'h2' => esc_html__('H2', 'king-addons'),
1132 'h3' => esc_html__('H3', 'king-addons'),
1133 'h4' => esc_html__('H4', 'king-addons'),
1134 'h5' => esc_html__('H5', 'king-addons'),
1135 'h6' => esc_html__('H6', 'king-addons')
1136 ],
1137 'default' => 'h3',
1138 'condition' => [
1139 'slider_sub_title' => 'yes'
1140 ]
1141 ]
1142 );
1143
1144 $this->add_responsive_control(
1145 'slider_description',
1146 [
1147 'label' => esc_html__('Description', 'king-addons'),
1148 'type' => Controls_Manager::SWITCHER,
1149 'default' => 'yes',
1150 'widescreen_default' => 'yes',
1151 'laptop_default' => 'yes',
1152 'tablet_extra_default' => 'yes',
1153 'tablet_default' => 'yes',
1154 'mobile_extra_default' => 'yes',
1155 'mobile_default' => 'yes',
1156 'selectors_dictionary' => [
1157 '' => 'none',
1158 'yes' => 'block'
1159 ],
1160 'selectors' => [
1161 '{{WRAPPER}} .king-addons-slider-description' => 'display:{{VALUE}};',
1162 ],
1163 'separator' => 'after',
1164 'render_type' => 'template'
1165 ]
1166 );
1167
1168 $this->add_responsive_control(
1169 'slider_nav',
1170 [
1171 'label' => esc_html__('Navigation', 'king-addons'),
1172 'type' => Controls_Manager::SWITCHER,
1173 'default' => 'yes',
1174 'widescreen_default' => 'yes',
1175 'laptop_default' => 'yes',
1176 'tablet_extra_default' => 'yes',
1177 'tablet_default' => 'yes',
1178 'mobile_extra_default' => 'yes',
1179 'mobile_default' => 'yes',
1180 'selectors_dictionary' => [
1181 '' => 'none',
1182 'yes' => 'flex'
1183 ],
1184 'selectors' => [
1185 '{{WRAPPER}} .king-addons-slider-arrow' => 'display:{{VALUE}} !important;',
1186 ],
1187 'render_type' => 'template'
1188 ]
1189 );
1190
1191 $this->add_control_slider_nav_hover();
1192
1193 $this->add_control(
1194 'slider_nav_icon',
1195 [
1196 'label' => esc_html__('Select Icon', 'king-addons'),
1197 'type' => Controls_Manager::SELECT,
1198 'default' => 'fas fa-angle-left',
1199 'options' => [
1200 'fas fa-angle-left' => esc_html__('Angle', 'king-addons'),
1201 'fas fa-angle-double-left' => esc_html__('Angle Double', 'king-addons'),
1202 'fas fa-arrow-left' => esc_html__('Arrow', 'king-addons'),
1203 'fas fa-arrow-alt-circle-left' => esc_html__('Arrow Circle', 'king-addons'),
1204 'far fa-arrow-alt-circle-left' => esc_html__('Arrow Circle Alt', 'king-addons'),
1205 'fas fa-long-arrow-alt-left' => esc_html__('Long Arrow', 'king-addons'),
1206 'fas fa-chevron-left' => esc_html__('Chevron', 'king-addons'),
1207 ],
1208 'condition' => [
1209 'slider_nav' => 'yes',
1210 ],
1211 'separator' => 'after',
1212 'render_type' => 'template'
1213 ]
1214 );
1215
1216 $this->add_responsive_control(
1217 'slider_dots',
1218 [
1219 'label' => esc_html__('Pagination', 'king-addons'),
1220 'type' => Controls_Manager::SWITCHER,
1221 'default' => 'yes',
1222 'widescreen_default' => 'yes',
1223 'laptop_default' => 'yes',
1224 'tablet_extra_default' => 'yes',
1225 'tablet_default' => 'yes',
1226 'mobile_extra_default' => 'yes',
1227 'mobile_default' => 'yes',
1228 'selectors_dictionary' => [
1229 '' => 'none',
1230 'yes' => 'inline-table'
1231 ],
1232 'selectors' => [
1233 '{{WRAPPER}} .king-addons-slider-dots' => 'display:{{VALUE}};',
1234 ],
1235 'render_type' => 'template',
1236 ]
1237 );
1238
1239 $this->add_control_slider_dots_layout();
1240
1241 Core::renderUpgradeProNotice($this, Controls_Manager::RAW_HTML, 'slider', 'slider_dots_layout', ['pro-vr']);
1242
1243 $this->add_control_slider_scroll_btn();
1244
1245 $this->add_control_slider_autoplay();
1246
1247 $this->add_control_slider_autoplay_duration();
1248
1249 $this->add_control_slider_pause_on_hover();
1250
1251 $this->add_control(
1252 'slider_loop',
1253 [
1254 'label' => esc_html__('Infinite Loop', 'king-addons'),
1255 'type' => Controls_Manager::SWITCHER,
1256 'default' => 'yes',
1257 'frontend_available' => true,
1258 'separator' => 'before',
1259 ]
1260 );
1261
1262 $this->add_control_slider_effect();
1263
1264 $this->add_control(
1265 'slider_effect_duration',
1266 [
1267 'label' => esc_html__('Effect Duration', 'king-addons'),
1268 'type' => Controls_Manager::NUMBER,
1269 'default' => 0.7,
1270 'min' => 0,
1271 'max' => 5,
1272 'step' => 0.1,
1273 ]
1274 );
1275
1276 $this->add_control(
1277 'slider_content_animation',
1278 [
1279 'label' => esc_html__('Content Animation', 'king-addons'),
1280 'type' => 'king-addons-animations-alt',
1281 'default' => 'none',
1282 'condition' => [
1283 'slider_effect' => 'fade',
1284 ],
1285 ]
1286 );
1287
1288
1289 Core::renderUpgradeProNotice($this, Controls_Manager::RAW_HTML, 'slider', 'slider_content_animation', ['pro-slrt', 'pro-slxrt', 'pro-slbt', 'pro-sllt', 'pro-sltp', 'pro-slxlt', 'pro-sktp', 'pro-skrt', 'pro-skbt', 'pro-sklt', 'pro-scup', 'pro-scdn', 'pro-rllt', 'pro-rlrt']);
1290
1291 $this->add_control(
1292 'slider_content_anim_size',
1293 [
1294 'type' => Controls_Manager::SELECT,
1295 'label' => esc_html__('Animation Size', 'king-addons'),
1296 'default' => 'large',
1297 'options' => [
1298 'small' => esc_html__('Small', 'king-addons'),
1299 'medium' => esc_html__('Medium', 'king-addons'),
1300 'large' => esc_html__('Large', 'king-addons'),
1301 ],
1302 'condition' => [
1303 'slider_content_animation!' => 'none',
1304 'slider_effect' => 'fade',
1305 ],
1306 ]
1307 );
1308
1309 $this->add_control(
1310 'slider_content_anim_duration',
1311 [
1312 'label' => esc_html__('Animation Duration', 'king-addons'),
1313 'type' => Controls_Manager::NUMBER,
1314 'default' => 1,
1315 'min' => 0,
1316 'max' => 5,
1317 'step' => 0.1,
1318 'selectors' => [
1319 '{{WRAPPER}} .king-addons-slider-animation .king-addons-cv-outer' => '-webkit-transition-duration: {{VALUE}}s;transition-duration: {{VALUE}}s;',
1320 ],
1321 'condition' => [
1322 'slider_content_animation!' => 'none',
1323 'slider_effect' => 'fade',
1324 ],
1325 ]
1326 );
1327
1328 $this->end_controls_section();
1329
1330 Core::renderProFeaturesSection($this, '', Controls_Manager::RAW_HTML, 'slider', [
1331 'Add Unlimited Slides',
1332 'Unlimited Slides to Scroll Option',
1333 'Columns (Carousel) 1, 2, 3, 4, 5, 6',
1334 'Slider/Carousel Autoplay Options',
1335 'Youtube & Vimeo Video Support',
1336 'Custom Video Support',
1337 'Elementor Templates Slider Option',
1338 'Scroll to Section Button',
1339 'Ken Burn Effect',
1340 'Vertical Sliding',
1341 'Advanced Navigation Positioning',
1342 'Advanced Pagination Positioning'
1343 ]);
1344
1345 $this->start_controls_section(
1346 'settings_section_style_slider_content',
1347 [
1348 'label' => KING_ADDONS_ELEMENTOR_ICON . esc_html__('Slider Content', 'king-addons'),
1349 'tab' => Controls_Manager::TAB_STYLE,
1350 ]
1351 );
1352
1353 $this->add_control(
1354 'slider_content_bg_color',
1355 [
1356 'label' => esc_html__('Background Color', 'king-addons'),
1357 'type' => Controls_Manager::COLOR,
1358 'selectors' => [
1359 '{{WRAPPER}} .king-addons-slider-content' => 'background-color: {{VALUE}};',
1360 ],
1361 'separator' => 'after',
1362 ]
1363 );
1364
1365 $this->add_responsive_control(
1366 'slider_content_hr',
1367 [
1368 'label' => esc_html__('Horizontal Position', 'king-addons'),
1369 'type' => Controls_Manager::CHOOSE,
1370 'label_block' => false,
1371 'options' => [
1372 'left' => [
1373 'title' => esc_html__('Left', 'king-addons'),
1374 'icon' => 'eicon-h-align-left',
1375 ],
1376 'center' => [
1377 'title' => esc_html__('Center', 'king-addons'),
1378 'icon' => 'eicon-h-align-center',
1379 ],
1380 'right' => [
1381 'title' => esc_html__('Right', 'king-addons'),
1382 'icon' => 'eicon-h-align-right',
1383 ]
1384 ],
1385 'default' => 'center',
1386 'widescreen_default' => 'center',
1387 'laptop_default' => 'center',
1388 'tablet_extra_default' => 'center',
1389 'tablet_default' => 'center',
1390 'mobile_extra_default' => 'center',
1391 'mobile_default' => 'center',
1392 'selectors_dictionary' => [
1393 'left' => 'float: left',
1394 'center' => 'margin: 0 auto',
1395 'right' => 'float: right'
1396 ],
1397 'selectors' => [
1398 '{{WRAPPER}} .king-addons-slider-content' => '{{VALUE}};',
1399 ],
1400 ]
1401 );
1402
1403 $this->add_responsive_control(
1404 'slider_content_vr',
1405 [
1406 'label' => esc_html__('Vertical Position', 'king-addons'),
1407 'type' => Controls_Manager::CHOOSE,
1408 'label_block' => false,
1409 'default' => 'middle',
1410 'options' => [
1411 'top' => [
1412 'title' => esc_html__('Top', 'king-addons'),
1413 'icon' => 'eicon-v-align-top',
1414 ],
1415 'middle' => [
1416 'title' => esc_html__('Middle', 'king-addons'),
1417 'icon' => 'eicon-v-align-middle',
1418 ],
1419 'bottom' => [
1420 'title' => esc_html__('Bottom', 'king-addons'),
1421 'icon' => 'eicon-v-align-bottom',
1422 ],
1423 ],
1424 'selectors' => [
1425 '{{WRAPPER}} .king-addons-cv-inner' => 'vertical-align: {{VALUE}};',
1426 ],
1427 ]
1428 );
1429
1430 $this->add_responsive_control(
1431 'slider_content_align',
1432 [
1433 'label' => esc_html__('Alignment', 'king-addons'),
1434 'type' => Controls_Manager::CHOOSE,
1435 'label_block' => false,
1436 'default' => 'center',
1437 'options' => [
1438 'left' => [
1439 'title' => esc_html__('Left', 'king-addons'),
1440 'icon' => 'eicon-text-align-left',
1441 ],
1442 'center' => [
1443 'title' => esc_html__('Center', 'king-addons'),
1444 'icon' => 'eicon-text-align-center',
1445 ],
1446 'right' => [
1447 'title' => esc_html__('Right', 'king-addons'),
1448 'icon' => 'eicon-text-align-right',
1449 ],
1450 ],
1451 'selectors' => [
1452 '{{WRAPPER}} .king-addons-slider-content' => 'text-align: {{VALUE}};',
1453 ],
1454 ]
1455 );
1456
1457 $this->add_responsive_control(
1458 'slider_content_width',
1459 [
1460 'label' => esc_html__('Width', 'king-addons'),
1461 'type' => Controls_Manager::SLIDER,
1462 'range' => [
1463 '%' => [
1464 'min' => 20,
1465 'max' => 100,
1466 ],
1467 'px' => [
1468 'min' => 200,
1469 'max' => 1500,
1470 ],
1471 ],
1472 'size_units' => ['%', 'px'],
1473 'default' => [
1474 'unit' => 'px',
1475 'size' => 750,
1476 ],
1477 'selectors' => [
1478 '{{WRAPPER}} .king-addons-slider-content' => 'max-width: {{SIZE}}{{UNIT}};',
1479 ],
1480 ]
1481 );
1482
1483 $this->add_responsive_control(
1484 'slider_content_padding',
1485 [
1486 'label' => esc_html__('Padding', 'king-addons'),
1487 'type' => Controls_Manager::DIMENSIONS,
1488 'default' => [
1489 'top' => 10,
1490 'right' => 50,
1491 'bottom' => 50,
1492 'left' => 50,
1493 ],
1494 'size_units' => ['px', '%'],
1495 'selectors' => [
1496 '{{WRAPPER}} .king-addons-slider-content' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
1497 ],
1498 'separator' => 'after',
1499 ]
1500 );
1501
1502 $this->end_controls_section();
1503
1504
1505 $this->start_controls_section(
1506 'settings_section_style_slider_title',
1507 [
1508 'label' => KING_ADDONS_ELEMENTOR_ICON . esc_html__('Title', 'king-addons'),
1509 'tab' => Controls_Manager::TAB_STYLE,
1510 'show_label' => false,
1511 ]
1512 );
1513
1514 $this->add_control(
1515 'slider_title_color',
1516 [
1517 'label' => esc_html__('Color', 'king-addons'),
1518 'type' => Controls_Manager::COLOR,
1519 'default' => '#ffffff',
1520 'selectors' => [
1521 '{{WRAPPER}} .king-addons-slider-title *' => 'color: {{VALUE}}',
1522 ],
1523 ]
1524 );
1525
1526 $this->add_control(
1527 'slider_title_bg_color',
1528 [
1529 'label' => esc_html__('Background Color', 'king-addons'),
1530 'type' => Controls_Manager::COLOR,
1531 'selectors' => [
1532 '{{WRAPPER}} .king-addons-slider-title *' => 'background-color: {{VALUE}}',
1533 ],
1534 'separator' => 'after',
1535 ]
1536 );
1537
1538 $this->add_group_control(
1539 Group_Control_Typography::get_type(),
1540 [
1541 'name' => 'slider_title_typography',
1542 'selector' => '{{WRAPPER}} .king-addons-slider-title *',
1543 ]
1544 );
1545
1546 $this->add_responsive_control(
1547 'slider_title_padding',
1548 [
1549 'label' => esc_html__('Padding', 'king-addons'),
1550 'type' => Controls_Manager::DIMENSIONS,
1551 'size_units' => ['px'],
1552 'default' => [
1553 'top' => 5,
1554 'right' => 10,
1555 'bottom' => 5,
1556 'left' => 10,
1557 ],
1558 'selectors' => [
1559 '{{WRAPPER}} .king-addons-slider-title *' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
1560 ],
1561 'separator' => 'before',
1562 ]
1563 );
1564
1565 $this->add_responsive_control(
1566 'slider_title_margin',
1567 [
1568 'label' => esc_html__('Margin', 'king-addons'),
1569 'type' => Controls_Manager::DIMENSIONS,
1570 'size_units' => ['px'],
1571 'default' => [
1572 'top' => 0,
1573 'right' => 0,
1574 'bottom' => 0,
1575 'left' => 0,
1576 ],
1577 'selectors' => [
1578 '{{WRAPPER}} .king-addons-slider-title *' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
1579 ],
1580 ]
1581 );
1582
1583 $this->end_controls_section();
1584
1585
1586 $this->start_controls_section(
1587 'settings_section_style_slider_sub_title',
1588 [
1589 'label' => KING_ADDONS_ELEMENTOR_ICON . esc_html__('Sub Title', 'king-addons'),
1590 'tab' => Controls_Manager::TAB_STYLE,
1591 'show_label' => false,
1592 ]
1593 );
1594
1595 $this->add_control(
1596 'slider_sub_title_color',
1597 [
1598 'label' => esc_html__('Color', 'king-addons'),
1599 'type' => Controls_Manager::COLOR,
1600 'default' => '#ffffff',
1601 'selectors' => [
1602 '{{WRAPPER}} .king-addons-slider-sub-title *' => 'color: {{VALUE}}',
1603 ],
1604 ]
1605 );
1606
1607 $this->add_control(
1608 'slider_sub_title_bg_color',
1609 [
1610 'label' => esc_html__('Background Color', 'king-addons'),
1611 'type' => Controls_Manager::COLOR,
1612 'selectors' => [
1613 '{{WRAPPER}} .king-addons-slider-sub-title *' => 'background-color: {{VALUE}}',
1614 ],
1615 'separator' => 'after',
1616 ]
1617 );
1618
1619 $this->add_group_control(
1620 Group_Control_Typography::get_type(),
1621 [
1622 'name' => 'slider_sub_title_typography',
1623 'selector' => '{{WRAPPER}} .king-addons-slider-sub-title *',
1624 ]
1625 );
1626
1627 $this->add_responsive_control(
1628 'slider_sub_title_padding',
1629 [
1630 'label' => esc_html__('Padding', 'king-addons'),
1631 'type' => Controls_Manager::DIMENSIONS,
1632 'size_units' => ['px'],
1633 'default' => [
1634 'top' => 5,
1635 'right' => 10,
1636 'bottom' => 5,
1637 'left' => 10,
1638 ],
1639 'selectors' => [
1640 '{{WRAPPER}} .king-addons-slider-sub-title *' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
1641 ],
1642 'separator' => 'before',
1643 ]
1644 );
1645
1646 $this->add_responsive_control(
1647 'slider_sub_title_margin',
1648 [
1649 'label' => esc_html__('Margin', 'king-addons'),
1650 'type' => Controls_Manager::DIMENSIONS,
1651 'size_units' => ['px'],
1652 'default' => [
1653 'top' => 0,
1654 'right' => 0,
1655 'bottom' => 5,
1656 'left' => 0,
1657 ],
1658 'selectors' => [
1659 '{{WRAPPER}} .king-addons-slider-sub-title *' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
1660 ],
1661 ]
1662 );
1663
1664 $this->end_controls_section();
1665
1666
1667 $this->start_controls_section(
1668 'settings_section_style_slider_description',
1669 [
1670 'label' => KING_ADDONS_ELEMENTOR_ICON . esc_html__('Description', 'king-addons'),
1671 'tab' => Controls_Manager::TAB_STYLE,
1672 'show_label' => false,
1673 ]
1674 );
1675
1676 $this->add_control(
1677 'slider_description_color',
1678 [
1679 'label' => esc_html__('Color', 'king-addons'),
1680 'type' => Controls_Manager::COLOR,
1681 'default' => '#ffffff',
1682 'selectors' => [
1683 '{{WRAPPER}} .king-addons-slider-description p' => 'color: {{VALUE}}',
1684 ],
1685 ]
1686 );
1687
1688 $this->add_control(
1689 'slider_description_bg_color',
1690 [
1691 'label' => esc_html__('Background Color', 'king-addons'),
1692 'type' => Controls_Manager::COLOR,
1693 'selectors' => [
1694 '{{WRAPPER}} .king-addons-slider-description p' => 'background-color: {{VALUE}}',
1695 ],
1696 'separator' => 'after',
1697 ]
1698 );
1699
1700 $this->add_group_control(
1701 Group_Control_Typography::get_type(),
1702 [
1703 'name' => 'slider_description_typography',
1704 'selector' => '{{WRAPPER}} .king-addons-slider-description p',
1705 ]
1706 );
1707
1708 $this->add_responsive_control(
1709 'slider_description_padding',
1710 [
1711 'label' => esc_html__('Padding', 'king-addons'),
1712 'type' => Controls_Manager::DIMENSIONS,
1713 'size_units' => ['px'],
1714 'default' => [
1715 'top' => 5,
1716 'right' => 10,
1717 'bottom' => 5,
1718 'left' => 10,
1719 ],
1720 'selectors' => [
1721 '{{WRAPPER}} .king-addons-slider-description p' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
1722 ],
1723 'separator' => 'before',
1724 ]
1725 );
1726
1727 $this->add_responsive_control(
1728 'slider_description_margin',
1729 [
1730 'label' => esc_html__('Margin', 'king-addons'),
1731 'type' => Controls_Manager::DIMENSIONS,
1732 'size_units' => ['px'],
1733 'default' => [
1734 'top' => 0,
1735 'right' => 0,
1736 'bottom' => 30,
1737 'left' => 0,
1738 ],
1739 'selectors' => [
1740 '{{WRAPPER}} .king-addons-slider-description p' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
1741 ],
1742 ]
1743 );
1744
1745 $this->end_controls_section();
1746
1747
1748 $this->start_controls_section(
1749 'settings_section_style_btn_1',
1750 [
1751 'label' => KING_ADDONS_ELEMENTOR_ICON . esc_html__('Button Primary', 'king-addons'),
1752 'tab' => Controls_Manager::TAB_STYLE,
1753 'show_label' => false,
1754 ]
1755 );
1756
1757 $this->start_controls_tabs('tabs_btn_style_1');
1758
1759 $this->start_controls_tab(
1760 'tab_btn_normal_1',
1761 [
1762 'label' => esc_html__('Normal', 'king-addons'),
1763 ]
1764 );
1765
1766 $this->add_group_control(
1767 Group_Control_Background::get_type(),
1768 [
1769 'name' => 'btn_bg_color_1',
1770 'label' => esc_html__('Background', 'king-addons'),
1771 'types' => ['classic', 'gradient'],
1772 'fields_options' => [
1773 'color' => [
1774 'default' => '#434900',
1775 ],
1776 ],
1777 'selector' => '{{WRAPPER}} .king-addons-slider-primary-btn'
1778 ]
1779 );
1780
1781 $this->add_control(
1782 'btn_color_1',
1783 [
1784 'label' => esc_html__('Text Color', 'king-addons'),
1785 'type' => Controls_Manager::COLOR,
1786 'default' => '#ffffff',
1787 'selectors' => [
1788 '{{WRAPPER}} .king-addons-slider-primary-btn' => 'color: {{VALUE}}',
1789 '{{WRAPPER}} .king-addons-slider-primary-btn svg' => 'fill: {{VALUE}}',
1790 ],
1791 ]
1792 );
1793
1794 $this->add_control(
1795 'btn_border_color_1',
1796 [
1797 'label' => esc_html__('Border Color', 'king-addons'),
1798 'type' => Controls_Manager::COLOR,
1799 'default' => '#ffffff',
1800 'selectors' => [
1801 '{{WRAPPER}} .king-addons-slider-primary-btn' => 'border-color: {{VALUE}}',
1802 ],
1803 ]
1804 );
1805
1806 $this->add_group_control(
1807 Group_Control_Box_Shadow::get_type(),
1808 [
1809 'name' => 'btn_box_shadow_1',
1810 'selector' => '{{WRAPPER}} .king-addons-slider-primary-btn',
1811 ]
1812 );
1813
1814 $this->end_controls_tab();
1815
1816 $this->start_controls_tab(
1817 'tab_btn_hover_1',
1818 [
1819 'label' => esc_html__('Hover', 'king-addons'),
1820 ]
1821 );
1822
1823 $this->add_group_control(
1824 Group_Control_Background::get_type(),
1825 [
1826 'name' => 'btn_hover_bg_color_1',
1827 'label' => esc_html__('Background', 'king-addons'),
1828 'types' => ['classic', 'gradient'],
1829 'fields_options' => [
1830 'color' => [
1831 'default' => '#434900',
1832 ],
1833 ],
1834 'selector' => '{{WRAPPER}} .king-addons-slider-primary-btn:hover'
1835 ]
1836 );
1837
1838 $this->add_control(
1839 'btn_hover_color_1',
1840 [
1841 'label' => esc_html__('Text Color', 'king-addons'),
1842 'type' => Controls_Manager::COLOR,
1843 'selectors' => [
1844 '{{WRAPPER}} .king-addons-slider-primary-btn:hover' => 'color: {{VALUE}}',
1845 '{{WRAPPER}} .king-addons-slider-primary-btn:hover svg' => 'fill: {{VALUE}}',
1846 ],
1847 ]
1848 );
1849
1850 $this->add_control(
1851 'btn_hover_border_color_1',
1852 [
1853 'label' => esc_html__('Border Color', 'king-addons'),
1854 'type' => Controls_Manager::COLOR,
1855 'selectors' => [
1856 '{{WRAPPER}} .king-addons-slider-primary-btn:hover' => 'border-color: {{VALUE}}',
1857 ],
1858 ]
1859 );
1860
1861 $this->add_group_control(
1862 Group_Control_Box_Shadow::get_type(),
1863 [
1864 'name' => 'btn_hover_box_shadow_1',
1865 'selector' => '{{WRAPPER}} .king-addons-slider-primary-btn:hover',
1866 ]
1867 );
1868
1869 $this->end_controls_tab();
1870
1871 $this->end_controls_tabs();
1872
1873 $this->add_control(
1874 'btn_transition_duration_1',
1875 [
1876 'label' => esc_html__('Transition Duration (seconds)', 'king-addons'),
1877 'type' => Controls_Manager::NUMBER,
1878 'default' => 0.1,
1879 'min' => 0,
1880 'max' => 5,
1881 'step' => 0.1,
1882 'selectors' => [
1883 '{{WRAPPER}} .king-addons-slider-primary-btn' => '-webkit-transition-duration: {{VALUE}}s;transition-duration: {{VALUE}}s',
1884 '{{WRAPPER}} .king-addons-slider-primary-btn svg' => '-webkit-transition-duration: {{VALUE}}s;transition-duration: {{VALUE}}s',
1885 ],
1886 'separator' => 'before',
1887 ]
1888 );
1889
1890 $this->add_control(
1891 'btn_typography_1_divider',
1892 [
1893 'type' => Controls_Manager::DIVIDER,
1894 'style' => 'thick',
1895 ]
1896 );
1897
1898 $this->add_group_control(
1899 Group_Control_Typography::get_type(),
1900 [
1901 'name' => 'btn_typography_1',
1902 'selector' => '{{WRAPPER}} .king-addons-slider-primary-btn',
1903 'separator' => 'before',
1904 ]
1905 );
1906
1907 $this->add_responsive_control(
1908 'btn_icon_size_1',
1909 [
1910 'label' => esc_html__('Icon Size', 'king-addons'),
1911 'type' => Controls_Manager::SLIDER,
1912 'range' => [
1913 'px' => [
1914 'min' => 5,
1915 'max' => 30,
1916 ],
1917 ],
1918 'default' => [
1919 'unit' => 'px',
1920 'size' => 13,
1921 ],
1922 'selectors' => [
1923 '{{WRAPPER}} .king-addons-slider-primary-btn i' => 'font-size: {{SIZE}}{{UNIT}};',
1924 '{{WRAPPER}} .king-addons-slider-primary-btn svg' => 'width: {{SIZE}}{{UNIT}}; height: auto;',
1925 ],
1926 ]
1927 );
1928
1929 $this->add_responsive_control(
1930 'btn_padding_1',
1931 [
1932 'label' => esc_html__('Padding', 'king-addons'),
1933 'type' => Controls_Manager::DIMENSIONS,
1934 'size_units' => ['px'],
1935 'default' => [
1936 'top' => 12,
1937 'right' => 25,
1938 'bottom' => 12,
1939 'left' => 25,
1940 ],
1941 'selectors' => [
1942 '{{WRAPPER}} .king-addons-slider-primary-btn' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
1943 ],
1944 'separator' => 'before',
1945 ]
1946 );
1947
1948 $this->add_responsive_control(
1949 'btn_margin_1',
1950 [
1951 'label' => esc_html__('Margin', 'king-addons'),
1952 'type' => Controls_Manager::DIMENSIONS,
1953 'size_units' => ['px'],
1954 'default' => [
1955 'top' => 0,
1956 'right' => 10,
1957 'bottom' => 0,
1958 'left' => 10,
1959 ],
1960 'selectors' => [
1961 '{{WRAPPER}} .king-addons-slider-primary-btn' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
1962 ],
1963 'separator' => 'after',
1964 ]
1965 );
1966
1967 $this->add_control(
1968 'btn_border_type_1',
1969 [
1970 'label' => esc_html__('Border Type', 'king-addons'),
1971 'type' => Controls_Manager::SELECT,
1972 'options' => [
1973 'none' => esc_html__('None', 'king-addons'),
1974 'solid' => esc_html__('Solid', 'king-addons'),
1975 'double' => esc_html__('Double', 'king-addons'),
1976 'dotted' => esc_html__('Dotted', 'king-addons'),
1977 'dashed' => esc_html__('Dashed', 'king-addons'),
1978 'groove' => esc_html__('Groove', 'king-addons'),
1979 ],
1980 'default' => 'solid',
1981 'selectors' => [
1982 '{{WRAPPER}} .king-addons-slider-primary-btn' => 'border-style: {{VALUE}};',
1983 ],
1984 ]
1985 );
1986
1987 $this->add_responsive_control(
1988 'btn_border_width_1',
1989 [
1990 'label' => esc_html__('Border Width', 'king-addons'),
1991 'type' => Controls_Manager::DIMENSIONS,
1992 'size_units' => ['px',],
1993 'default' => [
1994 'top' => 1,
1995 'right' => 1,
1996 'bottom' => 1,
1997 'left' => 1,
1998 ],
1999 'selectors' => [
2000 '{{WRAPPER}} .king-addons-slider-primary-btn' => 'border-width: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
2001 ],
2002 'condition' => [
2003 'btn_border_type_1!' => 'none',
2004 ],
2005 ]
2006 );
2007
2008 $this->add_responsive_control(
2009 'btn_border_radius_1',
2010 [
2011 'label' => esc_html__('Border Radius', 'king-addons'),
2012 'type' => Controls_Manager::DIMENSIONS,
2013 'size_units' => ['px', '%'],
2014 'default' => [
2015 'top' => 2,
2016 'right' => 2,
2017 'bottom' => 2,
2018 'left' => 2,
2019 ],
2020 'selectors' => [
2021 '{{WRAPPER}} .king-addons-slider-primary-btn' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
2022 ],
2023 'separator' => 'before',
2024 ]
2025 );
2026
2027 $this->end_controls_section();
2028
2029
2030 $this->start_controls_section(
2031 'settings_section_style_btn_2',
2032 [
2033 'label' => KING_ADDONS_ELEMENTOR_ICON . esc_html__('Button Secondary', 'king-addons'),
2034 'tab' => Controls_Manager::TAB_STYLE,
2035 'show_label' => false,
2036 ]
2037 );
2038
2039 $this->start_controls_tabs('tabs_btn_style_2');
2040
2041 $this->start_controls_tab(
2042 'tab_btn_normal_2',
2043 [
2044 'label' => esc_html__('Normal', 'king-addons'),
2045 ]
2046 );
2047
2048 $this->add_group_control(
2049 Group_Control_Background::get_type(),
2050 [
2051 'name' => 'btn_bg_color_2',
2052 'label' => esc_html__('Background', 'king-addons'),
2053 'types' => ['classic', 'gradient'],
2054 'fields_options' => [
2055 'color' => [
2056 'default' => '#434900',
2057 ],
2058 ],
2059 'selector' => '{{WRAPPER}} .king-addons-slider-secondary-btn'
2060 ]
2061 );
2062
2063 $this->add_control(
2064 'btn_color_2',
2065 [
2066 'label' => esc_html__('Text Color', 'king-addons'),
2067 'type' => Controls_Manager::COLOR,
2068 'default' => '#ffffff',
2069 'selectors' => [
2070 '{{WRAPPER}} .king-addons-slider-secondary-btn' => 'color: {{VALUE}}',
2071 '{{WRAPPER}} .king-addons-slider-secondary-btn svg' => 'fill: {{VALUE}}',
2072 ],
2073 ]
2074 );
2075
2076 $this->add_control(
2077 'btn_border_color_2',
2078 [
2079 'label' => esc_html__('Border Color', 'king-addons'),
2080 'type' => Controls_Manager::COLOR,
2081 'default' => '#ffffff',
2082 'selectors' => [
2083 '{{WRAPPER}} .king-addons-slider-secondary-btn' => 'border-color: {{VALUE}}',
2084 ],
2085 ]
2086 );
2087
2088 $this->add_group_control(
2089 Group_Control_Box_Shadow::get_type(),
2090 [
2091 'name' => 'btn_box_shadow_2',
2092 'selector' => '{{WRAPPER}} .king-addons-slider-secondary-btn',
2093 ]
2094 );
2095
2096 $this->end_controls_tab();
2097
2098 $this->start_controls_tab(
2099 'tab_btn_hover_2',
2100 [
2101 'label' => esc_html__('Hover', 'king-addons'),
2102 ]
2103 );
2104
2105 $this->add_group_control(
2106 Group_Control_Background::get_type(),
2107 [
2108 'name' => 'btn_hover_bg_color_2',
2109 'label' => esc_html__('Background', 'king-addons'),
2110 'types' => ['classic', 'gradient'],
2111 'fields_options' => [
2112 'color' => [
2113 'default' => '#434900',
2114 ],
2115 ],
2116 'selector' => '{{WRAPPER}} .king-addons-slider-secondary-btn:hover'
2117 ]
2118 );
2119
2120 $this->add_control(
2121 'btn_hover_color_2',
2122 [
2123 'label' => esc_html__('Text Color', 'king-addons'),
2124 'type' => Controls_Manager::COLOR,
2125 'selectors' => [
2126 '{{WRAPPER}} .king-addons-slider-secondary-btn:hover' => 'color: {{VALUE}}',
2127 '{{WRAPPER}} .king-addons-slider-secondary-btn:hover svg' => 'fill: {{VALUE}}',
2128 ],
2129 ]
2130 );
2131
2132 $this->add_control(
2133 'btn_hover_border_color_2',
2134 [
2135 'label' => esc_html__('Border Color', 'king-addons'),
2136 'type' => Controls_Manager::COLOR,
2137 'selectors' => [
2138 '{{WRAPPER}} .king-addons-slider-secondary-btn:hover' => 'border-color: {{VALUE}}',
2139 ],
2140 ]
2141 );
2142
2143 $this->add_group_control(
2144 Group_Control_Box_Shadow::get_type(),
2145 [
2146 'name' => 'btn_hover_box_shadow_2',
2147 'selector' => '{{WRAPPER}} .king-addons-slider-secondary-btn:hover',
2148 ]
2149 );
2150
2151 $this->end_controls_tab();
2152
2153 $this->end_controls_tabs();
2154
2155 $this->add_control(
2156 'btn_transition_duration_2',
2157 [
2158 'label' => esc_html__('Transition Duration (seconds)', 'king-addons'),
2159 'type' => Controls_Manager::NUMBER,
2160 'default' => 0.1,
2161 'min' => 0,
2162 'max' => 5,
2163 'step' => 0.1,
2164 'selectors' => [
2165 '{{WRAPPER}} .king-addons-slider-secondary-btn' => '-webkit-transition-duration: {{VALUE}}s;transition-duration: {{VALUE}}s',
2166 '{{WRAPPER}} .king-addons-slider-secondary-btn svg' => '-webkit-transition-duration: {{VALUE}}s;transition-duration: {{VALUE}}s',
2167 ],
2168 'separator' => 'before',
2169 ]
2170 );
2171
2172 $this->add_control(
2173 'btn_typography_2_divider',
2174 [
2175 'type' => Controls_Manager::DIVIDER,
2176 'style' => 'thick',
2177 ]
2178 );
2179
2180 $this->add_group_control(
2181 Group_Control_Typography::get_type(),
2182 [
2183 'name' => 'btn_typography_2',
2184 'selector' => '{{WRAPPER}} .king-addons-slider-secondary-btn',
2185 'separator' => 'before',
2186 ]
2187 );
2188
2189 $this->add_responsive_control(
2190 'btn_icon_size_2',
2191 [
2192 'label' => esc_html__('Icon Size', 'king-addons'),
2193 'type' => Controls_Manager::SLIDER,
2194 'range' => [
2195 'px' => [
2196 'min' => 5,
2197 'max' => 30,
2198 ],
2199 ],
2200 'default' => [
2201 'unit' => 'px',
2202 'size' => 13,
2203 ],
2204 'selectors' => [
2205 '{{WRAPPER}} .king-addons-slider-secondary-btn i' => 'font-size: {{SIZE}}{{UNIT}};',
2206 '{{WRAPPER}} .king-addons-slider-secondary-btn svg' => 'width: {{SIZE}}{{UNIT}}; height: auto;',
2207 ],
2208 ]
2209 );
2210
2211
2212 $this->add_responsive_control(
2213 'btn_padding_2',
2214 [
2215 'label' => esc_html__('Padding', 'king-addons'),
2216 'type' => Controls_Manager::DIMENSIONS,
2217 'size_units' => ['px',],
2218 'default' => [
2219 'top' => 12,
2220 'right' => 25,
2221 'bottom' => 12,
2222 'left' => 25,
2223 ],
2224 'selectors' => [
2225 '{{WRAPPER}} .king-addons-slider-secondary-btn' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
2226 ],
2227 'separator' => 'before',
2228 ]
2229 );
2230
2231 $this->add_responsive_control(
2232 'btn_margin_2',
2233 [
2234 'label' => esc_html__('Margin', 'king-addons'),
2235 'type' => Controls_Manager::DIMENSIONS,
2236 'size_units' => ['px',],
2237 'default' => [
2238 'top' => 0,
2239 'right' => 10,
2240 'bottom' => 0,
2241 'left' => 10,
2242 ],
2243 'selectors' => [
2244 '{{WRAPPER}} .king-addons-slider-secondary-btn' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
2245 ],
2246 'separator' => 'after',
2247 ]
2248 );
2249
2250 $this->add_control(
2251 'btn_border_type_2',
2252 [
2253 'label' => esc_html__('Border Type', 'king-addons'),
2254 'type' => Controls_Manager::SELECT,
2255 'options' => [
2256 'none' => esc_html__('None', 'king-addons'),
2257 'solid' => esc_html__('Solid', 'king-addons'),
2258 'double' => esc_html__('Double', 'king-addons'),
2259 'dotted' => esc_html__('Dotted', 'king-addons'),
2260 'dashed' => esc_html__('Dashed', 'king-addons'),
2261 'groove' => esc_html__('Groove', 'king-addons'),
2262 ],
2263 'default' => 'solid',
2264 'selectors' => [
2265 '{{WRAPPER}} .king-addons-slider-secondary-btn' => 'border-style: {{VALUE}};',
2266 ],
2267 ]
2268 );
2269
2270 $this->add_responsive_control(
2271 'btn_border_width_2',
2272 [
2273 'label' => esc_html__('Border Width', 'king-addons'),
2274 'type' => Controls_Manager::DIMENSIONS,
2275 'size_units' => ['px',],
2276 'default' => [
2277 'top' => 1,
2278 'right' => 1,
2279 'bottom' => 1,
2280 'left' => 1,
2281 ],
2282 'selectors' => [
2283 '{{WRAPPER}} .king-addons-slider-secondary-btn' => 'border-width: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
2284 ],
2285 'condition' => [
2286 'btn_border_type_2!' => 'none',
2287 ],
2288 ]
2289 );
2290
2291 $this->add_responsive_control(
2292 'btn_border_radius_2',
2293 [
2294 'label' => esc_html__('Border Radius', 'king-addons'),
2295 'type' => Controls_Manager::DIMENSIONS,
2296 'size_units' => ['px', '%'],
2297 'default' => [
2298 'top' => 2,
2299 'right' => 2,
2300 'bottom' => 2,
2301 'left' => 2,
2302 ],
2303 'selectors' => [
2304 '{{WRAPPER}} .king-addons-slider-secondary-btn' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
2305 ],
2306 'separator' => 'before',
2307 ]
2308 );
2309
2310 $this->end_controls_section();
2311
2312
2313 $this->add_section_style_scroll_btn();
2314
2315
2316 $this->start_controls_section(
2317 'settings_section_style_slider_video_btn',
2318 [
2319 'label' => KING_ADDONS_ELEMENTOR_ICON . esc_html__('Video Icon', 'king-addons'),
2320 'tab' => Controls_Manager::TAB_STYLE,
2321 ]
2322 );
2323
2324 $this->add_responsive_control(
2325 'slider_video_btn_size',
2326 [
2327 'label' => esc_html__('Video Icon Size', 'king-addons'),
2328 'type' => Controls_Manager::SELECT,
2329 'default' => 'medium',
2330 'options' => [
2331 'none' => esc_html__('None', 'king-addons'),
2332 'small' => esc_html__('Small', 'king-addons'),
2333 'medium' => esc_html__('Medium', 'king-addons'),
2334 'large' => esc_html__('Large', 'king-addons'),
2335 ],
2336 'frontend_available' => true,
2337
2338 ]
2339 );
2340
2341 $this->add_control(
2342 'slider_video_btn_color',
2343 [
2344 'label' => esc_html__('Text Color', 'king-addons'),
2345 'type' => Controls_Manager::COLOR,
2346 'default' => '#ffffff',
2347 'selectors' => [
2348 '{{WRAPPER}} .king-addons-slider-video-btn' => 'color: {{VALUE}}; border-color: {{VALUE}};',
2349 ],
2350 ]
2351 );
2352
2353 $this->end_controls_section();
2354
2355
2356 $this->start_controls_section(
2357 'settings_section_style_slider_nav',
2358 [
2359 'label' => KING_ADDONS_ELEMENTOR_ICON . esc_html__('Navigation', 'king-addons'),
2360 'tab' => Controls_Manager::TAB_STYLE,
2361 ]
2362 );
2363
2364 $this->start_controls_tabs('tabs_slider_nav_style');
2365
2366 $this->start_controls_tab(
2367 'tab_slider_nav_normal',
2368 [
2369 'label' => esc_html__('Normal', 'king-addons'),
2370 ]
2371 );
2372
2373 $this->add_control(
2374 'slider_nav_color',
2375 [
2376 'label' => esc_html__('Color', 'king-addons'),
2377 'type' => Controls_Manager::COLOR,
2378 'default' => 'rgba(255,255,255,0.8)',
2379 'selectors' => [
2380 '{{WRAPPER}} .king-addons-slider-arrow' => 'color: {{VALUE}};',
2381 '{{WRAPPER}} .king-addons-slider-arrow svg' => 'fill: {{VALUE}};',
2382 ],
2383 ]
2384 );
2385
2386 $this->add_control(
2387 'slider_nav_bg_color',
2388 [
2389 'label' => esc_html__('Background Color', 'king-addons'),
2390 'type' => Controls_Manager::COLOR,
2391 'selectors' => [
2392 '{{WRAPPER}} .king-addons-slider-arrow' => 'background-color: {{VALUE}};',
2393 ],
2394 ]
2395 );
2396
2397 $this->add_control(
2398 'slider_nav_border_color',
2399 [
2400 'label' => esc_html__('Border Color', 'king-addons'),
2401 'type' => Controls_Manager::COLOR,
2402 'default' => 'rgba(255,255,255,0.8)',
2403 'selectors' => [
2404 '{{WRAPPER}} .king-addons-slider-arrow' => 'border-color: {{VALUE}};',
2405 ],
2406 ]
2407 );
2408
2409 $this->end_controls_tab();
2410
2411 $this->start_controls_tab(
2412 'tab_slider_nav_hover',
2413 [
2414 'label' => esc_html__('Hover', 'king-addons'),
2415 ]
2416 );
2417
2418 $this->add_control(
2419 'slider_nav_hover_color',
2420 [
2421 'label' => esc_html__('Color', 'king-addons'),
2422 'type' => Controls_Manager::COLOR,
2423 'default' => '#ffffff',
2424 'selectors' => [
2425 '{{WRAPPER}} .king-addons-slider-arrow:hover' => 'color: {{VALUE}};',
2426 '{{WRAPPER}} .king-addons-slider-arrow:hover svg' => 'fill: {{VALUE}};',
2427 ],
2428 ]
2429 );
2430
2431 $this->add_control(
2432 'slider_nav_hover_bg_color',
2433 [
2434 'label' => esc_html__('Background Color', 'king-addons'),
2435 'type' => Controls_Manager::COLOR,
2436 'selectors' => [
2437 '{{WRAPPER}} .king-addons-slider-arrow:hover' => 'background-color: {{VALUE}};',
2438 ],
2439 ]
2440 );
2441
2442 $this->add_control(
2443 'slider_nav_hover_border_color',
2444 [
2445 'label' => esc_html__('Border Color', 'king-addons'),
2446 'type' => Controls_Manager::COLOR,
2447 'selectors' => [
2448 '{{WRAPPER}} .king-addons-slider-arrow:hover' => 'border-color: {{VALUE}};',
2449 ],
2450 ]
2451 );
2452
2453 $this->end_controls_tab();
2454
2455 $this->end_controls_tabs();
2456
2457 $this->add_control(
2458 'slider_nav_transition_duration',
2459 [
2460 'label' => esc_html__('Transition Duration (seconds)', 'king-addons'),
2461 'type' => Controls_Manager::NUMBER,
2462 'default' => 0.1,
2463 'min' => 0,
2464 'max' => 5,
2465 'step' => 0.1,
2466 'selectors' => [
2467 '{{WRAPPER}} .king-addons-slider-arrow' => '-webkit-transition-duration: {{VALUE}}s;transition-duration: {{VALUE}}s',
2468 '{{WRAPPER}} .king-addons-slider-arrow svg' => '-webkit-transition-duration: {{VALUE}}s;transition-duration: {{VALUE}}s',
2469 ],
2470 'separator' => 'before',
2471 ]
2472 );
2473
2474 $this->add_responsive_control(
2475 'slider_nav_font_size',
2476 [
2477 'label' => esc_html__('Font Size', 'king-addons'),
2478 'type' => Controls_Manager::SLIDER,
2479 'size_units' => ['px',],
2480 'range' => [
2481 'px' => [
2482 'min' => 10,
2483 'max' => 200,
2484 ],
2485 ],
2486 'default' => [
2487 'unit' => 'px',
2488 'size' => 25,
2489 ],
2490 'selectors' => [
2491 '{{WRAPPER}} .king-addons-slider-arrow' => 'font-size: {{SIZE}}{{UNIT}};',
2492 '{{WRAPPER}} .king-addons-slider-arrow svg' => 'width: {{SIZE}}{{UNIT}};',
2493 ],
2494 'separator' => 'before',
2495 ]
2496 );
2497
2498 $this->add_responsive_control(
2499 'slider_nav_size',
2500 [
2501 'label' => esc_html__('Box Size', 'king-addons'),
2502 'type' => Controls_Manager::SLIDER,
2503 'size_units' => ['px',],
2504 'range' => [
2505 'px' => [
2506 'min' => 10,
2507 'max' => 200,
2508 ],
2509 ],
2510 'default' => [
2511 'unit' => 'px',
2512 'size' => 60,
2513 ],
2514 'selectors' => [
2515 '{{WRAPPER}} .king-addons-slider-arrow' => 'width: {{SIZE}}{{UNIT}}; height: {{SIZE}}{{UNIT}};',
2516 ],
2517 'separator' => 'after',
2518 ]
2519 );
2520
2521 $this->add_control(
2522 'slider_nav_border_type',
2523 [
2524 'label' => esc_html__('Border Type', 'king-addons'),
2525 'type' => Controls_Manager::SELECT,
2526 'options' => [
2527 'none' => esc_html__('None', 'king-addons'),
2528 'solid' => esc_html__('Solid', 'king-addons'),
2529 'double' => esc_html__('Double', 'king-addons'),
2530 'dotted' => esc_html__('Dotted', 'king-addons'),
2531 'dashed' => esc_html__('Dashed', 'king-addons'),
2532 'groove' => esc_html__('Groove', 'king-addons'),
2533 ],
2534 'default' => 'none',
2535 'selectors' => [
2536 '{{WRAPPER}} .king-addons-slider-arrow' => 'border-style: {{VALUE}};',
2537 ],
2538 ]
2539 );
2540
2541 $this->add_responsive_control(
2542 'slider_nav_border_width',
2543 [
2544 'label' => esc_html__('Border Width', 'king-addons'),
2545 'type' => Controls_Manager::DIMENSIONS,
2546 'size_units' => ['px',],
2547 'default' => [
2548 'top' => 2,
2549 'right' => 2,
2550 'bottom' => 2,
2551 'left' => 2,
2552 ],
2553 'selectors' => [
2554 '{{WRAPPER}} .king-addons-slider-arrow' => 'border-width: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
2555 ],
2556 'condition' => [
2557 'slider_nav_border_type!' => 'none',
2558 ],
2559 ]
2560 );
2561
2562 $this->add_control(
2563 'slider_nav_border_radius',
2564 [
2565 'label' => esc_html__('Border Radius', 'king-addons'),
2566 'type' => Controls_Manager::DIMENSIONS,
2567 'size_units' => ['px', '%'],
2568 'selectors' => [
2569 '{{WRAPPER}} .king-addons-slider-arrow' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
2570 ],
2571 'separator' => 'after',
2572 ]
2573 );
2574
2575 $this->add_control_stack_slider_nav_position();
2576
2577 $this->end_controls_section();
2578
2579
2580 $this->start_controls_section(
2581 'settings_section_style_slider_dots',
2582 [
2583 'label' => KING_ADDONS_ELEMENTOR_ICON . esc_html__('Pagination', 'king-addons'),
2584 'tab' => Controls_Manager::TAB_STYLE,
2585 ]
2586 );
2587
2588 $this->start_controls_tabs('tabs_slider_dots');
2589
2590 $this->start_controls_tab(
2591 'tab_slider_dots_normal',
2592 [
2593 'label' => esc_html__('Normal', 'king-addons'),
2594 ]
2595 );
2596
2597 $this->add_control(
2598 'slider_dots_bg_color',
2599 [
2600 'label' => esc_html__('Background Color', 'king-addons'),
2601 'type' => Controls_Manager::COLOR,
2602 'default' => 'rgba(0,0,0,0.35)',
2603 'selectors' => [
2604 '{{WRAPPER}} .king-addons-slider-dot' => 'background-color: {{VALUE}};',
2605 ],
2606 ]
2607 );
2608
2609 $this->add_control(
2610 'slider_dots_border_color',
2611 [
2612 'label' => esc_html__('Border Color', 'king-addons'),
2613 'type' => Controls_Manager::COLOR,
2614 'selectors' => [
2615 '{{WRAPPER}} .king-addons-slider-dot' => 'border-color: {{VALUE}}',
2616 ],
2617 ]
2618 );
2619
2620 $this->end_controls_tab();
2621
2622 $this->start_controls_tab(
2623 'tab_slider_dots_active',
2624 [
2625 'label' => esc_html__('Active', 'king-addons'),
2626 ]
2627 );
2628
2629 $this->add_control(
2630 'slider_dots_active_bg_color',
2631 [
2632 'label' => esc_html__('Background Color', 'king-addons'),
2633 'type' => Controls_Manager::COLOR,
2634 'default' => '#222222',
2635 'selectors' => [
2636 '{{WRAPPER}} .king-addons-slider-dots .slick-active .king-addons-slider-dot' => 'background-color: {{VALUE}}',
2637 ],
2638 ]
2639 );
2640
2641 $this->add_control(
2642 'slider_dots_active_border_color',
2643 [
2644 'label' => esc_html__('Border Color', 'king-addons'),
2645 'type' => Controls_Manager::COLOR,
2646 'selectors' => [
2647 '{{WRAPPER}} .king-addons-slider-dots .slick-active .king-addons-slider-dot' => 'border-color: {{VALUE}}',
2648 ],
2649 ]
2650 );
2651
2652 $this->end_controls_tab();
2653
2654 $this->end_controls_tabs();
2655
2656 $this->add_responsive_control(
2657 'slider_dots_width',
2658 [
2659 'label' => esc_html__('Box Width', 'king-addons'),
2660 'type' => Controls_Manager::SLIDER,
2661 'size_units' => ['px',],
2662 'range' => [
2663 'px' => [
2664 'min' => 1,
2665 'max' => 100,
2666 ],
2667 ],
2668 'default' => [
2669 'unit' => 'px',
2670 'size' => 8,
2671 ],
2672 'selectors' => [
2673 '{{WRAPPER}} .king-addons-slider-dot' => 'width: {{SIZE}}{{UNIT}};',
2674 ],
2675 'separator' => 'before',
2676 'render_type' => 'template'
2677 ]
2678 );
2679
2680 $this->add_responsive_control(
2681 'slider_dots_height',
2682 [
2683 'label' => esc_html__('Box Height', 'king-addons'),
2684 'type' => Controls_Manager::SLIDER,
2685 'size_units' => ['px',],
2686 'range' => [
2687 'px' => [
2688 'min' => 1,
2689 'max' => 100,
2690 ],
2691 ],
2692 'default' => [
2693 'unit' => 'px',
2694 'size' => 8,
2695 ],
2696 'selectors' => [
2697 '{{WRAPPER}} .king-addons-slider-dot' => 'height: {{SIZE}}{{UNIT}};',
2698 ],
2699 'render_type' => 'template'
2700 ]
2701 );
2702
2703 $this->add_control(
2704 'slider_dots_border_type',
2705 [
2706 'label' => esc_html__('Border Type', 'king-addons'),
2707 'type' => Controls_Manager::SELECT,
2708 'options' => [
2709 'none' => esc_html__('None', 'king-addons'),
2710 'solid' => esc_html__('Solid', 'king-addons'),
2711 'double' => esc_html__('Double', 'king-addons'),
2712 'dotted' => esc_html__('Dotted', 'king-addons'),
2713 'dashed' => esc_html__('Dashed', 'king-addons'),
2714 'groove' => esc_html__('Groove', 'king-addons'),
2715 ],
2716 'default' => 'none',
2717 'selectors' => [
2718 '{{WRAPPER}} .king-addons-slider-dot' => 'border-style: {{VALUE}};',
2719 ],
2720 'separator' => 'before',
2721 'render_type' => 'template'
2722 ]
2723 );
2724
2725 $this->add_responsive_control(
2726 'slider_dots_border_width',
2727 [
2728 'label' => esc_html__('Border Width', 'king-addons'),
2729 'type' => Controls_Manager::DIMENSIONS,
2730 'size_units' => ['px',],
2731 'default' => [
2732 'top' => 1,
2733 'right' => 1,
2734 'bottom' => 1,
2735 'left' => 1,
2736 ],
2737 'selectors' => [
2738 '{{WRAPPER}} .king-addons-slider-dot' => 'border-width: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
2739 ],
2740 'render_type' => 'template',
2741 'condition' => [
2742 'slider_dots_border_type!' => 'none',
2743 ],
2744 ]
2745 );
2746
2747 $this->add_responsive_control(
2748 'slider_dots_border_radius',
2749 [
2750 'label' => esc_html__('Border Radius', 'king-addons'),
2751 'type' => Controls_Manager::DIMENSIONS,
2752 'default' => [
2753 'top' => 50,
2754 'right' => 50,
2755 'bottom' => 50,
2756 'left' => 50,
2757 'unit' => '%',
2758 ],
2759 'size_units' => ['px', '%'],
2760 'selectors' => [
2761 '{{WRAPPER}} .king-addons-slider-dot' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
2762 ],
2763 'separator' => 'before',
2764 ]
2765 );
2766
2767 $this->add_responsive_control(
2768 'slider_dots_gutter',
2769 [
2770 'type' => Controls_Manager::SLIDER,
2771 'label' => esc_html__('Gutter', 'king-addons'),
2772 'size_units' => ['px'],
2773 'range' => [
2774 'px' => [
2775 'min' => 0,
2776 'max' => 50,
2777 ],
2778 ],
2779 'default' => [
2780 'unit' => 'px',
2781 'size' => 7,
2782 ],
2783 'selectors' => [
2784 '{{WRAPPER}}.king-addons-slider-dots-horizontal .king-addons-slider-dot' => 'margin-right: {{SIZE}}{{UNIT}};',
2785 '{{WRAPPER}}.king-addons-slider-dots-vertical .king-addons-slider-dot' => 'margin-bottom: {{SIZE}}{{UNIT}};',
2786 ],
2787 'separator' => 'before',
2788 'render_type' => 'template'
2789 ]
2790 );
2791
2792 $this->add_control_slider_dots_hr();
2793
2794 $this->add_responsive_control(
2795 'slider_dots_vr',
2796 [
2797 'type' => Controls_Manager::SLIDER,
2798 'label' => esc_html__('Vertical Position', 'king-addons'),
2799 'size_units' => ['%', 'px'],
2800 'range' => [
2801 '%' => [
2802 'min' => -20,
2803 'max' => 120,
2804 ],
2805 'px' => [
2806 'min' => -200,
2807 'max' => 2000,
2808 ],
2809 ],
2810 'default' => [
2811 'unit' => '%',
2812 'size' => 96,
2813 ],
2814 'selectors' => [
2815 '{{WRAPPER}} .king-addons-slider-dots' => 'top: {{SIZE}}{{UNIT}};',
2816 ],
2817 ]
2818 );
2819
2820
2821
2822
2823 $this->end_controls_section();
2824
2825
2826
2827 }
2828
2829 public function load_slider_template($id)
2830 {
2831 if (empty($id)) {
2832 return '';
2833 }
2834
2835 // WPML / Polylang language handling
2836 if (defined('ICL_LANGUAGE_CODE')) {
2837 $default_language_code = apply_filters('wpml_default_language', null);
2838 /** @noinspection PhpUndefinedConstantInspection */
2839 if (ICL_LANGUAGE_CODE !== $default_language_code) {
2840 /** @noinspection PhpUndefinedConstantInspection */
2841 /** @noinspection PhpUndefinedFunctionInspection */
2842 $id = icl_object_id($id, 'elementor_library', false, ICL_LANGUAGE_CODE);
2843 }
2844 }
2845
2846 $type = get_post_meta(get_the_ID(), '_king_addons_template_type', true);
2847 $has_css = (
2848 'internal' === get_option('elementor_css_print_method')
2849 || '' !== $type
2850 );
2851
2852 // Return the rendered Elementor template plus an "Edit" link
2853 return Elementor\Plugin::instance()->frontend->get_builder_content_for_display($id, $has_css);
2854 }
2855
2856 // Stub left intentionally for compatibility with the original code
2857 public function render_pro_element_slider_scroll_btn()
2858 {
2859 }
2860
2861 protected function render()
2862 {
2863 $settings = $this->get_settings_for_display();
2864 $slider_html = '';
2865 $item_count = 0;
2866
2867 // Early exit if no slider items
2868 if (empty($settings['slider_items'])) {
2869 return;
2870 }
2871
2872 $tags_whitelist = ['h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'div', 'span', 'p'];
2873
2874 $settings_slider_title_tag = Core::validateHTMLTags($settings['slider_title_tag'], 'h2', $tags_whitelist);
2875 $settings_slider_sub_title_tag = Core::validateHTMLTags($settings['slider_sub_title_tag'], 'h3', $tags_whitelist);
2876
2877 // Check if premium code is allowed
2878 $is_premium = king_addons_freemius()->can_use_premium_code__premium_only();
2879
2880 /**
2881 * If the slider effect is "slide_vertical", force the slider_amount to 1
2882 * (this matches the original code logic).
2883 * Otherwise, use the slider_amount from the settings.
2884 */
2885 $slider_amount = ($settings['slider_effect'] === 'slide_vertical')
2886 ? 1
2887 : (int)$settings['slider_amount'];
2888
2889 // In free version, override some settings if needed
2890 if (!$is_premium) {
2891 if (in_array($settings['slider_amount'], ['pro-3', 'pro-4', 'pro-5', 'pro-6'])) {
2892 $settings['slider_amount'] = 2; // Force fallback for free version
2893 }
2894 }
2895
2896 // Helper closure to get the background image URL
2897 $get_bg_image_url = function ($item) use ($settings) {
2898 if (
2899 !empty($item['slider_item_bg_image']['source'])
2900 && $item['slider_item_bg_image']['source'] === 'url'
2901 ) {
2902 return $item['slider_item_bg_image']['url'] ?? '';
2903 }
2904 return Group_Control_Image_Size::get_attachment_image_src(
2905 $item['slider_item_bg_image']['id'],
2906 'slider_image_size',
2907 $settings
2908 );
2909 };
2910
2911 // Helper closure to render icons
2912 $render_icon_html = function ($icon) {
2913 if (!empty($icon['value'])) {
2914 ob_start();
2915 Icons_Manager::render_icon($icon, ['aria-hidden' => 'true']);
2916 return ob_get_clean();
2917 }
2918 return '';
2919 };
2920
2921 foreach ($settings['slider_items'] as $key => $item) {
2922 // Free version: limit to 4 slides
2923 if (!$is_premium && $key === 4) {
2924 break;
2925 }
2926
2927 // In free version, force content type to custom (if template is not allowed)
2928 if (!$is_premium) {
2929 $item['slider_content_type'] = 'custom';
2930 }
2931
2932 // If this slide is loaded from another Elementor template
2933 if ($item['slider_content_type'] === 'template') {
2934 $slider_html .= sprintf(
2935 '<div class="king-addons-slider-item elementor-repeater-item-%s">%s</div>',
2936 esc_attr($item['_id']),
2937 $this->load_slider_template($item['slider_select_template'])
2938 );
2939 continue; // proceed to the next item
2940 }
2941
2942 // --- Below is the logic for "custom" slide content ---
2943 if (!$is_premium) {
2944 $item['slider_item_link_type'] = 'none';
2945 }
2946
2947 $this->add_render_attribute("slider_item$item_count", 'class', [
2948 'king-addons-slider-item',
2949 'elementor-repeater-item-' . esc_attr($item['_id'])
2950 ]);
2951
2952 $item_type = $item['slider_item_link_type'];
2953 $item_bg_image_url = $get_bg_image_url($item);
2954 $ken_burn_class = ($item['slider_item_bg_kenburns'] === 'yes')
2955 ? ' king-addons-ken-burns-' . $item['slider_item_bg_zoom']
2956 : '';
2957
2958 // --- VIDEO logic ---
2959 if (strpos($item_type, 'video') !== false && !empty($item['slider_item_video_src'])) {
2960 $this->add_render_attribute("slider_item$item_count", 'class', 'king-addons-slider-video-item');
2961 $this->add_render_attribute(
2962 "slider_item$item_count",
2963 'data-video-autoplay',
2964 esc_attr($item['slider_item_video_autoplay'])
2965 );
2966
2967 $item_video_src = $item['slider_item_video_src'];
2968 $start_time = esc_attr($item['slider_item_video_start']);
2969 $end_time = esc_attr($item['slider_item_video_end']);
2970 $autoplay = ($item['slider_item_video_autoplay'] === 'yes');
2971 $mute = ($item['slider_item_video_mute'] === 'yes');
2972 $controls = ($item['slider_item_video_controls'] === 'yes');
2973 $loop = ($item['slider_item_video_loop'] === 'yes');
2974
2975 // YouTube
2976 if ($item_type === 'video-youtube') {
2977 preg_match('![?&]v=([^&]+)!', $item_video_src, $video_id);
2978 $youtube_id = $video_id[1] ?? '';
2979
2980 if (!$item_bg_image_url) {
2981 $item_bg_image_url = "https://i.ytimg.com/vi_webp/$youtube_id/maxresdefault.webp";
2982 }
2983 $item_video_src = $autoplay
2984 ? "https://www.youtube.com/embed/$youtube_id?autoplay=1"
2985 : "https://www.youtube.com/embed/$youtube_id?enablejsapi=1";
2986
2987 if ($mute) $item_video_src .= '&mute=1';
2988 if (!$controls) $item_video_src .= '&controls=0';
2989
2990 if ($loop) {
2991 $item_video_src .= '&loop=1&playlist=' . $youtube_id;
2992 } else {
2993 if ($start_time) $item_video_src .= '&start=' . $start_time;
2994 if ($end_time) $item_video_src .= '&end=' . $end_time;
2995 }
2996 } // Vimeo
2997 elseif ($item_type === 'video-vimeo') {
2998 $item_video_src = str_replace('vimeo.com', 'player.vimeo.com/video', $item_video_src);
2999 $item_video_src .= '?autoplay=1&title=0&portrait=0&byline=0';
3000 if ($mute) $item_video_src .= '&muted=1';
3001 if (!$controls) $item_video_src .= '&controls=0';
3002 if ($loop) {
3003 $item_video_src .= '&loop=1';
3004 } elseif ($start_time) {
3005 // Convert the start time into HhMmSs format
3006 $item_video_src .= '&#t='
3007 . gmdate('H', $start_time) . 'h'
3008 . gmdate('i', $start_time) . 'm'
3009 . gmdate('s', $start_time) . 's';
3010 }
3011 } // Self-hosted
3012 elseif ($item_type === 'video-media') {
3013 $item_video_src = $item['hosted_url']['url'] ?? '';
3014 $video_mute = $mute ? 'muted' : '';
3015 $video_loop = $loop ? 'loop' : '';
3016 $video_controls = $controls ? 'controls' : '';
3017 $this->add_render_attribute("slider_item$item_count", 'data-video-mute', $video_mute);
3018 $this->add_render_attribute("slider_item$item_count", 'data-video-loop', $video_loop);
3019 $this->add_render_attribute("slider_item$item_count", 'data-video-controls', $video_controls);
3020 }
3021 $this->add_render_attribute(
3022 "slider_item$item_count",
3023 'data-video-src',
3024 esc_url($item_video_src)
3025 );
3026 }
3027
3028 // Begin wrapper
3029 $slider_html .= '<div ' . $this->get_render_attribute_string("slider_item$item_count") . '>';
3030
3031 // Display as an <img> tag or via background
3032 if ($settings['slider_image_type'] === 'image') {
3033 $slider_html .= '<img class="king-addons-slider-img" src="' . esc_url($item_bg_image_url) . '"/>';
3034 } else {
3035 $slider_html .= '<div class="king-addons-slider-item-bg ' . esc_attr($ken_burn_class) . '" '
3036 . 'style="background-image:url(' . esc_url($item_bg_image_url) . ')"></div>';
3037 }
3038
3039 /**
3040 * Processing the overlay:
3041 * - If the slider has only 1 slide or blend_mode != normal, insert overlay immediately.
3042 * - If multiple slides and blend_mode = normal, store overlay in a variable and place it later.
3043 */
3044 $slider_overlay_html = '';
3045 if ($item['slider_item_overlay'] === 'yes') {
3046 if ($slider_amount === 1 || $item['slider_item_blend_mode'] !== 'normal') {
3047 $slider_html .= '<div class="king-addons-slider-item-overlay"></div>';
3048 } else {
3049 // for multi-slide + normal blend mode, insert the overlay later
3050 $slider_overlay_html = '<div class="king-addons-slider-item-overlay"></div>';
3051 }
3052 }
3053
3054 // Prepare containers
3055 $this->add_render_attribute("slider_container$item_count", 'class', 'king-addons-cv-container');
3056 $this->add_render_attribute("slider_outer$item_count", 'class', 'king-addons-cv-outer');
3057
3058 // If the effect is not "fade", disable the content animation
3059 if ($settings['slider_effect'] !== 'fade') {
3060 $settings['slider_content_animation'] = 'none';
3061 }
3062
3063 // If content animation is enabled
3064 if ($settings['slider_content_animation'] !== 'none') {
3065 $anim_size = esc_attr($settings['slider_content_anim_size']);
3066 $anim_type = esc_attr($settings['slider_content_animation']);
3067
3068 $this->add_render_attribute("slider_container$item_count", 'class', 'king-addons-slider-animation');
3069 $this->add_render_attribute("slider_outer$item_count", 'class', [
3070 'king-addons-anim-transparency',
3071 'king-addons-anim-size-' . $anim_size,
3072 'king-addons-overlay-' . $anim_type
3073 ]);
3074
3075 /**
3076 * For multi-slide + manual video start (non-autoplay),
3077 * add an additional .king-addons-animation-wrap class
3078 */
3079 if (
3080 $slider_amount !== 1
3081 && !empty($item_bg_image_url)
3082 && $item['slider_item_video_autoplay'] !== 'yes'
3083 ) {
3084 $this->add_render_attribute("slider_container$item_count", 'class', 'king-addons-animation-wrap');
3085 }
3086 }
3087
3088 $slider_html .= '<div ' . $this->get_render_attribute_string("slider_container$item_count") . '>';
3089
3090 // Optional link wrapping the background
3091 $bg_link = $item['slider_item_bg_image_url']['url'] ?? '';
3092 if ($bg_link && $item_type === 'custom') {
3093 $this->add_render_attribute("slider_item_url$item_count", 'href', esc_url($bg_link));
3094 if (!empty($item['slider_item_bg_image_url']['is_external'])) {
3095 $this->add_render_attribute("slider_item_url$item_count", 'target', '_blank');
3096 }
3097 if (!empty($item['slider_item_bg_image_url']['nofollow'])) {
3098 $this->add_render_attribute("slider_item_url$item_count", 'rel', 'nofollow');
3099 }
3100 $slider_html .= '<a class="king-addons-slider-item-url" '
3101 . $this->get_render_attribute_string("slider_item_url$item_count") . '></a>';
3102 }
3103
3104 $slider_html .= '<div ' . $this->get_render_attribute_string("slider_outer$item_count") . '>';
3105 $slider_html .= '<div class="king-addons-cv-inner">';
3106
3107 // If multiple slides + normal blend mode, insert the overlay here
3108 $slider_html .= $slider_overlay_html;
3109
3110 // Slide content
3111 if ($item['slider_show_content'] === 'yes') {
3112 $slider_html .= '<div class="king-addons-slider-content">';
3113
3114 // If it's video without autoplay, display the play button
3115 if (strpos($item_type, 'video') !== false && $item['slider_item_video_autoplay'] !== 'yes') {
3116 $slider_html .= '<div class="king-addons-slider-video-btn"><i class="fas fa-play"></i></div>';
3117 }
3118
3119 // Title
3120 if (
3121 $settings['slider_title'] === 'yes'
3122 && !empty($item['slider_item_title'])
3123 ) {
3124 /**
3125 * Use the item's slider_title_tag if valid,
3126 * otherwise fallback to the global setting
3127 */
3128 $tag = $item['slider_title_tag']
3129 ? Core::validateHTMLTags($item['slider_title_tag'], 'h2', $tags_whitelist)
3130 : $settings_slider_title_tag;
3131
3132 $slider_html .= '<div class="king-addons-slider-title">';
3133 $slider_html .= "<$tag>" . wp_kses_post($item['slider_item_title']) . "</$tag>";
3134 $slider_html .= '</div>';
3135 }
3136
3137 // Sub Title
3138 if (
3139 $settings['slider_sub_title'] === 'yes'
3140 && !empty($item['slider_item_sub_title'])
3141 ) {
3142 $tag = $item['slider_sub_title_tag']
3143 ? Core::validateHTMLTags($item['slider_sub_title_tag'], 'h3', $tags_whitelist)
3144 : $settings_slider_sub_title_tag;
3145
3146 $slider_html .= '<div class="king-addons-slider-sub-title">';
3147 $slider_html .= "<$tag>" . wp_kses_post($item['slider_item_sub_title']) . "</$tag>";
3148 $slider_html .= '</div>';
3149 }
3150
3151 // Description
3152 if (
3153 $settings['slider_description'] === 'yes'
3154 && !empty($item['slider_item_description'])
3155 ) {
3156 $slider_html .= '<div class="king-addons-slider-description"><p>'
3157 . wp_kses_post($item['slider_item_description']) . '</p></div>';
3158 }
3159
3160 // Buttons
3161 $icon_html_1 = esc_attr($item['slider_item_btn_text_1']) . $render_icon_html($item['slider_item_btn_icon_1']);
3162 $icon_html_2 = esc_attr($item['slider_item_btn_text_2']) . $render_icon_html($item['slider_item_btn_icon_2']);
3163
3164 $btn1_url = $item['slider_item_btn_url_1']['url'] ?? '';
3165 $btn2_url = $item['slider_item_btn_url_2']['url'] ?? '';
3166
3167 $slider_html .= '<div class="king-addons-slider-btns">';
3168
3169 // First button
3170 if ($item['slider_item_btn_1'] === 'yes' && $icon_html_1) {
3171 $tag_btn1 = 'div';
3172 $btn1_attribs = '';
3173 if (!empty($btn1_url)) {
3174 $tag_btn1 = 'a';
3175 $this->add_render_attribute("btn1_$item_count", 'href', esc_url($btn1_url));
3176 if (!empty($item['slider_item_btn_url_1']['is_external'])) {
3177 $this->add_render_attribute("btn1_$item_count", 'target', '_blank');
3178 }
3179 if (!empty($item['slider_item_btn_url_1']['nofollow'])) {
3180 $this->add_render_attribute("btn1_$item_count", 'rel', 'nofollow');
3181 }
3182 $btn1_attribs = $this->get_render_attribute_string("btn1_$item_count");
3183 }
3184 $slider_html .= "<$tag_btn1 class=\"king-addons-slider-primary-btn\" $btn1_attribs>$icon_html_1</$tag_btn1>";
3185 }
3186
3187 // Second button
3188 if ($item['slider_item_btn_2'] === 'yes' && $icon_html_2) {
3189 $tag_btn2 = 'div';
3190 $btn2_attribs = '';
3191 if (!empty($btn2_url)) {
3192 $tag_btn2 = 'a';
3193 $this->add_render_attribute("btn2_$item_count", 'href', esc_url($btn2_url));
3194 if (!empty($item['slider_item_btn_url_2']['is_external'])) {
3195 $this->add_render_attribute("btn2_$item_count", 'target', '_blank');
3196 }
3197 if (!empty($item['slider_item_btn_url_2']['nofollow'])) {
3198 $this->add_render_attribute("btn2_$item_count", 'rel', 'nofollow');
3199 }
3200 $btn2_attribs = $this->get_render_attribute_string("btn2_$item_count");
3201 }
3202 $slider_html .= "<$tag_btn2 class=\"king-addons-slider-secondary-btn\" $btn2_attribs>$icon_html_2</$tag_btn2>";
3203 }
3204
3205 $slider_html .= '</div>'; // .king-addons-slider-btns
3206 $slider_html .= '</div>'; // .king-addons-slider-content
3207 } else {
3208 // If content is hidden, but it is a video without autoplay, show the "Play" button
3209 if (strpos($item_type, 'video') !== false && $item['slider_item_video_autoplay'] !== 'yes') {
3210 $slider_html .= '<div class="king-addons-slider-video-btn"><i class="fas fa-play"></i></div>';
3211 }
3212 }
3213
3214 $slider_html .= '</div>'; // .king-addons-cv-inner
3215 $slider_html .= '</div>'; // slider_outer
3216 $slider_html .= '</div>'; // slider_container
3217 $slider_html .= '</div>'; // slider_item
3218 $item_count++;
3219 }
3220
3221 // Free version overrides
3222 if (!$is_premium) {
3223 $settings['slider_autoplay'] = '';
3224 $settings['slider_autoplay_duration'] = 0;
3225 $settings['slider_pause_on_hover'] = '';
3226 }
3227
3228 // If slider_effect == 'sl_vl', convert it to 'slide' (matching the original logic)
3229 if ($settings['slider_effect'] === 'sl_vl') {
3230 $settings['slider_effect'] = 'slide';
3231 }
3232
3233 $slider_is_rtl = is_rtl();
3234 $slider_dir = $slider_is_rtl ? 'rtl' : 'ltr';
3235
3236 // Video button sizes for different devices
3237 $slider_video_btn_widescreen = $settings['slider_video_btn_size_widescreen'] ?? $settings['slider_video_btn_size'];
3238 $slider_video_btn_desktop = $settings['slider_video_btn_size'] ?? $slider_video_btn_widescreen;
3239 $slider_video_btn_laptop = $settings['slider_video_btn_size_laptop'] ?? $slider_video_btn_desktop;
3240 $slider_video_btn_tablet_ext = $settings['slider_video_btn_size_tablet_extra'] ?? $slider_video_btn_laptop;
3241 $slider_video_btn_tablet = $settings['slider_video_btn_size_tablet'] ?? $slider_video_btn_tablet_ext;
3242 $slider_video_btn_mobile_ext = $settings['slider_video_btn_size_mobile_extra'] ?? $slider_video_btn_tablet;
3243 $slider_video_btn_mobile = $settings['slider_video_btn_size_mobile'] ?? $slider_video_btn_mobile_ext;
3244
3245 // Slick slider options
3246 $slider_options = [
3247 'rtl' => $slider_is_rtl,
3248 'infinite' => ($settings['slider_loop'] === 'yes'),
3249 'speed' => absint($settings['slider_effect_duration'] * 1000),
3250 'arrows' => true,
3251 'dots' => true,
3252 'autoplay' => ($settings['slider_autoplay'] === 'yes'),
3253 'autoplaySpeed' => absint($settings['slider_autoplay_duration'] * 1000),
3254 'pauseOnHover' => esc_attr($settings['slider_pause_on_hover']),
3255 'prevArrow' => '#king-addons-slider-prev-' . $this->get_id(),
3256 'nextArrow' => '#king-addons-slider-next-' . $this->get_id(),
3257 'vertical' => ($settings['slider_effect'] === 'slide_vertical'),
3258 'adaptiveHeight' => true,
3259 ];
3260
3261 // Pass data to HTML attributes
3262 $this->add_render_attribute('advanced-slider-attribute', [
3263 'class' => 'king-addons-advanced-slider',
3264 'dir' => esc_attr($slider_dir),
3265 'data-slick' => wp_json_encode($slider_options),
3266 'data-video-btn-size' => wp_json_encode([
3267 'widescreen' => esc_attr($slider_video_btn_widescreen),
3268 'desktop' => esc_attr($slider_video_btn_desktop),
3269 'laptop' => esc_attr($slider_video_btn_laptop),
3270 'tablet_extra' => esc_attr($slider_video_btn_tablet_ext),
3271 'tablet' => esc_attr($slider_video_btn_tablet),
3272 'mobile_extra' => esc_attr($slider_video_btn_mobile_ext),
3273 'mobile' => esc_attr($slider_video_btn_mobile),
3274 ]),
3275 ]);
3276 ?>
3277
3278 <div class="king-addons-advanced-slider-wrap">
3279 <div
3280 <?php echo $this->get_render_attribute_string('advanced-slider-attribute'); ?>
3281 data-slide-effect="<?php echo esc_attr($settings['slider_effect']); ?>"
3282 >
3283 <?php
3284 // Output the constructed HTML string for slides
3285 echo $slider_html;
3286 ?>
3287 </div>
3288
3289 <div class="king-addons-slider-controls">
3290 <div class="king-addons-slider-dots"></div>
3291 </div>
3292
3293 <div class="king-addons-slider-arrow-container">
3294 <div class="king-addons-slider-prev-arrow king-addons-slider-arrow"
3295 id="<?php echo 'king-addons-slider-prev-' . esc_attr($this->get_id()); ?>">
3296 <?php echo Core::getIcon($settings['slider_nav_icon'], ''); ?>
3297 </div>
3298 <div class="king-addons-slider-next-arrow king-addons-slider-arrow"
3299 id="<?php echo 'king-addons-slider-next-' . esc_attr($this->get_id()); ?>">
3300 <?php echo Core::getIcon($settings['slider_nav_icon'], ''); ?>
3301 </div>
3302 </div>
3303
3304 <?php
3305 if ($settings['slider_scroll_btn'] === 'yes') {
3306 $this->render_pro_element_slider_scroll_btn();
3307 }
3308 ?>
3309 </div>
3310 <?php
3311 }
3312 }