PluginProbe ʕ •ᴥ•ʔ
Essential Addons for Elementor – Popular Elementor Templates & Widgets / 5.8.7
Essential Addons for Elementor – Popular Elementor Templates & Widgets v5.8.7
6.6.5 6.6.4 6.6.3 5.7.3 5.7.4 5.8.0 5.8.1 5.8.10 5.8.11 5.8.12 5.8.13 5.8.14 5.8.15 5.8.16 5.8.18 5.8.2 5.8.3 5.8.4 5.8.5 5.8.6 5.8.7 5.8.8 5.8.9 5.9.0 5.9.1 5.9.10 5.9.11 5.9.12 5.9.13 5.9.14 5.9.15 5.9.16 5.9.17 5.9.18 5.9.19 5.9.2 5.9.20 5.9.21 5.9.22 5.9.23 5.9.24 5.9.25 5.9.26 5.9.27 5.9.3 5.9.4 5.9.5 5.9.6 5.9.7 5.9.8 5.9.9 6.0.0 6.0.1 6.0.10 6.0.11 6.0.12 6.0.13 6.0.14 6.0.15 6.0.2 6.0.3 6.0.4 6.0.5 6.0.6 6.0.7 6.0.8 6.0.9 6.1.0 6.1.1 6.1.10 6.1.11 trunk 6.1.12 1.0.0 6.1.13 1.0.1 6.1.14 1.1.0 6.1.15 2.0 6.1.17 2.1 6.1.18 2.10.0 6.1.19 2.10.1 6.1.2 2.10.2 6.1.20 2.10.3 6.1.3 2.10.4 6.1.4 2.10.5 6.1.5 2.2.0 6.1.6 2.2.1 6.1.7 2.2.2 6.1.8 2.2.3 6.1.9 2.2.4 6.2.0 2.2.5 6.2.1 2.3.0 6.2.2 2.3.1 6.2.3 2.4.0 6.2.4 2.4.1 6.3.0 2.4.2 6.3.1 2.4.3 6.3.2 2.5.0 6.3.3 2.6.0 6.4.0 2.7.0 6.5.0 2.7.1 6.5.1 2.7.10 6.5.10 2.7.11 6.5.11 2.7.2 6.5.12 2.7.3 6.5.13 2.7.4 6.5.2 2.7.5 6.5.3 2.7.6 6.5.4 2.7.7 6.5.5 2.7.8 6.5.6 2.7.9 6.5.7 2.8.0 6.5.8 2.8.1 6.5.9 2.8.2 6.6.0 2.8.3 6.6.1 2.8.4 6.6.2 2.8.5 2.8.6 2.8.7 2.9.0 2.9.1 2.9.2 2.9.3 2.9.4 2.9.5 2.9.6 2.9.7 2.9.8 2.9.9 3.0.0 3.0.1 3.0.2 3.0.3 3.0.4 3.0.5 3.1.0 3.1.1 3.1.2 3.1.3 3.1.4 3.1.4.1 3.1.5 3.2.0 3.3.0 3.3.1 3.3.2 3.3.3 3.4.0 3.5.0 3.5.1 3.5.2 3.6.0 3.6.1 3.6.2 3.7.0 3.7.1 3.7.2 3.8.0 3.8.1 3.8.2 3.8.3 3.8.4 3.8.5 3.9.0 3.9.1 3.9.2 3.9.3 3.9.4 4.0.0 4.0.1 4.0.2 4.0.3 4.0.4 4.1.0 4.1.1 4.1.2 4.2.0 4.2.1 4.2.2 4.2.3 4.2.4 4.3.0 4.3.1 4.3.2 4.3.3 4.3.4 4.3.5 4.3.6 4.3.7 4.3.8 4.3.9 4.4.0 4.4.1 4.5.0 4.5.1 4.5.2 4.5.3 4.5.4 4.5.5 4.6.0 4.6.1 4.6.2 4.6.3 4.6.4 4.6.5 4.6.6 4.7.0 4.7.1 4.7.2 4.7.3 4.7.4 4.7.5 4.8.0 4.8.1 4.8.2 4.8.3 4.8.4 4.9.0 4.9.1 4.9.2 4.9.3 4.9.4 4.9.5 4.9.6 4.9.7 5.0.0 5.0.1 5.0.10 5.0.11 5.0.12 5.0.13 5.0.2 5.0.3 5.0.4 5.0.5 5.0.6 5.0.7 5.0.8 5.0.9 5.1.0 5.1.1 5.1.2 5.1.3 5.1.4 5.1.5 5.1.6 5.1.7 5.1.8 5.1.9 5.2.0 5.2.1 5.2.2 5.2.3 5.2.4 5.3.0 5.3.1 5.3.2 5.4.6 5.5.5 5.6.5 5.7.2
essential-addons-for-elementor-lite / includes / Elements / Team_Member.php
essential-addons-for-elementor-lite / includes / Elements Last commit date
Adv_Accordion.php 2 years ago Adv_Tabs.php 2 years ago Advanced_Data_Table.php 2 years ago Better_Payment.php 4 years ago Betterdocs_Category_Box.php 2 years ago Betterdocs_Category_Grid.php 2 years ago Betterdocs_Search_Form.php 2 years ago Business_Reviews.php 2 years ago Caldera_Forms.php 2 years ago Career_Page.php 4 years ago Contact_Form_7.php 2 years ago Content_Ticker.php 2 years ago Countdown.php 2 years ago Creative_Button.php 2 years ago Crowdfundly_All_Campaign.php 4 years ago Crowdfundly_Organization.php 4 years ago Crowdfundly_Single_Campaign.php 4 years ago Cta_Box.php 2 years ago Data_Table.php 2 years ago Dual_Color_Header.php 2 years ago EmbedPress.php 4 years ago Event_Calendar.php 2 years ago Facebook_Feed.php 2 years ago Fancy_Text.php 2 years ago Feature_List.php 2 years ago Filterable_Gallery.php 2 years ago Flip_Box.php 2 years ago FluentForm.php 2 years ago Formstack.php 2 years ago GravityForms.php 2 years ago Image_Accordion.php 2 years ago Info_Box.php 2 years ago Interactive_Circle.php 2 years ago Login_Register.php 2 years ago NFT_Gallery.php 2 years ago NinjaForms.php 2 years ago Post_Grid.php 2 years ago Post_Timeline.php 2 years ago Pricing_Table.php 2 years ago Product_Grid.php 2 years ago Progress_Bar.php 2 years ago SVG_Draw.php 3 years ago Simple_Menu.php 2 years ago Sticky_Video.php 2 years ago Team_Member.php 2 years ago Testimonial.php 2 years ago Tooltip.php 2 years ago Twitter_Feed.php 2 years ago TypeForm.php 2 years ago WeForms.php 2 years ago Woo_Cart.php 2 years ago Woo_Checkout.php 2 years ago Woo_Product_Carousel.php 2 years ago Woo_Product_Compare.php 4 years ago Woo_Product_Gallery.php 2 years ago Woocommerce_Review.php 4 years ago WpForms.php 2 years ago index.php 3 years ago
Team_Member.php
971 lines
1 <?php
2 namespace Essential_Addons_Elementor\Elements;
3
4 // If this file is called directly, abort.
5 if (!defined('ABSPATH')) {
6 exit;
7 }
8
9 use \Elementor\Controls_Manager;
10 use \Elementor\Group_Control_Border;
11 use \Elementor\Group_Control_Image_Size;
12 use \Elementor\Group_Control_Typography;
13 use \Elementor\Group_Control_Background;
14 use Elementor\Repeater;
15 use \Elementor\Utils;
16 use \Elementor\Widget_Base;
17
18 use \Essential_Addons_Elementor\Classes\Helper as HelperClass;
19 class Team_Member extends Widget_Base {
20
21 public function get_name() {
22 return 'eael-team-member';
23 }
24
25 public function get_title() {
26 return esc_html__( 'Team Member', 'essential-addons-for-elementor-lite');
27 }
28
29 public function get_icon() {
30 return 'eaicon-team-mamber';
31 }
32
33 public function get_categories() {
34 return [ 'essential-addons-elementor' ];
35 }
36
37 public function get_keywords()
38 {
39 return [
40 'team',
41 'member',
42 'team member',
43 'ea team member',
44 'ea team members',
45 'person',
46 'card',
47 'meet the team',
48 'team builder',
49 'our team',
50 'ea',
51 'essential addons'
52 ];
53 }
54
55 public function get_custom_help_url()
56 {
57 return 'https://essential-addons.com/elementor/docs/team-members/';
58 }
59
60 protected function register_controls() {
61
62
63 $this->start_controls_section(
64 'eael_section_team_member_image',
65 [
66 'label' => esc_html__( 'Team Member Image', 'essential-addons-for-elementor-lite')
67 ]
68 );
69
70
71 $this->add_control(
72 'eael_team_member_image',
73 [
74 'label' => __( 'Team Member Avatar', 'essential-addons-for-elementor-lite'),
75 'type' => Controls_Manager::MEDIA,
76 'default' => [
77 'url' => Utils::get_placeholder_image_src(),
78 ],
79 'ai' => [
80 'active' => false,
81 ],
82 ]
83 );
84
85
86 $this->add_group_control(
87 Group_Control_Image_Size::get_type(),
88 [
89 'name' => 'thumbnail',
90 'default' => 'full',
91 'condition' => [
92 'eael_team_member_image[url]!' => '',
93 ],
94 ]
95 );
96
97
98 $this->end_controls_section();
99
100 $this->start_controls_section(
101 'eael_section_team_member_content',
102 [
103 'label' => esc_html__( 'Team Member Content', 'essential-addons-for-elementor-lite')
104 ]
105 );
106
107
108 $this->add_control(
109 'eael_team_member_name',
110 [
111 'label' => esc_html__( 'Name', 'essential-addons-for-elementor-lite'),
112 'type' => Controls_Manager::TEXT,
113 'dynamic' => [
114 'active' => true,
115 ],
116 'default' => esc_html__( 'John Doe', 'essential-addons-for-elementor-lite'),
117 'ai' => [
118 'active' => false,
119 ],
120 ]
121 );
122
123 $this->add_control(
124 'eael_team_member_job_title',
125 [
126 'label' => esc_html__( 'Job Position', 'essential-addons-for-elementor-lite'),
127 'type' => Controls_Manager::TEXT,
128 'dynamic' => [
129 'active' => true,
130 ],
131 'default' => esc_html__( 'Software Engineer', 'essential-addons-for-elementor-lite'),
132 'ai' => [
133 'active' => false,
134 ],
135 ]
136 );
137
138 $this->add_control(
139 'eael_team_member_description',
140 [
141 'label' => esc_html__( 'Description', 'essential-addons-for-elementor-lite'),
142 'type' => Controls_Manager::TEXTAREA,
143 'dynamic' => [
144 'active' => true,
145 ],
146 'default' => esc_html__( 'Add team member description here. Remove the text if not necessary.', 'essential-addons-for-elementor-lite'),
147 ]
148 );
149
150
151 $this->end_controls_section();
152
153
154 $this->start_controls_section(
155 'eael_section_team_member_social_profiles',
156 [
157 'label' => esc_html__( 'Social Profiles', 'essential-addons-for-elementor-lite')
158 ]
159 );
160
161 $this->add_control(
162 'eael_team_member_enable_social_profiles',
163 [
164 'label' => esc_html__( 'Display Social Profiles?', 'essential-addons-for-elementor-lite'),
165 'type' => Controls_Manager::SWITCHER,
166 'default' => 'yes',
167 ]
168 );
169
170 $repeater = new Repeater();
171
172 $repeater->add_control(
173 'social_new',
174 [
175 'label' => esc_html__( 'Icon', 'essential-addons-for-elementor-lite'),
176 'type' => Controls_Manager::ICONS,
177 'fa4compatibility' => 'social',
178 'default' => [
179 'value' => 'fab fa-wordpress',
180 'library' => 'fa-brands',
181 ],
182 ]
183 );
184
185 $repeater->add_control(
186 'link',
187 [
188 'name' => 'link',
189 'label' => esc_html__( 'Link', 'essential-addons-for-elementor-lite'),
190 'type' => Controls_Manager::URL,
191 'dynamic' => ['active' => true],
192 'label_block' => true,
193 'default' => [
194 'url' => '',
195 'is_external' => 'true',
196 ],
197 'placeholder' => esc_html__( 'Place URL here', 'essential-addons-for-elementor-lite'),
198 ]
199 );
200
201 $this->add_control(
202 'eael_team_member_social_profile_links',
203 [
204 'type' => Controls_Manager::REPEATER,
205 'condition' => [
206 'eael_team_member_enable_social_profiles!' => '',
207 ],
208 'default' => [
209 [
210 'social_new' => [
211 'value' => 'fab fa-facebook',
212 'library' => 'fa-brands'
213 ]
214 ],
215 [
216 'social_new' => [
217 'value' => 'fab fa-twitter',
218 'library' => 'fa-brands'
219 ]
220 ],
221 [
222 'social_new' => [
223 'value' => 'fab fa-google-plus',
224 'library' => 'fa-brands'
225 ]
226 ],
227 [
228 'social_new' => [
229 'value' => 'fab fa-linkedin',
230 'library' => 'fa-brands'
231 ]
232 ],
233 ],
234 'fields' => $repeater->get_controls(),
235 'title_field' => '<i class="{{ social_new.value }}"></i>',
236 ]
237 );
238
239 $this->end_controls_section();
240
241
242 if(!apply_filters('eael/pro_enabled', false)) {
243 $this->start_controls_section(
244 'eael_section_pro',
245 [
246 'label' => __( 'Go Premium for More Features', 'essential-addons-for-elementor-lite')
247 ]
248 );
249
250 $this->add_control(
251 'eael_control_get_pro',
252 [
253 'label' => __( 'Unlock more possibilities', 'essential-addons-for-elementor-lite'),
254 'type' => Controls_Manager::CHOOSE,
255 'options' => [
256 '1' => [
257 'title' => '',
258 'icon' => 'fa fa-unlock-alt',
259 ],
260 ],
261 'default' => '1',
262 'description' => '<span class="pro-feature"> Get the <a href="https://wpdeveloper.com/upgrade/ea-pro" target="_blank">Pro version</a> for more stunning elements and customization options.</span>'
263 ]
264 );
265
266 $this->end_controls_section();
267 }
268
269 $this->start_controls_section(
270 'eael_section_team_members_styles_general',
271 [
272 'label' => esc_html__( 'Team Member Styles', 'essential-addons-for-elementor-lite'),
273 'tab' => Controls_Manager::TAB_STYLE
274 ]
275 );
276
277 $team_member_style_presets_options = apply_filters('eael_team_member_style_presets_options', [
278 'eael-team-members-simple' => esc_html__( 'Simple Style', 'essential-addons-for-elementor-lite' ),
279 'eael-team-members-overlay' => esc_html__( 'Overlay Style', 'essential-addons-for-elementor-lite' ),
280 'eael-team-members-centered' => esc_html__( 'Centered Style', 'essential-addons-for-elementor-lite' ),
281 'eael-team-members-circle' => esc_html__( 'Circle Style', 'essential-addons-for-elementor-lite' ),
282 'eael-team-members-social-bottom' => esc_html__( 'Social on Bottom', 'essential-addons-for-elementor-lite' ),
283 'eael-team-members-social-right' => esc_html__( 'Social on Right', 'essential-addons-for-elementor-lite' ),
284 ]);
285
286 $this->add_control(
287 'eael_team_members_preset',
288 [
289 'label' => esc_html__( 'Style Preset', 'essential-addons-for-elementor-lite'),
290 'type' => Controls_Manager::SELECT,
291 'default' => 'eael-team-members-simple',
292 'options' => $team_member_style_presets_options
293 ]
294 );
295
296 $team_member_style_presets_condition = apply_filters('eael_team_member_style_presets_condition', [
297 'eael-team-members-centered',
298 'eael-team-members-circle',
299 'eael-team-members-social-bottom',
300 'eael-team-members-social-right'
301 ]);
302
303 $this->add_control(
304 'eael_team_members_preset_pro_alert',
305 [
306 'label' => esc_html__( 'Only available in pro version!', 'essential-addons-for-elementor-lite'),
307 'type' => Controls_Manager::HEADING,
308 'condition' => [
309 'eael_team_members_preset' => $team_member_style_presets_condition
310 ]
311 ]
312 );
313
314 $this->add_control(
315 'content_card_style',
316 [
317 'label' => __( 'Content Card', 'essential-addons-for-elementor-lite'),
318 'type' => Controls_Manager::HEADING,
319 'separator' => 'before'
320 ]
321 );
322
323
324 $this->add_control(
325 'content_card_height',
326 [
327 'label' => esc_html__( 'Height', 'essential-addons-for-elementor-lite'),
328 'type' => Controls_Manager::SLIDER,
329 'size_units' => [ 'px', 'em' ],
330 'range' => [
331 'px' => [
332 'min' => 0,
333 'max' => 500,
334 ],
335 'em' => [
336 'min' => 0,
337 'max' => 200
338 ]
339 ],
340 'default' => [
341 'unit' => 'px',
342 'size' => 'auto'
343 ],
344 'selectors' => [
345 '{{WRAPPER}} .eael-team-item .eael-team-content' => 'min-height: {{SIZE}}{{UNIT}};',
346 ],
347 ]
348 );
349
350 $this->add_control(
351 'eael_team_members_enable_text_overlay',
352 [
353 'label' => esc_html__( 'Enable Description Overlay', 'essential-addons-for-elementor-lite'),
354 'type' => Controls_Manager::SWITCHER,
355 'default' => 'no',
356 'return_value' => 'yes',
357 'condition' => [
358 'eael_team_members_preset' => 'eael-team-members-simple'
359 ]
360 ]
361 );
362
363 $this->add_control(
364 'eael_team_members_overlay_background',
365 [
366 'label' => esc_html__( 'Overlay Color', 'essential-addons-for-elementor-lite'),
367 'type' => Controls_Manager::COLOR,
368 'default' => 'rgba(255,255,255,0.8)',
369 'selectors' => [
370 '{{WRAPPER}} .eael-team-members-overlay .eael-team-content' => 'background-color: {{VALUE}};',
371 '{{WRAPPER}} .eael-team-image .eael-team-text-overlay' => 'background-color: {{VALUE}};',
372 ],
373 'conditions' => [
374 'relation' => 'or',
375 'terms' => [
376 [
377 'name' => 'eael_team_members_preset',
378 'operator' => '=',
379 'value' => 'eael-team-members-overlay'
380 ],
381 [
382 'name' => 'eael_team_members_enable_text_overlay',
383 'operator' => '=',
384 'value' => 'yes'
385 ]
386 ]
387 ],
388 ]
389 );
390
391 $this->add_control(
392 'eael_team_members_background',
393 [
394 'label' => esc_html__( 'Content Background Color', 'essential-addons-for-elementor-lite'),
395 'type' => Controls_Manager::COLOR,
396 'default' => '',
397 'selectors' => [
398 '{{WRAPPER}} .eael-team-item .eael-team-content' => 'background-color: {{VALUE}};',
399 '{{WRAPPER}} .eael-team-item .eael-team-image .eael-team-text-overlay' => 'background-color: {{VALUE}};',
400 ],
401 ]
402 );
403
404 $this->add_control(
405 'eael_team_members_alignment',
406 [
407 'label' => esc_html__( 'Set Alignment', 'essential-addons-for-elementor-lite'),
408 'type' => Controls_Manager::CHOOSE,
409 'label_block' => true,
410 'options' => [
411 'default' => [
412 'title' => __( 'Default', 'essential-addons-for-elementor-lite'),
413 'icon' => 'fa fa-ban',
414 ],
415 'left' => [
416 'title' => esc_html__( 'Left', 'essential-addons-for-elementor-lite'),
417 'icon' => 'eicon-text-align-left',
418 ],
419 'centered' => [
420 'title' => esc_html__( 'Center', 'essential-addons-for-elementor-lite'),
421 'icon' => 'eicon-text-align-center',
422 ],
423 'right' => [
424 'title' => esc_html__( 'Right', 'essential-addons-for-elementor-lite'),
425 'icon' => 'eicon-text-align-right',
426 ],
427 ],
428 'default' => 'eael-team-align-default',
429 'prefix_class' => 'eael-team-align-',
430 ]
431 );
432
433 $this->add_responsive_control(
434 'eael_team_members_padding',
435 [
436 'label' => esc_html__( 'Content Padding', 'essential-addons-for-elementor-lite'),
437 'type' => Controls_Manager::DIMENSIONS,
438 'size_units' => [ 'px', '%', 'em' ],
439 'selectors' => [
440 '{{WRAPPER}} .eael-team-item .eael-team-content' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
441 ],
442 ]
443 );
444
445 $this->add_group_control(
446 Group_Control_Border::get_type(),
447 [
448 'name' => 'eael_team_members_border',
449 'label' => esc_html__( 'Border', 'essential-addons-for-elementor-lite'),
450 'selector' => '{{WRAPPER}} .eael-team-item',
451 ]
452 );
453
454 $this->add_control(
455 'eael_team_members_border_radius',
456 [
457 'label' => esc_html__( 'Border Radius', 'essential-addons-for-elementor-lite'),
458 'type' => Controls_Manager::DIMENSIONS,
459 'selectors' => [
460 '{{WRAPPER}} .eael-team-item' => 'border-radius: {{TOP}}px {{RIGHT}}px {{BOTTOM}}px {{LEFT}}px;',
461 ],
462 ]
463 );
464
465 $this->end_controls_section();
466
467
468 $this->start_controls_section(
469 'eael_section_team_members_image_styles',
470 [
471 'label' => esc_html__( 'Team Member Image Style', 'essential-addons-for-elementor-lite'),
472 'tab' => Controls_Manager::TAB_STYLE
473 ]
474 );
475
476 $this->add_responsive_control(
477 'eael_team_members_image_width',
478 [
479 'label' => esc_html__( 'Image Width', 'essential-addons-for-elementor-lite'),
480 'type' => Controls_Manager::SLIDER,
481 'default' => [
482 'size' => 100,
483 'unit' => '%',
484 ],
485 'range' => [
486 '%' => [
487 'min' => 0,
488 'max' => 100,
489 ],
490 'px' => [
491 'min' => 0,
492 'max' => 1000,
493 ],
494 ],
495 'size_units' => [ '%', 'px' ],
496 'selectors' => [
497 '{{WRAPPER}} .eael-team-item figure img' => 'width:{{SIZE}}{{UNIT}};',
498 ],
499 'condition' => [
500 'eael_team_members_preset!' => 'eael-team-members-circle'
501 ]
502 ]
503 );
504
505 do_action('eael/team_member_circle_controls', $this);
506
507
508 $this->add_responsive_control(
509 'eael_team_members_image_margin',
510 [
511 'label' => esc_html__( 'Margin', 'essential-addons-for-elementor-lite'),
512 'type' => Controls_Manager::DIMENSIONS,
513 'size_units' => [ 'px', '%' ],
514 'selectors' => [
515 '{{WRAPPER}} .eael-team-item figure img' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
516 ],
517 ]
518 );
519
520 $this->add_responsive_control(
521 'eael_team_members_image_padding',
522 [
523 'label' => esc_html__( 'Padding', 'essential-addons-for-elementor-lite'),
524 'type' => Controls_Manager::DIMENSIONS,
525 'size_units' => [ 'px', '%', 'em' ],
526 'selectors' => [
527 '{{WRAPPER}} .eael-team-item figure img' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
528 ],
529 ]
530 );
531
532
533 $this->add_group_control(
534 Group_Control_Border::get_type(),
535 [
536 'name' => 'eael_team_members_image_border',
537 'label' => esc_html__( 'Border', 'essential-addons-for-elementor-lite'),
538 'selector' => '{{WRAPPER}} .eael-team-item figure img',
539 ]
540 );
541
542 $this->add_control(
543 'eael_team_members_image_rounded',
544 [
545 'label' => esc_html__( 'Rounded Avatar?', 'essential-addons-for-elementor-lite'),
546 'type' => Controls_Manager::SWITCHER,
547 'return_value' => 'team-avatar-rounded',
548 'default' => '',
549 ]
550 );
551
552
553 $this->add_control(
554 'eael_team_members_image_border_radius',
555 [
556 'label' => esc_html__( 'Border Radius', 'essential-addons-for-elementor-lite'),
557 'type' => Controls_Manager::DIMENSIONS,
558 'selectors' => [
559 '{{WRAPPER}} .eael-team-item figure img' => 'border-radius: {{TOP}}px {{RIGHT}}px {{BOTTOM}}px {{LEFT}}px;',
560 ],
561 'condition' => [
562 'eael_team_members_image_rounded!' => 'team-avatar-rounded',
563 ],
564 ]
565 );
566
567 $this->end_controls_section();
568
569
570 $this->start_controls_section(
571 'eael_section_team_members_typography',
572 [
573 'label' => esc_html__( 'Color &amp; Typography', 'essential-addons-for-elementor-lite'),
574 'tab' => Controls_Manager::TAB_STYLE
575 ]
576 );
577
578 $this->add_control(
579 'eael_team_members_name_heading',
580 [
581 'label' => __( 'Member Name', 'essential-addons-for-elementor-lite'),
582 'type' => Controls_Manager::HEADING,
583 ]
584 );
585
586 $this->add_control(
587 'eael_team_members_name_color',
588 [
589 'label' => esc_html__( 'Member Name Color', 'essential-addons-for-elementor-lite'),
590 'type' => Controls_Manager::COLOR,
591 'default' => '#272727',
592 'selectors' => [
593 '{{WRAPPER}} .eael-team-item .eael-team-member-name' => 'color: {{VALUE}};',
594 ],
595 ]
596 );
597
598 $this->add_group_control(
599 Group_Control_Typography::get_type(),
600 [
601 'name' => 'eael_team_members_name_typography',
602 'selector' => '{{WRAPPER}} .eael-team-item .eael-team-member-name',
603 ]
604 );
605
606 $this->add_control(
607 'eael_team_members_position_heading',
608 [
609 'label' => __( 'Member Job Position', 'essential-addons-for-elementor-lite'),
610 'type' => Controls_Manager::HEADING,
611 'separator' => 'before'
612 ]
613 );
614
615 $this->add_control(
616 'eael_team_members_position_color',
617 [
618 'label' => esc_html__( 'Job Position Color', 'essential-addons-for-elementor-lite'),
619 'type' => Controls_Manager::COLOR,
620 'default' => '#272727',
621 'selectors' => [
622 '{{WRAPPER}} .eael-team-item .eael-team-member-position' => 'color: {{VALUE}};',
623 ],
624 ]
625 );
626
627 $this->add_group_control(
628 Group_Control_Typography::get_type(),
629 [
630 'name' => 'eael_team_members_position_typography',
631 'selector' => '{{WRAPPER}} .eael-team-item .eael-team-member-position',
632 ]
633 );
634
635 $this->add_control(
636 'eael_team_members_description_heading',
637 [
638 'label' => __( 'Member Description', 'essential-addons-for-elementor-lite'),
639 'type' => Controls_Manager::HEADING,
640 'separator' => 'before'
641 ]
642 );
643
644 $this->add_control(
645 'eael_team_members_description_color',
646 [
647 'label' => esc_html__( 'Description Color', 'essential-addons-for-elementor-lite'),
648 'type' => Controls_Manager::COLOR,
649 'default' => '#272727',
650 'selectors' => [
651 '{{WRAPPER}} .eael-team-item .eael-team-content .eael-team-text' => 'color: {{VALUE}};',
652 '{{WRAPPER}} .eael-team-item .eael-team-image .eael-team-text.eael-team-text-overlay' => 'color: {{VALUE}};',
653 ],
654 ]
655 );
656
657 $this->add_group_control(
658 Group_Control_Typography::get_type(),
659 [
660 'name' => 'eael_team_members_description_typography',
661 'selector' => '{{WRAPPER}} .eael-team-item .eael-team-content .eael-team-text,
662 {{WRAPPER}} .eael-team-item .eael-team-image .eael-team-text.eael-team-text-overlay',
663 ]
664 );
665
666 $this->end_controls_section();
667
668
669 $this->start_controls_section(
670 'eael_section_team_members_social_profiles_styles',
671 [
672 'label' => esc_html__( 'Social Profiles Style', 'essential-addons-for-elementor-lite'),
673 'tab' => Controls_Manager::TAB_STYLE
674 ]
675 );
676
677
678 $this->add_control(
679 'eael_team_members_social_icon_size',
680 [
681 'label' => esc_html__( 'Icon Size', 'essential-addons-for-elementor-lite'),
682 'type' => Controls_Manager::SLIDER,
683 'range' => [
684 'px' => [
685 'min' => 0,
686 'max' => 200,
687 ],
688 ],
689 'default' => [
690 'size' => 35,
691 'unit' => 'px'
692 ],
693 'selectors' => [
694 // '{{WRAPPER}} .eael-team-member-social-link > a' => 'width: {{SIZE}}px; height: {{SIZE}}px; line-height: {{SIZE}}px;',
695 '{{WRAPPER}} .eael-team-member-social-link > a i' => 'font-size: {{SIZE}}{{UNIT}};',
696 '{{WRAPPER}} .eael-team-member-social-link > a img' => 'width: {{SIZE}}px; height: {{SIZE}}px; line-height: {{SIZE}}px;',
697 '{{WRAPPER}} .eael-team-member-social-link > a svg' => 'width: {{SIZE}}px; height: {{SIZE}}px; line-height: {{SIZE}}px;',
698 ],
699 ]
700 );
701
702 $this->add_responsive_control(
703 'eael_team_members_social_profiles_padding',
704 [
705 'label' => esc_html__( 'Social Profiles Margin', 'essential-addons-for-elementor-lite'),
706 'type' => Controls_Manager::DIMENSIONS,
707 'size_units' => [ 'px', '%', 'em' ],
708 'selectors' => [
709 '{{WRAPPER}} .eael-team-content > .eael-team-member-social-profiles' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
710 '{{WRAPPER}} .eael-team-image > .eael-team-member-social-profiles' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
711 ],
712 ]
713 );
714
715 $this->add_responsive_control(
716 'eael_team_members_social_icons_padding',
717 [
718 'label' => esc_html__( 'Social Icon Padding', 'essential-addons-for-elementor-lite'),
719 'type' => Controls_Manager::DIMENSIONS,
720 'size_units' => [ 'px', '%', 'em' ],
721 'selectors' => [
722 '{{WRAPPER}} .eael-team-content > .eael-team-member-social-profiles li.eael-team-member-social-link > a' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
723 '{{WRAPPER}} .eael-team-image > .eael-team-member-social-profiles li.eael-team-member-social-link > a' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
724 ],
725 ]
726 );
727 $this->add_responsive_control(
728 'eael_team_members_social_icons_spacing',
729 [
730 'label' => esc_html__( 'Social Icon Distance', 'essential-addons-for-elementor-lite'),
731 'type' => Controls_Manager::DIMENSIONS,
732 'size_units' => [ 'px', '%', 'em' ],
733 'selectors' => [
734 '{{WRAPPER}} .eael-team-content > .eael-team-member-social-profiles li.eael-team-member-social-link' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
735 '{{WRAPPER}} .eael-team-image > .eael-team-member-social-profiles li.eael-team-member-social-link' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
736 ],
737 ]
738 );
739 $this->add_control(
740 'eael_team_members_social_icons_used_gradient_bg',
741 [
742 'label' => __( 'Use Gradient Background', 'essential-addons-for-elementor-lite' ),
743 'type' => \Elementor\Controls_Manager::SWITCHER,
744 'label_on' => __( 'Yes', 'essential-addons-for-elementor-lite' ),
745 'label_off' => __( 'No', 'essential-addons-for-elementor-lite' ),
746 'return_value' => 'yes',
747 ]
748 );
749
750
751 $this->start_controls_tabs( 'eael_team_members_social_icons_style_tabs' );
752
753 $this->start_controls_tab( 'normal', [ 'label' => esc_html__( 'Normal', 'essential-addons-for-elementor-lite') ] );
754
755 $this->add_control(
756 'eael_team_members_social_icon_color',
757 [
758 'label' => esc_html__( 'Icon Color', 'essential-addons-for-elementor-lite'),
759 'type' => Controls_Manager::COLOR,
760 'default' => '#f1ba63',
761 'selectors' => [
762 '{{WRAPPER}} .eael-team-member-social-link > a' => 'color: {{VALUE}};',
763 '{{WRAPPER}} .eael-team-member-social-link > a svg' => 'fill: {{VALUE}};',
764 ],
765 ]
766 );
767
768 $this->add_control(
769 'eael_team_members_social_icon_background',
770 [
771 'label' => esc_html__( 'Background Color', 'essential-addons-for-elementor-lite'),
772 'type' => Controls_Manager::COLOR,
773 'default' => '',
774 'selectors' => [
775 '{{WRAPPER}} .eael-team-member-social-link > a' => 'background-color: {{VALUE}};',
776 ],
777 'condition' => [
778 'eael_team_members_social_icons_used_gradient_bg' => ''
779 ]
780 ]
781 );
782 $this->add_group_control(
783 Group_Control_Background::get_type(),
784 [
785 'name' => 'eael_team_members_social_icon_gradient_background',
786 'label' => __( 'Background', 'essential-addons-for-elementor-lite' ),
787 'types' => [ 'classic', 'gradient' ],
788 'selector' => '{{WRAPPER}} .eael-team-member-social-link > a',
789 'condition' => [
790 'eael_team_members_social_icons_used_gradient_bg' => 'yes'
791 ]
792 ]
793 );
794
795
796 $this->add_group_control(
797 Group_Control_Border::get_type(),
798 [
799 'name' => 'eael_team_members_social_icon_border',
800 'selector' => '{{WRAPPER}} .eael-team-member-social-link > a',
801 ]
802 );
803
804 $this->add_control(
805 'eael_team_members_social_icon_border_radius',
806 [
807 'label' => esc_html__( 'Border Radius', 'essential-addons-for-elementor-lite'),
808 'type' => Controls_Manager::SLIDER,
809 'range' => [
810 'px' => [
811 'max' => 100,
812 ],
813 ],
814 'selectors' => [
815 '{{WRAPPER}} .eael-team-member-social-link > a' => 'border-radius: {{SIZE}}px;',
816 ],
817 ]
818 );
819
820 $this->add_group_control(
821 Group_Control_Typography::get_type(),
822 [
823 'name' => 'eael_team_members_social_icon_typography',
824 'selector' => '{{WRAPPER}} .eael-team-member-social-link > a',
825 ]
826 );
827
828
829 $this->end_controls_tab();
830
831 $this->start_controls_tab( 'eael_team_members_social_icon_hover', [ 'label' => esc_html__( 'Hover', 'essential-addons-for-elementor-lite') ] );
832
833 $this->add_control(
834 'eael_team_members_social_icon_hover_color',
835 [
836 'label' => esc_html__( 'Icon Hover Color', 'essential-addons-for-elementor-lite'),
837 'type' => Controls_Manager::COLOR,
838 'default' => '#ad8647',
839 'selectors' => [
840 '{{WRAPPER}} .eael-team-member-social-link > a:hover' => 'color: {{VALUE}};',
841 '{{WRAPPER}} .eael-team-member-social-link > a:hover svg' => 'fill: {{VALUE}};',
842 ],
843 ]
844 );
845
846 $this->add_control(
847 'eael_team_members_social_icon_hover_background',
848 [
849 'label' => esc_html__( 'Hover Background', 'essential-addons-for-elementor-lite'),
850 'type' => Controls_Manager::COLOR,
851 'default' => '',
852 'selectors' => [
853 '{{WRAPPER}} .eael-team-member-social-link > a:hover' => 'background-color: {{VALUE}};',
854 ],
855 'condition' => [
856 'eael_team_members_social_icons_used_gradient_bg' => ''
857 ]
858 ]
859 );
860 $this->add_group_control(
861 Group_Control_Background::get_type(),
862 [
863 'name' => 'eael_team_members_social_icon_hover_gradient_background',
864 'label' => __( 'Background', 'essential-addons-for-elementor-lite' ),
865 'types' => [ 'classic', 'gradient' ],
866 'selector' => '{{WRAPPER}} .eael-team-member-social-link > a:hover',
867 'condition' => [
868 'eael_team_members_social_icons_used_gradient_bg' => 'yes'
869 ]
870 ]
871 );
872
873 $this->add_control(
874 'eael_team_members_social_icon_hover_border_color',
875 [
876 'label' => esc_html__( 'Hover Border Color', 'essential-addons-for-elementor-lite'),
877 'type' => Controls_Manager::COLOR,
878 'default' => '',
879 'selectors' => [
880 '{{WRAPPER}} .eael-team-member-social-link > a:hover' => 'border-color: {{VALUE}};',
881 ],
882 ]
883 );
884
885 $this->end_controls_tab();
886
887 $this->end_controls_tabs();
888
889
890 $this->end_controls_section();
891
892
893 }
894
895 protected function render( ) {
896
897 $settings = $this->get_settings_for_display();
898 $team_member_image = $this->get_settings( 'eael_team_member_image' );
899 $team_member_image_url = Group_Control_Image_Size::get_attachment_image_src( $team_member_image['id'], 'thumbnail', $settings );
900 if( empty( $team_member_image_url ) ) : $team_member_image_url = $team_member_image['url']; else: $team_member_image_url = $team_member_image_url; endif;
901 $team_member_classes = $this->get_settings('eael_team_members_preset') . " " . $this->get_settings('eael_team_members_image_rounded');
902
903 $this->add_render_attribute( 'eael_team_text', 'class', 'eael-team-text' );
904
905 if ( isset( $settings['eael_team_members_enable_text_overlay'] ) && $settings['eael_team_members_enable_text_overlay'] == 'yes' ) {
906 $this->add_render_attribute( 'eael_team_text', 'class', 'eael-team-text-overlay' );
907 }
908
909 ?>
910
911
912 <div id="eael-team-member-<?php echo esc_attr($this->get_id()); ?>" class="eael-team-item <?php echo $team_member_classes; ?>">
913 <div class="eael-team-item-inner">
914 <div class="eael-team-image">
915 <figure>
916 <img src="<?php echo esc_url($team_member_image_url);?>" alt="<?php echo esc_attr( get_post_meta($team_member_image['id'], '_wp_attachment_image_alt', true) ); ?>">
917 </figure>
918 <?php if( 'eael-team-members-social-right' === $settings['eael_team_members_preset'] ) : ?>
919 <?php do_action( 'eael/team_member_social_right_markup', $settings, $this ); ?>
920 <?php endif; ?>
921
922 <?php
923 if ( isset( $settings['eael_team_members_enable_text_overlay'] ) && $settings['eael_team_members_enable_text_overlay'] == 'yes' ) {
924 ?>
925 <p <?php echo $this->get_render_attribute_string('eael_team_text'); ?>><?php echo HelperClass::eael_wp_kses($settings['eael_team_member_description']); ?></p>
926 <?php
927 }
928 ?>
929
930 </div>
931
932 <div class="eael-team-content">
933 <h3 class="eael-team-member-name"><?php echo HelperClass::eael_wp_kses($settings['eael_team_member_name']); ?></h3>
934 <h4 class="eael-team-member-position"><?php echo HelperClass::eael_wp_kses($settings['eael_team_member_job_title']); ?></h4>
935
936 <?php if( 'eael-team-members-social-bottom' === $settings['eael_team_members_preset'] ) : ?>
937 <?php do_action( 'eael/team_member_social_botton_markup', $settings, $this ); ?>
938 <?php else: ?>
939 <?php if ( ! empty( $settings['eael_team_member_enable_social_profiles'] ) && 'eael-team-members-social-right' !== $settings['eael_team_members_preset'] ): ?>
940 <ul class="eael-team-member-social-profiles">
941 <?php foreach ( $settings['eael_team_member_social_profile_links'] as $index => $item ) : ?>
942 <?php $icon_migrated = isset($item['__fa4_migrated']['social_new']);
943 $icon_is_new = empty($item['social']); ?>
944 <?php if ( ! empty( $item['social'] ) || !empty($item['social_new'])) : ?>
945 <?php $this->add_link_attributes( 'social_link_' . $index, $item['link'] ); ?>
946 <li class="eael-team-member-social-link">
947 <a <?php $this->print_render_attribute_string( 'social_link_' . $index ); ?>>
948 <?php if ($icon_is_new || $icon_migrated) { ?>
949 <?php if( isset( $item['social_new']['value']['url'] ) ) : ?>
950 <img src="<?php echo esc_attr($item['social_new']['value']['url'] ); ?>" alt="<?php echo esc_attr(get_post_meta($item['social_new']['value']['id'], '_wp_attachment_image_alt', true)); ?>" />
951 <?php else :
952 \Elementor\Icons_Manager::render_icon( $item['social_new'], [ 'aria-hidden' => 'true' ] );
953 endif; ?>
954 <?php } else { ?>
955 <i class="<?php echo esc_attr($item['social'] ); ?>"></i>
956 <?php } ?>
957 </a>
958 </li>
959 <?php endif; ?>
960 <?php endforeach; ?>
961 </ul>
962 <?php endif; ?>
963 <p <?php echo $this->get_render_attribute_string('eael_team_text'); ?>><?php echo HelperClass::eael_wp_kses($settings['eael_team_member_description']); ?></p>
964 <?php endif; ?>
965 </div>
966 </div>
967 </div>
968 <?php
969 }
970 }
971