PluginProbe
King Addons for Elementor – 100+ Elementor Widgets, 4 000+ Elementor Templates, WooCommerce Builder, Mega Menu, Popup Builder / 51.1.86
King Addons for Elementor – 100+ Elementor Widgets, 4 000+ Elementor Templates, WooCommerce Builder, Mega Menu, Popup Builder v51.1.86
51.1.86 51.1.84 51.1.85 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 All 40 releases
← All changes | includes/widgets/Team_Member/Team_Member.php +2209 -0 51.1.2 → 51.1.86 View file →
@@ -1,0 +1,2209 @@
1 +<?php /** @noinspection PhpUnused */
2 +
3 +namespace King_Addons;
4 +
5 +use Elementor\Controls_Manager;
6 +use Elementor\Icons_Manager;
7 +use Elementor\Widget_Base;
8 +use Elementor\Group_Control_Typography;
9 +use Elementor\Group_Control_Background;
10 +use Elementor\Group_Control_Image_Size;
11 +use Elementor\Group_Control_Border;
12 +use Elementor\Group_Control_Box_Shadow;
13 +use Elementor\Group_Control_Css_Filter;
14 +use Elementor\Utils;
15 +
16 +if (!defined('ABSPATH')) {
17 + exit; // Exit if accessed directly.
18 +}
19 +
20 +
21 +
22 +class Team_Member extends Widget_Base
23 +{
24 +
25 +
26 + public function get_name(): string
27 + {
28 + return 'king-addons-team-member';
29 + }
30 +
31 + public function get_title(): string
32 + {
33 + return esc_html__('Team Member', 'king-addons');
34 + }
35 +
36 + public function get_icon(): string
37 + {
38 + return 'king-addons-icon king-addons-team-member';
39 + }
40 +
41 + public function get_style_depends(): array
42 + {
43 + return [
44 + KING_ADDONS_ASSETS_UNIQUE_KEY . '-team-member-style',
45 + KING_ADDONS_ASSETS_UNIQUE_KEY . '-animation-general',
46 + KING_ADDONS_ASSETS_UNIQUE_KEY . '-animation-button',
47 + KING_ADDONS_ASSETS_UNIQUE_KEY . '-general-general',
48 + ];
49 + }
50 +
51 + public function get_categories(): array
52 + {
53 + return ['king-addons'];
54 + }
55 +
56 + public function get_keywords(): array
57 + {
58 + return ['team member', 'team', 'member', 'social', 'names', 'roles', 'photos',
59 + 'social media', 'links', 'social media links', 'king addons', 'king', 'addons', 'kingaddons', 'king-addons'];
60 + }
61 +
62 + public function get_custom_help_url()
63 + {
64 + return 'mailto:[email protected]?subject=Bug Report - King Addons&body=Please describe the issue';
65 + }
66 +
67 + public function add_section_layout()
68 + {
69 + $this->start_controls_section(
70 + 'tm_section_layout',
71 + [
72 + 'label' => KING_ADDONS_ELEMENTOR_ICON . esc_html__('Layout', 'king-addons'),
73 + ]
74 + );
75 +
76 + $this->add_control(
77 + 'member_name_location',
78 + [
79 + 'type' => Controls_Manager::SELECT,
80 + 'label' => esc_html__('Name Location', 'king-addons'),
81 + 'default' => 'below',
82 + 'options' => [
83 + 'over' => esc_html__('Over Image', 'king-addons'),
84 + 'below' => esc_html__('Below Image', 'king-addons'),
85 + ],
86 + ]
87 + );
88 +
89 + $this->add_control(
90 + 'member_job_location',
91 + [
92 + 'type' => Controls_Manager::SELECT,
93 + 'label' => esc_html__('Job Location', 'king-addons'),
94 + 'default' => 'below',
95 + 'options' => [
96 + 'over' => esc_html__('Over Image', 'king-addons'),
97 + 'below' => esc_html__('Below Image', 'king-addons'),
98 + ],
99 + ]
100 + );
101 +
102 + $this->add_control(
103 + 'member_divider_location',
104 + [
105 + 'type' => Controls_Manager::SELECT,
106 + 'label' => esc_html__('Divider Location', 'king-addons'),
107 + 'default' => 'below',
108 + 'options' => [
109 + 'over' => esc_html__('Over Image', 'king-addons'),
110 + 'below' => esc_html__('Below Image', 'king-addons'),
111 + ],
112 + 'condition' => [
113 + 'member_divider' => 'yes',
114 + ],
115 + ]
116 + );
117 +
118 + $this->add_control(
119 + 'member_description_location',
120 + [
121 + 'type' => Controls_Manager::SELECT,
122 + 'label' => esc_html__('Description Location', 'king-addons'),
123 + 'default' => 'below',
124 + 'options' => [
125 + 'over' => esc_html__('Over Image', 'king-addons'),
126 + 'below' => esc_html__('Below Image', 'king-addons'),
127 + ],
128 + ]
129 + );
130 +
131 + $this->add_control(
132 + 'member_social_media_location',
133 + [
134 + 'type' => Controls_Manager::SELECT,
135 + 'label' => esc_html__('Socials Location', 'king-addons'),
136 + 'default' => 'below',
137 + 'options' => [
138 + 'over' => esc_html__('Over Image', 'king-addons'),
139 + 'below' => esc_html__('Below Image', 'king-addons'),
140 + ],
141 + 'condition' => [
142 + 'social_media' => 'yes',
143 + ],
144 + ]
145 + );
146 +
147 + $this->add_control(
148 + 'member_btn_location',
149 + [
150 + 'type' => Controls_Manager::SELECT,
151 + 'label' => esc_html__('Button Location', 'king-addons'),
152 + 'default' => 'below',
153 + 'options' => [
154 + 'over' => esc_html__('Over Image', 'king-addons'),
155 + 'below' => esc_html__('Below Image', 'king-addons'),
156 + ],
157 + 'condition' => [
158 + 'member_btn' => 'yes',
159 + ],
160 + ]
161 + );
162 +
163 + $this->add_control(
164 + 'content_vertical_align',
165 + [
166 + 'label' => esc_html__('Vertical Align', 'king-addons'),
167 + 'type' => Controls_Manager::CHOOSE,
168 + 'label_block' => false,
169 + 'default' => 'middle',
170 + 'options' => [
171 + 'top' => [
172 + 'title' => esc_html__('Top', 'king-addons'),
173 + 'icon' => 'eicon-v-align-top',
174 + ],
175 + 'middle' => [
176 + 'title' => esc_html__('Middle', 'king-addons'),
177 + 'icon' => 'eicon-v-align-middle',
178 + ],
179 + 'bottom' => [
180 + 'title' => esc_html__('Bottom', 'king-addons'),
181 + 'icon' => 'eicon-v-align-bottom',
182 + ]
183 + ],
184 + 'selectors' => [
185 + '{{WRAPPER}} .king-addons-cv-inner' => 'vertical-align: {{VALUE}}',
186 + ]
187 + ]
188 + );
189 +
190 +
191 +
192 +
193 +$this->end_controls_section();
194 +
195 +
196 + }
197 +
198 + public function add_section_image_overlay()
199 + {
200 + $this->start_controls_section(
201 + 'tm_section_image_overlay',
202 + [
203 + 'label' => KING_ADDONS_ELEMENTOR_ICON . esc_html__('Overlay', 'king-addons'),
204 + ]
205 + );
206 +
207 + $this->add_control(
208 + 'overlay_animation',
209 + [
210 + 'label' => esc_html__('Select Animation', 'king-addons'),
211 + 'type' => 'king-addons-animations-alt',
212 + 'default' => 'none',
213 + ]
214 + );
215 +
216 + $this->add_control(
217 + 'overlay_anim_size',
218 + [
219 + 'type' => Controls_Manager::SELECT,
220 + 'label' => esc_html__('Animation Size', 'king-addons'),
221 + 'default' => 'large',
222 + 'options' => [
223 + 'small' => esc_html__('Small', 'king-addons'),
224 + 'medium' => esc_html__('Medium', 'king-addons'),
225 + 'large' => esc_html__('Large', 'king-addons'),
226 + ],
227 + 'condition' => [
228 + 'overlay_animation!' => 'none',
229 + ],
230 + ]
231 + );
232 +
233 + $this->add_control(
234 + 'overlay_anim_duration',
235 + [
236 + 'label' => esc_html__('Animation Duration (ms)', 'king-addons'),
237 + 'type' => Controls_Manager::NUMBER,
238 + 'default' => 300,
239 + 'min' => 0,
240 + 'step' => 50,
241 + 'selectors' => [
242 + '{{WRAPPER}} .king-addons-team-member-animation .king-addons-cv-outer' => '-webkit-transition-duration: {{VALUE}}ms;transition-duration: {{VALUE}}ms;',
243 + ],
244 + 'condition' => [
245 + 'overlay_animation!' => 'none',
246 + ],
247 + ]
248 + );
249 +
250 + if (!king_addons_freemius()->can_use_premium_code__premium_only()) {
251 + $this->add_control(
252 + 'team_member_pro_notice',
253 + [
254 + 'type' => Controls_Manager::RAW_HTML,
255 + 'raw' => 'Advanced overlay animations are available in the <strong><a href="https://kingaddons.com/pricing/?utm_source=kng-module-team-member-settings-upgrade-pro&utm_medium=plugin&utm_campaign=kng" target="_blank">Pro version</a></strong>',
256 + 'content_classes' => 'king-addons-pro-notice',
257 + ]
258 + );
259 + }
260 +
261 + $this->end_controls_section();
262 + }
263 +
264 + public function add_section_style_overlay()
265 + {
266 + $this->start_controls_section(
267 + 'section_style_overlay',
268 + [
269 + 'label' => KING_ADDONS_ELEMENTOR_ICON . esc_html__('Overlay', 'king-addons'),
270 + 'tab' => Controls_Manager::TAB_STYLE,
271 + ]
272 + );
273 +
274 + $this->add_control(
275 + 'image_overlay_section',
276 + [
277 + 'label' => esc_html__('Image Overlay', 'king-addons'),
278 + 'type' => Controls_Manager::HEADING,
279 + 'separator' => 'before',
280 + ]
281 + );
282 +
283 + $this->add_group_control(
284 + Group_Control_Background::get_type(),
285 + [
286 + 'name' => 'image_overlay_bg_color',
287 + 'types' => ['classic', 'gradient'],
288 + 'selector' => '{{WRAPPER}} .king-addons-member-overlay',
289 + 'fields_options' => [
290 + 'color' => [
291 + 'default' => 'rgba(255, 255, 255, 0.8)',
292 + ],
293 + 'background' => [
294 + 'default' => 'classic',
295 + ]
296 + ],
297 +
298 + ]
299 + );
300 +
301 + $this->add_group_control(
302 + Group_Control_Border::get_type(),
303 + [
304 + 'name' => 'overlay_border',
305 + 'label' => esc_html__('Border', 'king-addons'),
306 + 'default' => 'solid',
307 + 'fields_options' => [
308 + 'color' => [
309 + 'default' => '#E8E8E8',
310 + ],
311 + 'width' => [
312 + 'default' => [
313 + 'top' => '1',
314 + 'right' => '1',
315 + 'bottom' => '1',
316 + 'left' => '1',
317 + 'isLinked' => true,
318 + ],
319 + ],
320 + ],
321 + 'selector' => '{{WRAPPER}} .king-addons-member-overlay',
322 + 'separator' => 'before',
323 + ]
324 + );
325 +
326 + $this->add_responsive_control(
327 + 'image_overlay_padding',
328 + [
329 + 'label' => esc_html__('Padding', 'king-addons'),
330 + 'type' => Controls_Manager::DIMENSIONS,
331 + 'default' => [
332 + 'top' => 10,
333 + 'right' => 10,
334 + 'bottom' => 10,
335 + 'left' => 10,
336 + ],
337 + 'size_units' => ['px'],
338 + 'selectors' => [
339 + '{{WRAPPER}} .king-addons-member-overlay-content' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
340 + ],
341 + 'separator' => 'before',
342 + ]
343 + );
344 +
345 + $this->end_controls_section();
346 + }
347 +
348 + protected function register_controls()
349 + {
350 +
351 + $this->start_controls_section(
352 + 'section_content',
353 + [
354 + 'label' => KING_ADDONS_ELEMENTOR_ICON . esc_html__('Content', 'king-addons'),
355 + ]
356 + );
357 +
358 + $this->add_control(
359 + 'member_image',
360 + [
361 + 'label' => esc_html__('Image', 'king-addons'),
362 + 'type' => Controls_Manager::MEDIA,
363 + 'dynamic' => [
364 + 'active' => true,
365 + ],
366 + 'default' => [
367 + 'url' => Utils::get_placeholder_image_src(),
368 + ],
369 + ]
370 + );
371 +
372 + $this->add_control(
373 + 'member_name',
374 + [
375 + 'label' => esc_html__('Name', 'king-addons'),
376 + 'type' => Controls_Manager::TEXT,
377 + 'dynamic' => [
378 + 'active' => true,
379 + ],
380 + 'default' => esc_html__('John Doe', 'king-addons'),
381 + ]
382 + );
383 +
384 + $this->add_control(
385 + 'member_name_tag',
386 + [
387 + 'type' => Controls_Manager::SELECT,
388 + 'label' => esc_html__('HTML Tag', 'king-addons'),
389 + 'default' => 'h3',
390 + 'options' => [
391 + 'h1' => esc_html__('H1', 'king-addons'),
392 + 'h2' => esc_html__('H2', 'king-addons'),
393 + 'h3' => esc_html__('H3', 'king-addons'),
394 + 'h4' => esc_html__('H4', 'king-addons'),
395 + 'h5' => esc_html__('H5', 'king-addons'),
396 + 'h6' => esc_html__('H6', 'king-addons'),
397 + 'div' => esc_html__('div', 'king-addons'),
398 + 'span' => esc_html__('span', 'king-addons'),
399 + 'p' => esc_html__('p', 'king-addons'),
400 + ],
401 + ]
402 + );
403 +
404 + $this->add_control(
405 + 'member_job',
406 + [
407 + 'label' => esc_html__('Job', 'king-addons'),
408 + 'type' => Controls_Manager::TEXT,
409 + 'dynamic' => [
410 + 'active' => true,
411 + ],
412 + 'default' => esc_html__('King Addons CEO', 'king-addons'),
413 + ]
414 + );
415 +
416 + $this->add_control(
417 + 'member_description',
418 + [
419 + 'label' => esc_html__('Description', 'king-addons'),
420 + 'type' => Controls_Manager::TEXTAREA,
421 + 'dynamic' => [
422 + 'active' => true,
423 + ],
424 + 'default' => 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur laoreet cursus volutpat. Aliquam sit amet ligula et justo tincidunt laorsoet non vitae lorem.',
425 + ]
426 + );
427 +
428 + $this->add_control(
429 + 'member_description_divider',
430 + [
431 + 'type' => Controls_Manager::DIVIDER,
432 + 'style' => 'thick',
433 + ]
434 + );
435 +
436 + $this->add_control(
437 + 'member_divider',
438 + [
439 + 'label' => esc_html__('Divider', 'king-addons'),
440 + 'type' => Controls_Manager::SWITCHER,
441 + 'default' => 'yes',
442 + ]
443 + );
444 +
445 + $this->add_control(
446 + 'member_divider_position',
447 + [
448 + 'label' => esc_html__('Position', 'king-addons'),
449 + 'type' => Controls_Manager::SELECT,
450 + 'options' => [
451 + 'before_job' => esc_html__('Before Job', 'king-addons'),
452 + 'after_job' => esc_html__('After Job', 'king-addons'),
453 + ],
454 + 'default' => 'after_job',
455 + 'condition' => [
456 + 'member_divider' => 'yes',
457 + ],
458 + ]
459 + );
460 +
461 + $this->end_controls_section();
462 +
463 + $this->add_section_layout();
464 +
465 + $this->start_controls_section(
466 + 'section_social_media',
467 + [
468 + 'label' => KING_ADDONS_ELEMENTOR_ICON . esc_html__('Social Media', 'king-addons'),
469 + ]
470 + );
471 + $this->add_control(
472 + 'social_media',
473 + [
474 + 'label' => esc_html__('Show Social Media', 'king-addons'),
475 + 'type' => Controls_Manager::SWITCHER,
476 + 'default' => 'yes'
477 + ]
478 + );
479 +
480 + $this->add_control(
481 + 'social_media_is_external',
482 + [
483 + 'label' => esc_html__('Open in new window', 'king-addons'),
484 + 'type' => Controls_Manager::SWITCHER,
485 + 'condition' => [
486 + 'social_media' => 'yes',
487 + ],
488 + ]
489 + );
490 +
491 + $this->add_control(
492 + 'social_media_nofollow',
493 + [
494 + 'label' => esc_html__('Add nofollow', 'king-addons'),
495 + 'type' => Controls_Manager::SWITCHER,
496 + 'condition' => [
497 + 'social_media' => 'yes',
498 + ],
499 + ]
500 + );
501 +
502 + $this->add_control(
503 + 'social_section_1',
504 + [
505 + 'label' => esc_html__('Social 1', 'king-addons'),
506 + 'type' => Controls_Manager::HEADING,
507 + 'separator' => 'before',
508 + 'condition' => [
509 + 'social_media' => 'yes',
510 + ],
511 + ]
512 + );
513 +
514 + $this->add_control(
515 + 'social_icon_1',
516 + [
517 + 'label' => esc_html__('Select Icon', 'king-addons'),
518 + 'type' => Controls_Manager::ICONS,
519 + 'skin' => 'inline',
520 + 'label_block' => false,
521 + 'default' => [
522 + 'value' => 'fab fa-facebook-f',
523 + 'library' => 'fa-brands',
524 + ],
525 + 'condition' => [
526 + 'social_media' => 'yes',
527 + ],
528 + ]
529 + );
530 +
531 + $this->add_control(
532 + 'social_url_1',
533 + [
534 + 'label' => esc_html__('Social URL', 'king-addons'),
535 + 'type' => Controls_Manager::URL,
536 + 'dynamic' => [
537 + 'active' => true,
538 + ],
539 + 'show_external' => false,
540 + 'placeholder' => esc_html__('https://example.com', 'king-addons'),
541 + 'condition' => [
542 + 'social_media' => 'yes',
543 + ],
544 + ]
545 + );
546 +
547 + $this->add_control(
548 + 'social_section_2',
549 + [
550 + 'label' => esc_html__('Social 2', 'king-addons'),
551 + 'type' => Controls_Manager::HEADING,
552 + 'separator' => 'before',
553 + 'condition' => [
554 + 'social_media' => 'yes',
555 + ],
556 + ]
557 + );
558 +
559 + $this->add_control(
560 + 'social_icon_2',
561 + [
562 + 'label' => esc_html__('Select Icon', 'king-addons'),
563 + 'type' => Controls_Manager::ICONS,
564 + 'skin' => 'inline',
565 + 'label_block' => false,
566 + 'default' => [
567 + 'value' => 'fab fa-x-twitter',
568 + 'library' => 'fa-brands',
569 + ],
570 + 'condition' => [
571 + 'social_media' => 'yes',
572 + ],
573 + ]
574 + );
575 +
576 + $this->add_control(
577 + 'social_url_2',
578 + [
579 + 'label' => esc_html__('Social URL', 'king-addons'),
580 + 'type' => Controls_Manager::URL,
581 + 'dynamic' => [
582 + 'active' => true,
583 + ],
584 + 'show_external' => false,
585 + 'placeholder' => esc_html__('https://example.com', 'king-addons'),
586 + 'condition' => [
587 + 'social_media' => 'yes',
588 + ],
589 + ]
590 + );
591 +
592 + $this->add_control(
593 + 'social_section_3',
594 + [
595 + 'label' => esc_html__('Social 3', 'king-addons'),
596 + 'type' => Controls_Manager::HEADING,
597 + 'separator' => 'before',
598 + 'condition' => [
599 + 'social_media' => 'yes',
600 + ],
601 + ]
602 + );
603 +
604 + $this->add_control(
605 + 'social_icon_3',
606 + [
607 + 'label' => esc_html__('Select Icon', 'king-addons'),
608 + 'type' => Controls_Manager::ICONS,
609 + 'skin' => 'inline',
610 + 'label_block' => false,
611 + 'default' => [
612 + 'value' => 'fab fa-instagram',
613 + 'library' => 'fa-brands',
614 + ],
615 + 'condition' => [
616 + 'social_media' => 'yes',
617 + ],
618 + ]
619 + );
620 +
621 + $this->add_control(
622 + 'social_url_3',
623 + [
624 + 'label' => esc_html__('Social URL', 'king-addons'),
625 + 'type' => Controls_Manager::URL,
626 + 'dynamic' => [
627 + 'active' => true,
628 + ],
629 + 'show_external' => false,
630 + 'placeholder' => esc_html__('https://example.com', 'king-addons'),
631 + 'condition' => [
632 + 'social_media' => 'yes',
633 + ],
634 + ]
635 + );
636 +
637 + $this->add_control(
638 + 'social_section_4',
639 + [
640 + 'label' => esc_html__('Social 4', 'king-addons'),
641 + 'type' => Controls_Manager::HEADING,
642 + 'separator' => 'before',
643 + 'condition' => [
644 + 'social_media' => 'yes',
645 + ],
646 + ]
647 + );
648 +
649 + $this->add_control(
650 + 'social_icon_4',
651 + [
652 + 'label' => esc_html__('Select Icon', 'king-addons'),
653 + 'type' => Controls_Manager::ICONS,
654 + 'skin' => 'inline',
655 + 'label_block' => false,
656 + 'default' => [
657 + 'value' => 'fab fa-linkedin-in',
658 + 'library' => 'fa-brands',
659 + ],
660 + 'condition' => [
661 + 'social_media' => 'yes',
662 + ],
663 + ]
664 + );
665 +
666 + $this->add_control(
667 + 'social_url_4',
668 + [
669 + 'label' => esc_html__('Social URL', 'king-addons'),
670 + 'type' => Controls_Manager::URL,
671 + 'dynamic' => [
672 + 'active' => true,
673 + ],
674 + 'show_external' => false,
675 + 'placeholder' => esc_html__('https://example.com', 'king-addons'),
676 + 'condition' => [
677 + 'social_media' => 'yes',
678 + ],
679 + ]
680 + );
681 +
682 + $this->add_control(
683 + 'social_section_5',
684 + [
685 + 'label' => esc_html__('Social 5', 'king-addons'),
686 + 'type' => Controls_Manager::HEADING,
687 + 'separator' => 'before',
688 + 'condition' => [
689 + 'social_media' => 'yes',
690 + ],
691 + ]
692 + );
693 +
694 + $this->add_control(
695 + 'social_icon_5',
696 + [
697 + 'label' => esc_html__('Select Icon', 'king-addons'),
698 + 'type' => Controls_Manager::ICONS,
699 + 'skin' => 'inline',
700 + 'label_block' => false,
701 + 'condition' => [
702 + 'social_media' => 'yes',
703 + ],
704 + ]
705 + );
706 +
707 + $this->add_control(
708 + 'social_url_5',
709 + [
710 + 'label' => esc_html__('Social URL', 'king-addons'),
711 + 'type' => Controls_Manager::URL,
712 + 'dynamic' => [
713 + 'active' => true,
714 + ],
715 + 'show_external' => false,
716 + 'placeholder' => esc_html__('https://example.com', 'king-addons'),
717 + 'condition' => [
718 + 'social_media' => 'yes',
719 + ],
720 + ]
721 + );
722 +
723 + $this->end_controls_section();
724 +
725 + $this->start_controls_section(
726 + 'section_button',
727 + [
728 + 'label' => KING_ADDONS_ELEMENTOR_ICON . esc_html__('Button', 'king-addons'),
729 + ]
730 + );
731 +
732 + $this->add_control(
733 + 'member_btn',
734 + [
735 + 'label' => esc_html__('Show Button', 'king-addons'),
736 + 'type' => Controls_Manager::SWITCHER,
737 + ]
738 + );
739 +
740 + $this->add_control(
741 + 'member_btn_text',
742 + [
743 + 'label' => esc_html__('Button Text', 'king-addons'),
744 + 'type' => Controls_Manager::TEXT,
745 + 'dynamic' => [
746 + 'active' => true,
747 + ],
748 + 'default' => 'About Me',
749 + 'condition' => [
750 + 'member_btn' => 'yes',
751 + ],
752 + ]
753 + );
754 +
755 + $this->add_control(
756 + 'member_btn_url',
757 + [
758 + 'type' => Controls_Manager::URL,
759 + 'dynamic' => [
760 + 'active' => true,
761 + ],
762 + 'placeholder' => esc_html__('https://example.com', 'king-addons'),
763 + 'condition' => [
764 + 'member_btn' => 'yes',
765 + ],
766 + 'show_label' => false,
767 + ]
768 + );
769 +
770 + $this->end_controls_section();
771 +
772 + $this->add_section_image_overlay();
773 +
774 + Core::renderProFeaturesSection($this, '', Controls_Manager::RAW_HTML, 'team-member', [
775 + 'Advanced Image Overlay Hover Animations',
776 + 'Advanced Button Hover Animations',
777 + ]);
778 +
779 + $this->start_controls_section(
780 + 'tm_section_style_image',
781 + [
782 + 'label' => KING_ADDONS_ELEMENTOR_ICON . esc_html__('Image', 'king-addons'),
783 + 'tab' => Controls_Manager::TAB_STYLE,
784 + ]
785 + );
786 +
787 + $this->add_control(
788 + 'image_width',
789 + [
790 + 'label' => esc_html__('Width', 'king-addons'),
791 + 'type' => Controls_Manager::SLIDER,
792 + 'size_units' => ['%'],
793 + 'range' => [
794 + 'px' => [
795 + 'min' => 0,
796 + 'max' => 100,
797 + ],
798 + ],
799 + 'default' => [
800 + 'unit' => '%',
801 + 'size' => 100,
802 + ],
803 + 'selectors' => [
804 + '{{WRAPPER}} .king-addons-member-media' => 'max-width: {{SIZE}}{{UNIT}};',
805 + ],
806 + ]
807 + );
808 +
809 + $this->add_group_control(
810 + Group_Control_Image_Size::get_type(),
811 + [
812 + 'name' => 'image_size',
813 + 'default' => 'full',
814 + 'separator' => 'before',
815 + ]
816 + );
817 +
818 + $this->add_group_control(
819 + Group_Control_Border::get_type(),
820 + [
821 + 'name' => 'image_border',
822 + 'label' => esc_html__('Border', 'king-addons'),
823 + 'default' => 'solid',
824 + 'fields_options' => [
825 + 'color' => [
826 + 'default' => '#E8E8E8',
827 + ],
828 + 'width' => [
829 + 'default' => [
830 + 'top' => '1',
831 + 'right' => '1',
832 + 'bottom' => '1',
833 + 'left' => '1',
834 + 'isLinked' => true,
835 + ],
836 + ],
837 + ],
838 + 'selector' => '{{WRAPPER}} .king-addons-member-media',
839 + 'separator' => 'before',
840 + ]
841 + );
842 +
843 + $this->add_control(
844 + 'image_border_radius',
845 + [
846 + 'label' => esc_html__('Border Radius', 'king-addons'),
847 + 'type' => Controls_Manager::DIMENSIONS,
848 + 'size_units' => ['px', '%'],
849 + 'selectors' => [
850 + '{{WRAPPER}} .king-addons-member-media' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
851 + ],
852 + 'separator' => 'before',
853 + ]
854 + );
855 +
856 + $this->add_group_control(
857 + Group_Control_Css_Filter::get_type(),
858 + [
859 + 'name' => 'kng_image_css_filters',
860 + 'label' => esc_html__('CSS Filters', 'king-addons'),
861 + 'selector' => '{{WRAPPER}} .king-addons-member-media img',
862 + 'separator' => 'before',
863 + ]
864 + );
865 +
866 + $this->add_group_control(
867 + Group_Control_Css_Filter::get_type(),
868 + [
869 + 'name' => 'kng_image_css_filters_hover',
870 + 'label' => esc_html__('CSS Filters on Hover', 'king-addons'),
871 + 'selector' => '{{WRAPPER}} .king-addons-member-media:hover img',
872 + ]
873 + );
874 +
875 + $this->end_controls_section();
876 +
877 + $this->start_controls_section(
878 + 'section_style_content',
879 + [
880 + 'label' => KING_ADDONS_ELEMENTOR_ICON . esc_html__('Content', 'king-addons'),
881 + 'tab' => Controls_Manager::TAB_STYLE,
882 + ]
883 + );
884 +
885 + $this->add_group_control(
886 + Group_Control_Background::get_type(),
887 + [
888 + 'name' => 'content_bg_color',
889 + 'types' => ['classic', 'gradient'],
890 + 'selector' => '{{WRAPPER}} .king-addons-member-content'
891 + ]
892 + );
893 +
894 + $this->add_responsive_control(
895 + 'content_padding',
896 + [
897 + 'label' => esc_html__('Padding', 'king-addons'),
898 + 'type' => Controls_Manager::DIMENSIONS,
899 + 'default' => [
900 + 'top' => 20,
901 + 'right' => 15,
902 + 'bottom' => 50,
903 + 'left' => 15,
904 + ],
905 + 'size_units' => ['px'],
906 + 'selectors' => [
907 + '{{WRAPPER}} .king-addons-member-content' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
908 + ],
909 + 'separator' => 'before',
910 + ]
911 + );
912 +
913 + $this->add_control(
914 + 'name_section',
915 + [
916 + 'label' => esc_html__('Name', 'king-addons'),
917 + 'type' => Controls_Manager::HEADING,
918 + 'separator' => 'before',
919 + ]
920 + );
921 +
922 + $this->add_control(
923 + 'name_color',
924 + [
925 + 'label' => esc_html__('Color', 'king-addons'),
926 + 'type' => Controls_Manager::COLOR,
927 + 'default' => '#222222',
928 + 'selectors' => [
929 + '{{WRAPPER}} .king-addons-member-name' => 'color: {{VALUE}};',
930 + ],
931 + ]
932 + );
933 +
934 + $this->add_group_control(
935 + Group_Control_Typography::get_type(),
936 + [
937 + 'name' => 'name_typography',
938 + 'selector' => '{{WRAPPER}} .king-addons-member-name',
939 + ]
940 + );
941 +
942 + $this->add_responsive_control(
943 + 'name_distance',
944 + [
945 + 'label' => esc_html__('Distance', 'king-addons'),
946 + 'type' => Controls_Manager::SLIDER,
947 + 'size_units' => ['px'],
948 + 'range' => [
949 + 'px' => [
950 + 'min' => 0,
951 + 'max' => 50,
952 + ],
953 + ],
954 + 'default' => [
955 + 'unit' => 'px',
956 + 'size' => 8,
957 + ],
958 + 'selectors' => [
959 + '{{WRAPPER}} .king-addons-member-name' => 'margin: 0 0 {{SIZE}}{{UNIT}};',
960 + ],
961 + ]
962 + );
963 +
964 + $this->add_control(
965 + 'name_align',
966 + [
967 + 'label' => esc_html__('Alignment', 'king-addons'),
968 + 'type' => Controls_Manager::CHOOSE,
969 + 'label_block' => false,
970 + 'default' => 'center',
971 + 'options' => [
972 + 'left' => [
973 + 'title' => esc_html__('Left', 'king-addons'),
974 + 'icon' => 'eicon-text-align-left',
975 + ],
976 + 'center' => [
977 + 'title' => esc_html__('Center', 'king-addons'),
978 + 'icon' => 'eicon-text-align-center',
979 + ],
980 + 'right' => [
981 + 'title' => esc_html__('Right', 'king-addons'),
982 + 'icon' => 'eicon-text-align-right',
983 + ],
984 + ],
985 + 'selectors' => [
986 + '{{WRAPPER}} .king-addons-member-name' => 'text-align: {{VALUE}};',
987 + ],
988 + ]
989 + );
990 +
991 + $this->add_control(
992 + 'job_section',
993 + [
994 + 'label' => esc_html__('Job', 'king-addons'),
995 + 'type' => Controls_Manager::HEADING,
996 + 'separator' => 'before',
997 + ]
998 + );
999 +
1000 + $this->add_control(
1001 + 'job_color',
1002 + [
1003 + 'label' => esc_html__('Color', 'king-addons'),
1004 + 'type' => Controls_Manager::COLOR,
1005 + 'default' => '#9e9e9e',
1006 + 'selectors' => [
1007 + '{{WRAPPER}} .king-addons-member-job' => 'color: {{VALUE}};',
1008 + ],
1009 + ]
1010 + );
1011 +
1012 + $this->add_group_control(
1013 + Group_Control_Typography::get_type(),
1014 + [
1015 + 'name' => 'job_typography',
1016 + 'selector' => '{{WRAPPER}} .king-addons-member-job',
1017 + ]
1018 + );
1019 +
1020 + $this->add_responsive_control(
1021 + 'job_distance',
1022 + [
1023 + 'label' => esc_html__('Distance', 'king-addons'),
1024 + 'type' => Controls_Manager::SLIDER,
1025 + 'size_units' => ['px'],
1026 + 'range' => [
1027 + 'px' => [
1028 + 'min' => 0,
1029 + 'max' => 50,
1030 + ],
1031 + ],
1032 + 'default' => [
1033 + 'unit' => 'px',
1034 + 'size' => 10,
1035 + ],
1036 + 'selectors' => [
1037 + '{{WRAPPER}} .king-addons-member-job' => 'margin: 0 0 {{SIZE}}{{UNIT}};',
1038 + ],
1039 + ]
1040 + );
1041 +
1042 + $this->add_control(
1043 + 'job_align',
1044 + [
1045 + 'label' => esc_html__('Alignment', 'king-addons'),
1046 + 'type' => Controls_Manager::CHOOSE,
1047 + 'label_block' => false,
1048 + 'default' => 'center',
1049 + 'options' => [
1050 + 'left' => [
1051 + 'title' => esc_html__('Left', 'king-addons'),
1052 + 'icon' => 'eicon-text-align-left',
1053 + ],
1054 + 'center' => [
1055 + 'title' => esc_html__('Center', 'king-addons'),
1056 + 'icon' => 'eicon-text-align-center',
1057 + ],
1058 + 'right' => [
1059 + 'title' => esc_html__('Right', 'king-addons'),
1060 + 'icon' => 'eicon-text-align-right',
1061 + ],
1062 + ],
1063 + 'selectors' => [
1064 + '{{WRAPPER}} .king-addons-member-job' => 'text-align: {{VALUE}};',
1065 + ],
1066 + ]
1067 + );
1068 +
1069 + $this->add_control(
1070 + 'description_section',
1071 + [
1072 + 'label' => esc_html__('Description', 'king-addons'),
1073 + 'type' => Controls_Manager::HEADING,
1074 + 'separator' => 'before',
1075 + ]
1076 + );
1077 +
1078 + $this->add_control(
1079 + 'description_color',
1080 + [
1081 + 'label' => esc_html__('Color', 'king-addons'),
1082 + 'type' => Controls_Manager::COLOR,
1083 + 'default' => '#545454',
1084 + 'selectors' => [
1085 + '{{WRAPPER}} .king-addons-member-description' => 'color: {{VALUE}};',
1086 + ],
1087 + ]
1088 + );
1089 +
1090 + $this->add_group_control(
1091 + Group_Control_Typography::get_type(),
1092 + [
1093 + 'name' => 'description_typography',
1094 + 'selector' => '{{WRAPPER}} .king-addons-member-description',
1095 + ]
1096 + );
1097 +
1098 + $this->add_responsive_control(
1099 + 'description_distance',
1100 + [
1101 + 'label' => esc_html__('Distance', 'king-addons'),
1102 + 'type' => Controls_Manager::SLIDER,
1103 + 'size_units' => ['px'],
1104 + 'range' => [
1105 + 'px' => [
1106 + 'min' => 0,
1107 + 'max' => 50,
1108 + ],
1109 + ],
1110 + 'default' => [
1111 + 'unit' => 'px',
1112 + 'size' => 18,
1113 + ],
1114 + 'selectors' => [
1115 + '{{WRAPPER}} .king-addons-member-description' => 'margin-bottom: {{SIZE}}{{UNIT}};',
1116 + ],
1117 + ]
1118 + );
1119 +
1120 + $this->add_control(
1121 + 'description_align',
1122 + [
1123 + 'label' => esc_html__('Alignment', 'king-addons'),
1124 + 'type' => Controls_Manager::CHOOSE,
1125 + 'label_block' => false,
1126 + 'default' => 'center',
1127 + 'options' => [
1128 + 'left' => [
1129 + 'title' => esc_html__('Left', 'king-addons'),
1130 + 'icon' => 'eicon-text-align-left',
1131 + ],
1132 + 'center' => [
1133 + 'title' => esc_html__('Center', 'king-addons'),
1134 + 'icon' => 'eicon-text-align-center',
1135 + ],
1136 + 'right' => [
1137 + 'title' => esc_html__('Right', 'king-addons'),
1138 + 'icon' => 'eicon-text-align-right',
1139 + ],
1140 + ],
1141 + 'selectors' => [
1142 + '{{WRAPPER}} .king-addons-member-description' => 'text-align: {{VALUE}};',
1143 + ],
1144 + ]
1145 + );
1146 +
1147 + $this->add_control(
1148 + 'divider_section',
1149 + [
1150 + 'label' => esc_html__('Divider', 'king-addons'),
1151 + 'type' => Controls_Manager::HEADING,
1152 + 'separator' => 'before',
1153 + 'condition' => [
1154 + 'member_divider' => 'yes',
1155 + ],
1156 + ]
1157 + );
1158 +
1159 + $this->add_control(
1160 + 'divider_color',
1161 + [
1162 + 'label' => esc_html__('Color', 'king-addons'),
1163 + 'type' => Controls_Manager::COLOR,
1164 + 'default' => '#d1d1d1',
1165 + 'selectors' => [
1166 + '{{WRAPPER}} .king-addons-member-divider:after' => 'border-bottom-color: {{VALUE}};',
1167 + ],
1168 + 'condition' => [
1169 + 'member_divider' => 'yes',
1170 + ],
1171 + ]
1172 + );
1173 +
1174 + $this->add_control(
1175 + 'divider_type',
1176 + [
1177 + 'label' => esc_html__('Style', 'king-addons'),
1178 + 'type' => Controls_Manager::SELECT,
1179 + 'options' => [
1180 + 'solid' => esc_html__('Solid', 'king-addons'),
1181 + 'double' => esc_html__('Double', 'king-addons'),
1182 + 'dotted' => esc_html__('Dotted', 'king-addons'),
1183 + 'dashed' => esc_html__('Dashed', 'king-addons'),
1184 + 'groove' => esc_html__('Groove', 'king-addons'),
1185 + ],
1186 + 'default' => 'solid',
1187 + 'selectors' => [
1188 + '{{WRAPPER}} .king-addons-member-divider:after' => 'border-bottom-style: {{VALUE}};',
1189 + ],
1190 + 'condition' => [
1191 + 'member_divider' => 'yes',
1192 + ],
1193 + ]
1194 + );
1195 +
1196 + $this->add_control(
1197 + 'divider_weight',
1198 + [
1199 + 'label' => esc_html__('Weight', 'king-addons'),
1200 + 'type' => Controls_Manager::SLIDER,
1201 + 'size_units' => ['px'],
1202 + 'range' => [
1203 + 'px' => [
1204 + 'min' => 1,
1205 + 'max' => 10,
1206 + ],
1207 + ],
1208 + 'default' => [
1209 + 'size' => 1,
1210 + ],
1211 + 'selectors' => [
1212 + '{{WRAPPER}} .king-addons-member-divider:after' => 'border-bottom-width: {{SIZE}}{{UNIT}};',
1213 + ],
1214 + 'condition' => [
1215 + 'member_divider' => 'yes',
1216 + ],
1217 + ]
1218 + );
1219 +
1220 + $this->add_control(
1221 + 'divider_width',
1222 + [
1223 + 'label' => esc_html__('Width', 'king-addons'),
1224 + 'type' => Controls_Manager::SLIDER,
1225 + 'size_units' => ['%', 'px'],
1226 + 'range' => [
1227 + 'px' => [
1228 + 'min' => 1,
1229 + 'max' => 100,
1230 + ],
1231 + '%' => [
1232 + 'min' => 1,
1233 + 'max' => 100,
1234 + ],
1235 + ],
1236 + 'default' => [
1237 + 'unit' => 'px',
1238 + 'size' => 30,
1239 + ],
1240 + 'selectors' => [
1241 + '{{WRAPPER}} .king-addons-member-divider:after' => 'max-width: {{SIZE}}{{UNIT}};',
1242 + ],
1243 + 'condition' => [
1244 + 'member_divider' => 'yes',
1245 + ],
1246 + ]
1247 + );
1248 +
1249 + $this->add_responsive_control(
1250 + 'divider_distance',
1251 + [
1252 + 'label' => esc_html__('Distance', 'king-addons'),
1253 + 'type' => Controls_Manager::SLIDER,
1254 + 'size_units' => ['px'],
1255 + 'range' => [
1256 + 'px' => [
1257 + 'min' => 0,
1258 + 'max' => 50,
1259 + ],
1260 + ],
1261 + 'default' => [
1262 + 'unit' => 'px',
1263 + 'size' => 10,
1264 + ],
1265 + 'selectors' => [
1266 + '{{WRAPPER}} .king-addons-member-divider:after' => 'margin-bottom: {{SIZE}}{{UNIT}};',
1267 + ],
1268 + 'condition' => [
1269 + 'member_divider' => 'yes',
1270 + ],
1271 + ]
1272 + );
1273 +
1274 + $this->add_control(
1275 + 'divider_align',
1276 + [
1277 + 'label' => esc_html__('Alignment', 'king-addons'),
1278 + 'type' => Controls_Manager::CHOOSE,
1279 + 'label_block' => false,
1280 + 'default' => 'center',
1281 + 'options' => [
1282 + 'left' => [
1283 + 'title' => esc_html__('Left', 'king-addons'),
1284 + 'icon' => 'eicon-text-align-left',
1285 + ],
1286 + 'center' => [
1287 + 'title' => esc_html__('Center', 'king-addons'),
1288 + 'icon' => 'eicon-text-align-center',
1289 + ],
1290 + 'right' => [
1291 + 'title' => esc_html__('Right', 'king-addons'),
1292 + 'icon' => 'eicon-text-align-right',
1293 + ],
1294 + ],
1295 + 'prefix_class' => 'king-addons-team-member-divider-',
1296 + 'condition' => [
1297 + 'member_divider' => 'yes',
1298 + ],
1299 + ]
1300 + );
1301 +
1302 + $this->end_controls_section();
1303 +
1304 + $this->start_controls_section(
1305 + 'tm_section_style_social_media',
1306 + [
1307 + 'label' => KING_ADDONS_ELEMENTOR_ICON . esc_html__('Social Media', 'king-addons'),
1308 + 'tab' => Controls_Manager::TAB_STYLE,
1309 + 'show_label' => false,
1310 + 'condition' => [
1311 + 'social_media' => 'yes',
1312 + ],
1313 + ]
1314 + );
1315 +
1316 + $this->start_controls_tabs('tabs_social_style');
1317 +
1318 + $this->start_controls_tab(
1319 + 'tab_social_normal',
1320 + [
1321 + 'label' => esc_html__('Normal', 'king-addons'),
1322 + ]
1323 + );
1324 +
1325 + $this->add_control(
1326 + 'social_color',
1327 + [
1328 + 'label' => esc_html__('Color', 'king-addons'),
1329 + 'type' => Controls_Manager::COLOR,
1330 + 'default' => '#5B03FF',
1331 + 'selectors' => [
1332 + '{{WRAPPER}} .king-addons-member-social' => 'color: {{VALUE}}',
1333 + '{{WRAPPER}} .king-addons-member-social svg' => 'fill: {{VALUE}}'
1334 + ],
1335 + ]
1336 + );
1337 +
1338 + $this->add_control(
1339 + 'social_bg_color',
1340 + [
1341 + 'label' => esc_html__('Background Color', 'king-addons'),
1342 + 'type' => Controls_Manager::COLOR,
1343 + 'selectors' => [
1344 + '{{WRAPPER}} .king-addons-member-social' => 'background-color: {{VALUE}}',
1345 + ],
1346 + ]
1347 + );
1348 +
1349 + $this->add_control(
1350 + 'social_border_color',
1351 + [
1352 + 'label' => esc_html__('Border Color', 'king-addons'),
1353 + 'type' => Controls_Manager::COLOR,
1354 + 'default' => '#5B03FF',
1355 + 'selectors' => [
1356 + '{{WRAPPER}} .king-addons-member-social' => 'border-color: {{VALUE}}',
1357 + ],
1358 + ]
1359 + );
1360 +
1361 + $this->end_controls_tab();
1362 +
1363 + $this->start_controls_tab(
1364 + 'tab_social_hover',
1365 + [
1366 + 'label' => esc_html__('Hover', 'king-addons'),
1367 + ]
1368 + );
1369 +
1370 + $this->add_control(
1371 + 'social_hover_color',
1372 + [
1373 + 'label' => esc_html__('Color', 'king-addons'),
1374 + 'type' => Controls_Manager::COLOR,
1375 + 'default' => '#000000',
1376 + 'selectors' => [
1377 + '{{WRAPPER}} .king-addons-member-social:hover' => 'color: {{VALUE}}',
1378 + '{{WRAPPER}} .king-addons-member-social:hover svg' => 'fill: {{VALUE}}'
1379 + ],
1380 + ]
1381 + );
1382 +
1383 + $this->add_control(
1384 + 'social_hover_bg_color',
1385 + [
1386 + 'label' => esc_html__('Background Color', 'king-addons'),
1387 + 'type' => Controls_Manager::COLOR,
1388 + 'selectors' => [
1389 + '{{WRAPPER}} .king-addons-member-social:hover' => 'background-color: {{VALUE}}',
1390 + ],
1391 + ]
1392 + );
1393 +
1394 + $this->add_control(
1395 + 'social_hover_border_color',
1396 + [
1397 + 'label' => esc_html__('Border Color', 'king-addons'),
1398 + 'type' => Controls_Manager::COLOR,
1399 + 'default' => '#000000',
1400 + 'selectors' => [
1401 + '{{WRAPPER}} .king-addons-member-social:hover' => 'border-color: {{VALUE}}',
1402 + ],
1403 + ]
1404 + );
1405 +
1406 + $this->end_controls_tab();
1407 +
1408 + $this->end_controls_tabs();
1409 +
1410 + $this->add_control(
1411 + 'social_trans_divider',
1412 + [
1413 + 'type' => Controls_Manager::DIVIDER,
1414 + 'style' => 'thick',
1415 + ]
1416 + );
1417 +
1418 + $this->add_control(
1419 + 'social_transition_duration',
1420 + [
1421 + 'label' => esc_html__('Transition Duration (ms)', 'king-addons'),
1422 + 'type' => Controls_Manager::NUMBER,
1423 + 'default' => 300,
1424 + 'min' => 0,
1425 + 'step' => 50,
1426 + 'selectors' => [
1427 + '{{WRAPPER}} .king-addons-member-social' => 'transition-duration: {{VALUE}}ms',
1428 + ],
1429 + ]
1430 + );
1431 +
1432 + $this->add_responsive_control(
1433 + 'social_size',
1434 + [
1435 + 'label' => esc_html__('Font Size', 'king-addons'),
1436 + 'type' => Controls_Manager::SLIDER,
1437 + 'size_units' => ['px'],
1438 + 'range' => [
1439 + 'px' => [
1440 + 'min' => 0,
1441 + 'max' => 200,
1442 + ],
1443 + ],
1444 + 'default' => [
1445 + 'unit' => 'px',
1446 + 'size' => 17,
1447 + ],
1448 + 'selectors' => [
1449 + '{{WRAPPER}} .king-addons-member-social' => 'font-size: {{SIZE}}{{UNIT}};',
1450 + '{{WRAPPER}} .king-addons-member-social svg' => 'width: {{SIZE}}{{UNIT}}; height: {{SIZE}}{{UNIT}};'
1451 + ],
1452 + 'separator' => 'before',
1453 + ]
1454 + );
1455 +
1456 + $this->add_responsive_control(
1457 + 'social_box_size',
1458 + [
1459 + 'label' => esc_html__('Box Size', 'king-addons'),
1460 + 'type' => Controls_Manager::SLIDER,
1461 + 'size_units' => ['px'],
1462 + 'range' => [
1463 + 'px' => [
1464 + 'min' => 0,
1465 + 'max' => 200,
1466 + ],
1467 + ],
1468 + 'default' => [
1469 + 'unit' => 'px',
1470 + 'size' => 37,
1471 + ],
1472 + 'selectors' => [
1473 + '{{WRAPPER}} .king-addons-member-social' => 'width: {{SIZE}}{{UNIT}}; height: {{SIZE}}{{UNIT}};',
1474 + '{{WRAPPER}} .king-addons-member-social i' => 'line-height: {{SIZE}}{{UNIT}};',
1475 + '{{WRAPPER}} .king-addons-member-social svg' => 'line-height: {{SIZE}}{{UNIT}};',
1476 + ],
1477 + ]
1478 + );
1479 +
1480 + $this->add_responsive_control(
1481 + 'social_gutter',
1482 + [
1483 + 'label' => esc_html__('Gutter', 'king-addons'),
1484 + 'type' => Controls_Manager::SLIDER,
1485 + 'size_units' => ['px'],
1486 + 'range' => [
1487 + 'px' => [
1488 + 'min' => 0,
1489 + 'max' => 25,
1490 + ],
1491 + ],
1492 + 'default' => [
1493 + 'unit' => 'px',
1494 + 'size' => 5,
1495 + ],
1496 + 'selectors' => [
1497 + '{{WRAPPER}} .king-addons-member-social' => 'margin-right: {{SIZE}}{{UNIT}};',
1498 + ],
1499 + ]
1500 + );
1501 +
1502 + $this->add_responsive_control(
1503 + 'social_distance',
1504 + [
1505 + 'label' => esc_html__('Distance', 'king-addons'),
1506 + 'type' => Controls_Manager::SLIDER,
1507 + 'size_units' => ['px'],
1508 + 'range' => [
1509 + 'px' => [
1510 + 'min' => 0,
1511 + 'max' => 50,
1512 + ],
1513 + ],
1514 + 'default' => [
1515 + 'unit' => 'px',
1516 + 'size' => 20,
1517 + ],
1518 + 'selectors' => [
1519 + '{{WRAPPER}} .king-addons-member-social-media' => 'margin-bottom: {{SIZE}}{{UNIT}};',
1520 + ],
1521 + ]
1522 + );
1523 +
1524 + $this->add_control(
1525 + 'social_align',
1526 + [
1527 + 'label' => esc_html__('Alignment', 'king-addons'),
1528 + 'type' => Controls_Manager::CHOOSE,
1529 + 'label_block' => false,
1530 + 'default' => 'center',
1531 + 'options' => [
1532 + 'left' => [
1533 + 'title' => esc_html__('Left', 'king-addons'),
1534 + 'icon' => 'eicon-text-align-left',
1535 + ],
1536 + 'center' => [
1537 + 'title' => esc_html__('Center', 'king-addons'),
1538 + 'icon' => 'eicon-text-align-center',
1539 + ],
1540 + 'right' => [
1541 + 'title' => esc_html__('Right', 'king-addons'),
1542 + 'icon' => 'eicon-text-align-right',
1543 + ],
1544 + ],
1545 + 'prefix_class' => 'king-addons-team-member-social-media-',
1546 + 'separator' => 'before',
1547 + ]
1548 + );
1549 +
1550 + $this->add_control(
1551 + 'social_border_type',
1552 + [
1553 + 'label' => esc_html__('Border Type', 'king-addons'),
1554 + 'type' => Controls_Manager::SELECT,
1555 + 'options' => [
1556 + 'none' => esc_html__('None', 'king-addons'),
1557 + 'solid' => esc_html__('Solid', 'king-addons'),
1558 + 'double' => esc_html__('Double', 'king-addons'),
1559 + 'dotted' => esc_html__('Dotted', 'king-addons'),
1560 + 'dashed' => esc_html__('Dashed', 'king-addons'),
1561 + 'groove' => esc_html__('Groove', 'king-addons'),
1562 + ],
1563 + 'default' => 'solid',
1564 + 'selectors' => [
1565 + '{{WRAPPER}} .king-addons-member-social' => 'border-style: {{VALUE}};',
1566 + ],
1567 + 'separator' => 'before',
1568 + ]
1569 + );
1570 +
1571 + $this->add_responsive_control(
1572 + 'social_border_width',
1573 + [
1574 + 'label' => esc_html__('Border Width', 'king-addons'),
1575 + 'type' => Controls_Manager::DIMENSIONS,
1576 + 'size_units' => ['px'],
1577 + 'default' => [
1578 + 'top' => 2,
1579 + 'right' => 2,
1580 + 'bottom' => 2,
1581 + 'left' => 2,
1582 + ],
1583 + 'selectors' => [
1584 + '{{WRAPPER}} .king-addons-member-social' => 'border-width: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
1585 + ],
1586 + 'condition' => [
1587 + 'social_border_type!' => 'none',
1588 + ],
1589 + ]
1590 + );
1591 +
1592 + $this->add_responsive_control(
1593 + 'social_border_radius',
1594 + [
1595 + 'label' => esc_html__('Border Radius', 'king-addons'),
1596 + 'type' => Controls_Manager::DIMENSIONS,
1597 + 'size_units' => ['px', '%'],
1598 + 'default' => [
1599 + 'top' => 50,
1600 + 'right' => 50,
1601 + 'bottom' => 50,
1602 + 'left' => 50,
1603 + ],
1604 + 'selectors' => [
1605 + '{{WRAPPER}} .king-addons-member-social' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
1606 + ],
1607 + 'separator' => 'before',
1608 + ]
1609 + );
1610 +
1611 + $this->add_control(
1612 + 'testimonial_style_social_divider',
1613 + [
1614 + 'type' => Controls_Manager::DIVIDER,
1615 + 'style' => 'thick',
1616 + ]
1617 + );
1618 +
1619 + $this->add_group_control(
1620 + Group_Control_Box_Shadow::get_type(),
1621 + [
1622 + 'name' => 'social_box_shadow',
1623 + 'selector' => '{{WRAPPER}} .king-addons-member-social',
1624 + ]
1625 + );
1626 +
1627 + $this->end_controls_section();
1628 +
1629 + $this->start_controls_section(
1630 + 'tm_section_style_btn',
1631 + [
1632 + 'label' => KING_ADDONS_ELEMENTOR_ICON . esc_html__('Button', 'king-addons'),
1633 + 'tab' => Controls_Manager::TAB_STYLE,
1634 + 'condition' => [
1635 + 'member_btn' => 'yes',
1636 + ],
1637 + ]
1638 + );
1639 +
1640 + $this->start_controls_tabs('tabs_btn_style');
1641 +
1642 + $this->start_controls_tab(
1643 + 'tab_btn_normal',
1644 + [
1645 + 'label' => esc_html__('Normal', 'king-addons'),
1646 + ]
1647 + );
1648 +
1649 + $this->add_control(
1650 + 'btn_color',
1651 + [
1652 + 'label' => esc_html__('Color', 'king-addons'),
1653 + 'type' => Controls_Manager::COLOR,
1654 + 'default' => '#ffffff',
1655 + 'selectors' => [
1656 + '{{WRAPPER}} .king-addons-member-btn' => 'color: {{VALUE}}',
1657 + ],
1658 + ]
1659 + );
1660 +
1661 + $this->add_control(
1662 + 'btn_bg_color',
1663 + [
1664 + 'label' => esc_html__('Background Color', 'king-addons'),
1665 + 'type' => Controls_Manager::COLOR,
1666 + 'default' => '#5B03FF',
1667 + 'selectors' => [
1668 + '{{WRAPPER}} .king-addons-member-btn' => 'background-color: {{VALUE}}',
1669 + ],
1670 + ]
1671 + );
1672 +
1673 + $this->add_control(
1674 + 'btn_border_color',
1675 + [
1676 + 'label' => esc_html__('Border Color', 'king-addons'),
1677 + 'type' => Controls_Manager::COLOR,
1678 + 'default' => '#5B03FF',
1679 + 'selectors' => [
1680 + '{{WRAPPER}} .king-addons-member-btn' => 'border-color: {{VALUE}}',
1681 + ],
1682 + ]
1683 + );
1684 +
1685 + $this->add_group_control(
1686 + Group_Control_Box_Shadow::get_type(),
1687 + [
1688 + 'name' => 'btn_box_shadow',
1689 + 'selector' => '{{WRAPPER}} .king-addons-member-btn',
1690 + ]
1691 + );
1692 +
1693 + $this->end_controls_tab();
1694 +
1695 + $this->start_controls_tab(
1696 + 'tab_btn_hover',
1697 + [
1698 + 'label' => esc_html__('Hover', 'king-addons'),
1699 + ]
1700 + );
1701 +
1702 + $this->add_control(
1703 + 'btn_hover_color',
1704 + [
1705 + 'label' => esc_html__('Color', 'king-addons'),
1706 + 'type' => Controls_Manager::COLOR,
1707 + 'default' => '#ffffff',
1708 + 'selectors' => [
1709 + '{{WRAPPER}} .king-addons-member-btn:hover' => 'color: {{VALUE}}',
1710 + ],
1711 + ]
1712 + );
1713 +
1714 + $this->add_control(
1715 + 'btn_hover_bg_color',
1716 + [
1717 + 'label' => esc_html__('Background Color', 'king-addons'),
1718 + 'type' => Controls_Manager::COLOR,
1719 + 'default' => '#000000',
1720 + 'selectors' => [
1721 + '{{WRAPPER}} .king-addons-member-btn.king-addons-button-none:hover' => 'background-color: {{VALUE}}',
1722 + '{{WRAPPER}} .king-addons-member-btn:before' => 'background-color: {{VALUE}}',
1723 + '{{WRAPPER}} .king-addons-member-btn:after' => 'background-color: {{VALUE}}',
1724 + ],
1725 + ]
1726 + );
1727 +
1728 + $this->add_control(
1729 + 'btn_hover_border_color',
1730 + [
1731 + 'label' => esc_html__('Border Color', 'king-addons'),
1732 + 'type' => Controls_Manager::COLOR,
1733 + 'default' => '#000000',
1734 + 'selectors' => [
1735 + '{{WRAPPER}} .king-addons-member-btn:hover' => 'border-color: {{VALUE}}',
1736 + ],
1737 + ]
1738 + );
1739 +
1740 + $this->add_group_control(
1741 + Group_Control_Box_Shadow::get_type(),
1742 + [
1743 + 'name' => 'btn_hover_box_shadow',
1744 + 'selector' => '{{WRAPPER}} .king-addons-member-btn:hover',
1745 + ]
1746 + );
1747 +
1748 + $this->end_controls_tab();
1749 +
1750 + $this->end_controls_tabs();
1751 +
1752 + $this->add_control(
1753 + 'btn_section_anim_divider',
1754 + [
1755 + 'type' => Controls_Manager::DIVIDER,
1756 + 'style' => 'thick',
1757 + ]
1758 + );
1759 +
1760 + $this->add_control(
1761 + 'btn_animation',
1762 + [
1763 + 'label' => esc_html__('Select Animation', 'king-addons'),
1764 + 'type' => 'king-addons-button-animations',
1765 + 'default' => 'king-addons-button-sweep-to-top',
1766 + ]
1767 + );
1768 +
1769 + $this->add_control(
1770 + 'btn_transition_duration',
1771 + [
1772 + 'label' => esc_html__('Transition Duration (ms)', 'king-addons'),
1773 + 'type' => Controls_Manager::NUMBER,
1774 + 'default' => 300,
1775 + 'min' => 0,
1776 + 'step' => 50,
1777 + 'selectors' => [
1778 + '{{WRAPPER}} .king-addons-member-btn' => 'transition-duration: {{VALUE}}ms',
1779 + '{{WRAPPER}} .king-addons-member-btn:before' => 'transition-duration: {{VALUE}}ms',
1780 + '{{WRAPPER}} .king-addons-member-btn:after' => 'transition-duration: {{VALUE}}ms',
1781 + ],
1782 + ]
1783 + );
1784 +
1785 + $this->add_control(
1786 + 'btn_animation_height',
1787 + [
1788 + 'label' => esc_html__('Animation Height', 'king-addons'),
1789 + 'type' => Controls_Manager::SLIDER,
1790 + 'range' => [
1791 + '%' => [
1792 + 'min' => 0,
1793 + 'max' => 100,
1794 + ],
1795 + 'px' => [
1796 + 'min' => 0,
1797 + 'max' => 30,
1798 + ],
1799 + ],
1800 + 'size_units' => ['%', 'px'],
1801 + 'default' => [
1802 + 'unit' => 'px',
1803 + 'size' => 3,
1804 + ],
1805 + 'selectors' => [
1806 + '{{WRAPPER}} [class*="king-addons-button-underline"]:before' => 'height: {{SIZE}}{{UNIT}};',
1807 + '{{WRAPPER}} [class*="king-addons-button-overline"]:before' => 'height: {{SIZE}}{{UNIT}};',
1808 + ],
1809 + 'render_type' => 'template',
1810 + 'condition' => [
1811 + 'btn_animation' => [
1812 + 'king-addons-button-underline-from-left',
1813 + 'king-addons-button-underline-from-center',
1814 + 'king-addons-button-underline-from-right',
1815 + 'king-addons-button-underline-reveal',
1816 + 'king-addons-button-overline-reveal',
1817 + 'king-addons-button-overline-from-left',
1818 + 'king-addons-button-overline-from-center',
1819 + 'king-addons-button-overline-from-right'
1820 + ]
1821 + ],
1822 + ]
1823 + );
1824 +
1825 + if (!king_addons_freemius()->can_use_premium_code__premium_only()) {
1826 + $this->add_control(
1827 + 'team_member_pro_notice_2',
1828 + [
1829 + 'type' => Controls_Manager::RAW_HTML,
1830 + 'raw' => 'Advanced button animations are available in the <strong><a href="https://kingaddons.com/pricing/?utm_source=kng-module-team-member-settings-upgrade-pro&utm_medium=plugin&utm_campaign=kng" target="_blank">Pro version</a></strong>',
1831 + 'content_classes' => 'king-addons-pro-notice',
1832 + ]
1833 + );
1834 + }
1835 +
1836 + $this->add_control(
1837 + 'btn_typography_divider',
1838 + [
1839 + 'type' => Controls_Manager::DIVIDER,
1840 + 'style' => 'thick',
1841 + ]
1842 + );
1843 +
1844 + $this->add_group_control(
1845 + Group_Control_Typography::get_type(),
1846 + [
1847 + 'name' => 'btn_typography',
1848 + 'selector' => '{{WRAPPER}} .king-addons-member-btn',
1849 + 'separator' => 'before',
1850 + ]
1851 + );
1852 +
1853 + $this->add_control(
1854 + 'btn_align',
1855 + [
1856 + 'label' => esc_html__('Alignment', 'king-addons'),
1857 + 'type' => Controls_Manager::CHOOSE,
1858 + 'label_block' => false,
1859 + 'default' => 'center',
1860 + 'options' => [
1861 + 'left' => [
1862 + 'title' => esc_html__('Left', 'king-addons'),
1863 + 'icon' => 'eicon-text-align-left',
1864 + ],
1865 + 'center' => [
1866 + 'title' => esc_html__('Center', 'king-addons'),
1867 + 'icon' => 'eicon-text-align-center',
1868 + ],
1869 + 'right' => [
1870 + 'title' => esc_html__('Right', 'king-addons'),
1871 + 'icon' => 'eicon-text-align-right',
1872 + ],
1873 + ],
1874 + 'selectors' => [
1875 + '{{WRAPPER}} .king-addons-member-btn-wrap' => 'text-align: {{VALUE}};',
1876 + ],
1877 + 'separator' => 'before',
1878 + ]
1879 + );
1880 +
1881 + $this->add_responsive_control(
1882 + 'btn_padding',
1883 + [
1884 + 'label' => esc_html__('Padding', 'king-addons'),
1885 + 'type' => Controls_Manager::DIMENSIONS,
1886 + 'size_units' => ['px',],
1887 + 'default' => [
1888 + 'top' => 8,
1889 + 'right' => 35,
1890 + 'bottom' => 8,
1891 + 'left' => 35,
1892 + ],
1893 + 'selectors' => [
1894 + '{{WRAPPER}} .king-addons-member-btn' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
1895 + ],
1896 + 'separator' => 'before',
1897 + ]
1898 + );
1899 +
1900 + $this->add_control(
1901 + 'btn_border_type',
1902 + [
1903 + 'label' => esc_html__('Border Type', 'king-addons'),
1904 + 'type' => Controls_Manager::SELECT,
1905 + 'options' => [
1906 + 'none' => esc_html__('None', 'king-addons'),
1907 + 'solid' => esc_html__('Solid', 'king-addons'),
1908 + 'double' => esc_html__('Double', 'king-addons'),
1909 + 'dotted' => esc_html__('Dotted', 'king-addons'),
1910 + 'dashed' => esc_html__('Dashed', 'king-addons'),
1911 + 'groove' => esc_html__('Groove', 'king-addons'),
1912 + ],
1913 + 'default' => 'none',
1914 + 'selectors' => [
1915 + '{{WRAPPER}} .king-addons-member-btn' => 'border-style: {{VALUE}};',
1916 + ],
1917 + 'separator' => 'before',
1918 + ]
1919 + );
1920 +
1921 + $this->add_responsive_control(
1922 + 'btn_border_width',
1923 + [
1924 + 'label' => esc_html__('Border Width', 'king-addons'),
1925 + 'type' => Controls_Manager::DIMENSIONS,
1926 + 'size_units' => ['px'],
1927 + 'default' => [
1928 + 'top' => 1,
1929 + 'right' => 1,
1930 + 'bottom' => 1,
1931 + 'left' => 1,
1932 + ],
1933 + 'selectors' => [
1934 + '{{WRAPPER}} .king-addons-member-btn' => 'border-width: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
1935 + ],
1936 + 'condition' => [
1937 + 'btn_border_type!' => 'none',
1938 + ],
1939 + ]
1940 + );
1941 +
1942 + $this->add_responsive_control(
1943 + 'btn_border_radius',
1944 + [
1945 + 'label' => esc_html__('Border Radius', 'king-addons'),
1946 + 'type' => Controls_Manager::DIMENSIONS,
1947 + 'size_units' => ['px', '%'],
1948 + 'default' => [
1949 + 'top' => 2,
1950 + 'right' => 2,
1951 + 'bottom' => 2,
1952 + 'left' => 2,
1953 + ],
1954 + 'selectors' => [
1955 + '{{WRAPPER}} .king-addons-member-btn' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
1956 + ],
1957 + 'separator' => 'before',
1958 + ]
1959 + );
1960 +
1961 + $this->end_controls_section();
1962 +
1963 + $this->add_section_style_overlay();
1964 + }
1965 +
1966 + protected function team_member_social_media()
1967 + {
1968 + $settings = Core::displaySettings($this);
1969 +
1970 + // Define which icon slots to loop over
1971 + $icon_indexes = [1, 2, 3, 4, 5];
1972 +
1973 + // Check if at least one icon has a value
1974 + $has_icon = false;
1975 + foreach ($icon_indexes as $index) {
1976 + if (!empty($settings["social_icon_$index"]['value'])) {
1977 + $has_icon = true;
1978 + break;
1979 + }
1980 + }
1981 +
1982 + if ($has_icon) {
1983 + // Set up attributes once
1984 + $this->add_render_attribute('social_attribute', 'class', 'king-addons-member-social');
1985 +
1986 + if (!empty($settings['social_media_is_external'])) {
1987 + $this->add_render_attribute('social_attribute', 'target', '_blank');
1988 + }
1989 +
1990 + if (!empty($settings['social_media_nofollow'])) {
1991 + $this->add_render_attribute('social_attribute', 'nofollow', '');
1992 + }
1993 +
1994 + echo '<div class="king-addons-member-social-media">';
1995 + // Loop and render each social icon (and link) that is not empty
1996 + foreach ($icon_indexes as $index) {
1997 + if (!empty($settings["social_icon_$index"]['value'])) {
1998 + echo '<a href="' . esc_url($settings["social_url_$index"]['url']) . '" ' .
1999 + $this->get_render_attribute_string('social_attribute') . '>';
2000 + Icons_Manager::render_icon($settings["social_icon_$index"], ['aria-hidden' => 'true']);
2001 + echo '</a>';
2002 + }
2003 + }
2004 + echo '</div>';
2005 + }
2006 + }
2007 +
2008 + protected function team_member_button()
2009 + {
2010 + $settings = Core::displaySettings($this);
2011 +
2012 + if ('' !== $settings['member_btn_text']) {
2013 + $this->add_render_attribute(
2014 + 'btn_attribute',
2015 + 'class',
2016 + 'king-addons-member-btn king-addons-button-effect ' . sanitize_html_class((string) ($settings['btn_animation'] ?? ''))
2017 + );
2018 + $this->add_render_attribute('btn_attribute', 'href', esc_url($settings['member_btn_url']['url']));
2019 +
2020 + if (!empty($settings['member_btn_url']['is_external'])) {
2021 + $this->add_render_attribute('btn_attribute', 'target', '_blank');
2022 + }
2023 +
2024 + if (!empty($settings['member_btn_url']['nofollow'])) {
2025 + $this->add_render_attribute('btn_attribute', 'nofollow', '');
2026 + }
2027 +
2028 + echo '<div class="king-addons-member-btn-wrap">';
2029 + echo '<a ' . $this->get_render_attribute_string('btn_attribute') . '>';
2030 + echo '<span>' . esc_html($settings['member_btn_text']) . '</span>';
2031 + echo '</a>';
2032 + echo '</div>';
2033 + }
2034 + }
2035 +
2036 + protected function team_member_content()
2037 + {
2038 + $settings = Core::displaySettings($this);
2039 +
2040 + /** @noinspection DuplicatedCode */
2041 + if (
2042 + ('' !== $settings['member_name'] && 'below' === $settings['member_name_location']) ||
2043 + ('' !== $settings['member_job'] && 'below' === $settings['member_job_location']) ||
2044 + ('' !== $settings['member_description'] && 'below' === $settings['member_description_location']) ||
2045 + ('yes' === $settings['social_media'] && 'below' === $settings['member_social_media_location']) ||
2046 + ('yes' === $settings['member_btn'] && 'below' === $settings['member_btn_location'])
2047 + ) : ?>
2048 +
2049 + <div class="king-addons-member-content">
2050 + <?php
2051 + // Member name
2052 + if ('' !== $settings['member_name'] && 'below' === $settings['member_name_location']) {
2053 + $tags_whitelist = ['h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'div', 'span', 'p'];
2054 + $member_name_tag = Core::validateHTMLTags($settings['member_name_tag'], 'h3', $tags_whitelist);
2055 +
2056 + echo '<' . esc_attr($member_name_tag) . ' class="king-addons-member-name">';
2057 + echo wp_kses_post($settings['member_name']);
2058 + echo '</' . esc_attr($member_name_tag) . '>';
2059 + }
2060 + ?>
2061 +
2062 + <?php if (
2063 + 'yes' === $settings['member_divider'] &&
2064 + 'below' === $settings['member_divider_location'] &&
2065 + 'before_job' === $settings['member_divider_position']
2066 + ) : ?>
2067 + <div class="king-addons-member-divider"></div>
2068 + <?php endif; ?>
2069 +
2070 + <?php if ('' !== $settings['member_job'] && 'below' === $settings['member_job_location']) : ?>
2071 + <div class="king-addons-member-job"><?php echo esc_html($settings['member_job']); ?></div>
2072 + <?php endif; ?>
2073 +
2074 + <?php if (
2075 + 'yes' === $settings['member_divider'] &&
2076 + 'below' === $settings['member_divider_location'] &&
2077 + 'after_job' === $settings['member_divider_position']
2078 + ) : ?>
2079 + <div class="king-addons-member-divider"></div>
2080 + <?php endif; ?>
2081 +
2082 + <?php if ('' !== $settings['member_description'] && 'below' === $settings['member_description_location']) : ?>
2083 + <div class="king-addons-member-description"><?php echo wp_kses_post($settings['member_description']); ?></div>
2084 + <?php endif; ?>
2085 +
2086 + <?php
2087 + // Social Media
2088 + if ('yes' === $settings['social_media'] && 'below' === $settings['member_social_media_location']) {
2089 + $this->team_member_social_media();
2090 + }
2091 +
2092 + // Button
2093 + if ('yes' === $settings['member_btn'] && 'below' === $settings['member_btn_location']) {
2094 + $this->team_member_button();
2095 + }
2096 + ?>
2097 + </div>
2098 + <?php
2099 + endif;
2100 + }
2101 +
2102 + protected function team_member_overlay()
2103 + {
2104 + $settings = Core::displaySettings($this);
2105 +
2106 + /** @noinspection DuplicatedCode */
2107 + if (
2108 + ('' !== $settings['member_name'] && 'over' === $settings['member_name_location']) ||
2109 + ('' !== $settings['member_job'] && 'over' === $settings['member_job_location']) ||
2110 + ('' !== $settings['member_description'] && 'over' === $settings['member_description_location']) ||
2111 + ('yes' === $settings['social_media'] && 'over' === $settings['member_social_media_location']) ||
2112 + ('yes' === $settings['member_btn'] && 'over' === $settings['member_btn_location'])
2113 + ) {
2114 + // Add base classes
2115 + $this->add_render_attribute('overlay_container', 'class', 'king-addons-member-overlay-wrap king-addons-cv-container');
2116 + $this->add_render_attribute('overlay_outer', 'class', 'king-addons-cv-outer');
2117 +
2118 + // Overlay animation classes
2119 + if ('none' !== $settings['overlay_animation']) {
2120 + $this->add_render_attribute('overlay_container', 'class', 'king-addons-team-member-animation king-addons-animation-wrap');
2121 + $this->add_render_attribute(
2122 + 'overlay_outer',
2123 + 'class',
2124 + 'king-addons-anim-transparency king-addons-anim-size-' . $settings['overlay_anim_size'] . ' king-addons-overlay-' . $settings['overlay_animation']
2125 + );
2126 + }
2127 + ?>
2128 + <div <?php echo $this->get_render_attribute_string('overlay_container'); ?>>
2129 + <div <?php echo $this->get_render_attribute_string('overlay_outer'); ?>>
2130 + <div class="king-addons-cv-inner">
2131 + <div class="king-addons-member-overlay"></div>
2132 + <div class="king-addons-member-overlay-content">
2133 + <?php
2134 + // Member Name
2135 + if ('' !== $settings['member_name'] && 'over' === $settings['member_name_location']) {
2136 + echo '<' . esc_attr($settings['member_name_tag']) . ' class="king-addons-member-name">' .
2137 + esc_html($settings['member_name']) .
2138 + '</' . esc_attr($settings['member_name_tag']) . '>';
2139 + }
2140 +
2141 + // Divider before Job
2142 + if ('yes' === $settings['member_divider'] && 'over' === $settings['member_divider_location'] && 'before_job' === $settings['member_divider_position']) {
2143 + echo '<div class="king-addons-member-divider"></div>';
2144 + }
2145 +
2146 + // Member Job
2147 + if ('' !== $settings['member_job'] && 'over' === $settings['member_job_location']) {
2148 + echo '<div class="king-addons-member-job">' . esc_html($settings['member_job']) . '</div>';
2149 + }
2150 +
2151 + // Divider after Job
2152 + if ('yes' === $settings['member_divider'] && 'over' === $settings['member_divider_location'] && 'after_job' === $settings['member_divider_position']) {
2153 + echo '<div class="king-addons-member-divider"></div>';
2154 + }
2155 +
2156 + // Member Description
2157 + if ('' !== $settings['member_description'] && 'over' === $settings['member_description_location']) {
2158 + echo '<div class="king-addons-member-description">' . esc_html($settings['member_description']) . '</div>';
2159 + }
2160 +
2161 + // Social Media
2162 + if ('yes' === $settings['social_media'] && 'over' === $settings['member_social_media_location']) {
2163 + $this->team_member_social_media();
2164 + }
2165 +
2166 + // Button
2167 + if ('yes' === $settings['member_btn'] && 'over' === $settings['member_btn_location']) {
2168 + $this->team_member_button();
2169 + }
2170 + ?>
2171 + </div>
2172 + </div>
2173 + </div>
2174 + </div>
2175 + <?php
2176 + }
2177 + }
2178 +
2179 + protected function render()
2180 + {
2181 + $settings = Core::displaySettings($this); ?>
2182 +
2183 + <div class="king-addons-team-member">
2184 + <?php if (!empty($settings['member_image']['url'])) : ?>
2185 + <?php
2186 + $image_src = Group_Control_Image_Size::get_attachment_image_src(
2187 + $settings['member_image']['id'],
2188 + 'image_size',
2189 + $settings
2190 + );
2191 +
2192 + if (!$image_src) {
2193 + $image_src = $settings['member_image']['url'];
2194 + }
2195 + ?>
2196 + <div class="king-addons-member-media">
2197 + <div class="king-addons-member-image">
2198 + <img src="<?php echo esc_url($image_src); ?>"
2199 + alt="<?php echo esc_attr($settings['member_name']); ?>">
2200 + </div>
2201 + <?php $this->team_member_overlay(); ?>
2202 + </div>
2203 + <?php endif; ?>
2204 +
2205 + <?php $this->team_member_content(); ?>
2206 + </div>
2207 + <?php
2208 + }
2209 +}