PluginProbe
King Addons for Elementor – 80+ Elementor Widgets, 4 000+ Elementor Templates, WooCommerce, Mega Menu, Popup Builder / 51.1.78
King Addons for Elementor – 80+ Elementor Widgets, 4 000+ Elementor Templates, WooCommerce, Mega Menu, Popup Builder v51.1.78
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.78, at includes/widgets/Slider/Slider.php

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