PluginProbe ʕ •ᴥ•ʔ
Essential Addons for Elementor – Popular Elementor Templates & Widgets / 6.6.9
Essential Addons for Elementor – Popular Elementor Templates & Widgets v6.6.9
6.6.9 6.6.8 6.6.7 6.6.6 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 months ago Adv_Tabs.php 2 months ago Advanced_Data_Table.php 2 weeks ago Better_Payment.php 4 years ago Betterdocs_Category_Box.php 3 months ago Betterdocs_Category_Grid.php 3 months ago Betterdocs_Search_Form.php 2 months ago Breadcrumbs.php 2 months ago Business_Reviews.php 6 days ago Caldera_Forms.php 2 months ago Career_Page.php 4 years ago Code_Snippet.php 4 months ago Contact_Form_7.php 2 months ago Content_Ticker.php 4 months ago Countdown.php 2 months ago Creative_Button.php 1 month ago Cta_Box.php 2 months ago Data_Table.php 2 months ago Dual_Color_Header.php 6 days ago EmbedPress.php 4 years ago Event_Calendar.php 1 week ago Facebook_Feed.php 4 months ago Fancy_Text.php 2 months ago Feature_List.php 4 months ago Filterable_Gallery.php 6 days ago Flip_Box.php 2 months ago FluentForm.php 2 months ago Formstack.php 2 months ago GravityForms.php 6 days ago Image_Accordion.php 2 months ago Info_Box.php 6 days ago Interactive_Circle.php 2 months ago Login_Register.php 6 days ago NFT_Gallery.php 4 months ago NinjaForms.php 2 months ago Post_Grid.php 4 months ago Post_Timeline.php 10 months ago Pricing_Table.php 2 months ago Product_Grid.php 3 weeks ago Progress_Bar.php 2 months ago SVG_Draw.php 4 months ago Simple_Menu.php 6 days ago Sticky_Video.php 4 months ago Team_Member.php 4 months ago Testimonial.php 2 months ago Tooltip.php 2 months ago Twitter_Feed.php 4 months ago TypeForm.php 5 months ago WeForms.php 1 year ago Woo_Add_To_Cart.php 2 months ago Woo_Cart.php 4 months ago Woo_Checkout.php 4 months ago Woo_Product_Carousel.php 1 month ago Woo_Product_Compare.php 1 year ago Woo_Product_Gallery.php 4 months ago Woo_Product_Images.php 1 month ago Woo_Product_List.php 2 months ago Woo_Product_Price.php 2 months ago Woo_Product_Rating.php 2 months ago WpForms.php 2 months ago index.php 3 years ago
Team_Member.php
1119 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-for-elementor-lite' ];
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 protected function is_dynamic_content():bool {
56 return false;
57 }
58
59 public function has_widget_inner_wrapper(): bool {
60 return ! HelperClass::eael_e_optimized_markup();
61 }
62
63 public function get_custom_help_url()
64 {
65 return 'https://essential-addons.com/elementor/docs/team-members/';
66 }
67
68 protected function register_controls() {
69
70 $this->start_controls_section(
71 'eael_section_team_members_styles_general',
72 [
73 'label' => esc_html__( 'Layout', 'essential-addons-for-elementor-lite'),
74 ]
75 );
76
77 $template_list = apply_filters('eael_team_member_style_presets_options', [
78 'eael-team-members-simple' => esc_html__( 'Simple Style', 'essential-addons-for-elementor-lite' ),
79 'eael-team-members-overlay' => esc_html__( 'Overlay Style', 'essential-addons-for-elementor-lite' ),
80 'eael-team-members-centered' => esc_html__( 'Centered Style', 'essential-addons-for-elementor-lite' ),
81 'eael-team-members-circle' => esc_html__( 'Circle Style', 'essential-addons-for-elementor-lite' ),
82 'eael-team-members-social-bottom' => esc_html__( 'Social on Bottom', 'essential-addons-for-elementor-lite' ),
83 'eael-team-members-social-right' => esc_html__( 'Social on Right', 'essential-addons-for-elementor-lite' ),
84 ]);
85
86 $layout_options = [];
87
88 if( ! empty( $template_list ) ){
89 $image_path = EAEL_PLUGIN_URL . 'assets/admin/images/layout-previews/team-preset-';
90 foreach( $template_list as $key => $label ){
91 $layout_options[ $key ] = [
92 'title' => $label,
93 'image' => $image_path . str_replace( 'eael-team-members-', '', $key ) . '.png'
94 ];
95 }
96 }
97
98 $this->add_control(
99 'eael_team_members_preset',
100 [
101 'label' => esc_html__( 'Skin', 'essential-addons-for-elementor-lite' ),
102 'type' => Controls_Manager::CHOOSE,
103 'options' => $layout_options,
104 'default' => 'eael-team-members-simple',
105 'label_block' => true,
106 'toggle' => false,
107 'image_choose'=> true,
108 ]
109 );
110
111 $team_member_style_presets_condition = apply_filters('eael_team_member_style_presets_condition', [
112 'eael-team-members-centered',
113 'eael-team-members-circle',
114 'eael-team-members-social-bottom',
115 'eael-team-members-social-right'
116 ]);
117
118 $this->add_control(
119 'eael_team_members_preset_pro_alert',
120 [
121 'label' => esc_html__( 'Only available in pro version!', 'essential-addons-for-elementor-lite'),
122 'type' => Controls_Manager::HEADING,
123 'condition' => [
124 'eael_team_members_preset' => $team_member_style_presets_condition
125 ]
126 ]
127 );
128
129 $this->end_controls_section();
130
131 $this->start_controls_section(
132 'eael_section_team_member_image',
133 [
134 'label' => esc_html__( 'Image', 'essential-addons-for-elementor-lite')
135 ]
136 );
137
138
139 $this->add_control(
140 'eael_team_member_image',
141 [
142 'label' => '',
143 'type' => Controls_Manager::MEDIA,
144 'default' => [
145 'url' => Utils::get_placeholder_image_src(),
146 ],
147 'ai' => [
148 'active' => false,
149 ],
150 'dynamic' => [
151 'active' => true,
152 ],
153 ]
154 );
155
156
157 $this->add_group_control(
158 Group_Control_Image_Size::get_type(),
159 [
160 'name' => 'thumbnail',
161 'default' => 'full',
162 'condition' => [
163 'eael_team_member_image[url]!' => '',
164 ],
165 ]
166 );
167
168 $this->end_controls_section();
169
170 $this->start_controls_section(
171 'eael_section_team_member_content',
172 [
173 'label' => esc_html__( 'Content', 'essential-addons-for-elementor-lite')
174 ]
175 );
176
177 $this->add_control(
178 'eael_team_member_name_heading',
179 [
180 'label' => __( 'Name', 'essential-addons-for-elementor-lite'),
181 'type' => Controls_Manager::HEADING,
182 ]
183 );
184
185 $this->add_control(
186 'eael_team_member_name',
187 [
188 'label' => esc_html__( 'Text', 'essential-addons-for-elementor-lite'),
189 'type' => Controls_Manager::TEXT,
190 'dynamic' => [
191 'active' => true,
192 ],
193 'default' => esc_html__( 'John Doe', 'essential-addons-for-elementor-lite'),
194 'ai' => [
195 'active' => true,
196 ],
197 ]
198 );
199
200 $this->add_control(
201 'eael_team_member_name_tag',
202 [
203 'label' => __('HTML Tag', 'essential-addons-for-elementor-lite'),
204 'label_block' => true,
205 'type' => Controls_Manager::CHOOSE,
206 'options' => [
207 'h1' => [
208 'title' => esc_html__( 'H1', 'essential-addons-for-elementor-lite' ),
209 'icon' => 'eicon-editor-h1',
210 ],
211 'h2' => [
212 'title' => esc_html__( 'H2', 'essential-addons-for-elementor-lite' ),
213 'icon' => 'eicon-editor-h2',
214 ],
215 'h3' => [
216 'title' => esc_html__( 'H3', 'essential-addons-for-elementor-lite' ),
217 'icon' => 'eicon-editor-h3',
218 ],
219 'h4' => [
220 'title' => esc_html__( 'H4', 'essential-addons-for-elementor-lite' ),
221 'icon' => 'eicon-editor-h4',
222 ],
223 'h5' => [
224 'title' => esc_html__( 'H5', 'essential-addons-for-elementor-lite' ),
225 'icon' => 'eicon-editor-h5',
226 ],
227 'h6' => [
228 'title' => esc_html__( 'H6', 'essential-addons-for-elementor-lite' ),
229 'icon' => 'eicon-editor-h6',
230 ],
231 'div' => [
232 'title' => esc_html__( 'Div', 'essential-addons-for-elementor-lite' ),
233 'text' => 'div',
234 ],
235 'span' => [
236 'title' => esc_html__( 'Span', 'essential-addons-for-elementor-lite' ),
237 'text' => 'span',
238 ],
239 'p' => [
240 'title' => esc_html__( 'P', 'essential-addons-for-elementor-lite' ),
241 'text' => 'P',
242 ],
243 ],
244 'default' => 'h2',
245 'toggle' => false,
246 'separator' => 'after',
247 ]
248 );
249
250 $this->add_control(
251 'eael_team_member_job_position_heading',
252 [
253 'label' => __( 'Job Position', 'essential-addons-for-elementor-lite'),
254 'type' => Controls_Manager::HEADING,
255 'separator' => 'before'
256 ]
257 );
258
259 $this->add_control(
260 'eael_team_member_job_title',
261 [
262 'label' => esc_html__( 'Text', 'essential-addons-for-elementor-lite'),
263 'type' => Controls_Manager::TEXT,
264 'dynamic' => [
265 'active' => true,
266 ],
267 'default' => esc_html__( 'Software Engineer', 'essential-addons-for-elementor-lite'),
268 'ai' => [
269 'active' => true,
270 ],
271 ]
272 );
273
274 $this->add_control(
275 'eael_team_member_job_title_tag',
276 [
277 'label' => __('HTML Tag', 'essential-addons-for-elementor-lite'),
278 'label_block' => true,
279 'type' => Controls_Manager::CHOOSE,
280 'options' => [
281 'h1' => [
282 'title' => esc_html__( 'H1', 'essential-addons-for-elementor-lite' ),
283 'icon' => 'eicon-editor-h1',
284 ],
285 'h2' => [
286 'title' => esc_html__( 'H2', 'essential-addons-for-elementor-lite' ),
287 'icon' => 'eicon-editor-h2',
288 ],
289 'h3' => [
290 'title' => esc_html__( 'H3', 'essential-addons-for-elementor-lite' ),
291 'icon' => 'eicon-editor-h3',
292 ],
293 'h4' => [
294 'title' => esc_html__( 'H4', 'essential-addons-for-elementor-lite' ),
295 'icon' => 'eicon-editor-h4',
296 ],
297 'h5' => [
298 'title' => esc_html__( 'H5', 'essential-addons-for-elementor-lite' ),
299 'icon' => 'eicon-editor-h5',
300 ],
301 'h6' => [
302 'title' => esc_html__( 'H6', 'essential-addons-for-elementor-lite' ),
303 'icon' => 'eicon-editor-h6',
304 ],
305 'div' => [
306 'title' => esc_html__( 'Div', 'essential-addons-for-elementor-lite' ),
307 'text' => 'div',
308 ],
309 'span' => [
310 'title' => esc_html__( 'Span', 'essential-addons-for-elementor-lite' ),
311 'text' => 'span',
312 ],
313 'p' => [
314 'title' => esc_html__( 'P', 'essential-addons-for-elementor-lite' ),
315 'text' => 'P',
316 ],
317 ],
318 'default' => 'h3',
319 'toggle' => false,
320 'separator' => 'after',
321 ]
322 );
323
324 $this->add_control(
325 'eael_team_member_description',
326 [
327 'label' => esc_html__( 'Description', 'essential-addons-for-elementor-lite'),
328 'type' => Controls_Manager::TEXTAREA,
329 'dynamic' => [
330 'active' => true,
331 ],
332 'default' => esc_html__( 'Add team member description here. Remove the text if not necessary.', 'essential-addons-for-elementor-lite'),
333 ]
334 );
335
336
337 $this->end_controls_section();
338
339
340 $this->start_controls_section(
341 'eael_section_team_member_social_profiles',
342 [
343 'label' => esc_html__( 'Social Profiles', 'essential-addons-for-elementor-lite')
344 ]
345 );
346
347 $this->add_control(
348 'eael_team_member_enable_social_profiles',
349 [
350 'label' => esc_html__( 'Display Social Profiles?', 'essential-addons-for-elementor-lite'),
351 'type' => Controls_Manager::SWITCHER,
352 'default' => 'yes',
353 ]
354 );
355
356 $repeater = new Repeater();
357
358 $repeater->add_control(
359 'social_new',
360 [
361 'label' => esc_html__( 'Icon', 'essential-addons-for-elementor-lite'),
362 'type' => Controls_Manager::ICONS,
363 'fa4compatibility' => 'social',
364 'default' => [
365 'value' => 'fab fa-wordpress',
366 'library' => 'fa-brands',
367 ],
368 ]
369 );
370
371 $repeater->add_control(
372 'link',
373 [
374 'name' => 'link',
375 'label' => esc_html__( 'Link', 'essential-addons-for-elementor-lite'),
376 'type' => Controls_Manager::URL,
377 'dynamic' => ['active' => true],
378 'label_block' => true,
379 'default' => [
380 'url' => '',
381 'is_external' => 'true',
382 ],
383 'placeholder' => esc_html__( 'Place URL here', 'essential-addons-for-elementor-lite'),
384 ]
385 );
386
387 $this->add_control(
388 'eael_team_member_social_profile_links',
389 [
390 'type' => Controls_Manager::REPEATER,
391 'condition' => [
392 'eael_team_member_enable_social_profiles!' => '',
393 ],
394 'default' => [
395 [
396 'social_new' => [
397 'value' => 'fab fa-facebook',
398 'library' => 'fa-brands'
399 ]
400 ],
401 [
402 'social_new' => [
403 'value' => 'fab fa-twitter',
404 'library' => 'fa-brands'
405 ]
406 ],
407 [
408 'social_new' => [
409 'value' => 'fab fa-google-plus',
410 'library' => 'fa-brands'
411 ]
412 ],
413 [
414 'social_new' => [
415 'value' => 'fab fa-linkedin',
416 'library' => 'fa-brands'
417 ]
418 ],
419 ],
420 'fields' => $repeater->get_controls(),
421 'title_field' => '<i class="{{ social_new.value }}"></i>',
422 ]
423 );
424
425 $this->end_controls_section();
426
427
428 if(!apply_filters('eael/pro_enabled', false)) {
429 $this->start_controls_section(
430 'eael_section_pro',
431 [
432 'label' => __( 'Go Premium for More Features', 'essential-addons-for-elementor-lite')
433 ]
434 );
435
436 $this->add_control(
437 'eael_control_get_pro',
438 [
439 'label' => __( 'Unlock more possibilities', 'essential-addons-for-elementor-lite'),
440 'type' => Controls_Manager::CHOOSE,
441 'options' => [
442 '1' => [
443 'title' => '',
444 'icon' => 'fa fa-unlock-alt',
445 ],
446 ],
447 'default' => '1',
448 '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>'
449 ]
450 );
451
452 $this->end_controls_section();
453 }
454
455 $this->start_controls_section(
456 'content_card_style_section',
457 [
458 'label' => esc_html__( 'Content Card', 'essential-addons-for-elementor-lite'),
459 'tab' => Controls_Manager::TAB_STYLE
460 ]
461 );
462
463 $this->add_control(
464 'content_card_height',
465 [
466 'label' => esc_html__( 'Height', 'essential-addons-for-elementor-lite'),
467 'type' => Controls_Manager::SLIDER,
468 'size_units' => [ 'px', 'em' ],
469 'range' => [
470 'px' => [
471 'min' => 0,
472 'max' => 500,
473 ],
474 'em' => [
475 'min' => 0,
476 'max' => 200
477 ]
478 ],
479 'selectors' => [
480 '{{WRAPPER}} .eael-team-item .eael-team-content' => 'min-height: {{SIZE}}{{UNIT}};',
481 ],
482 ]
483 );
484
485 $this->add_control(
486 'eael_team_members_enable_text_overlay',
487 [
488 'label' => esc_html__( 'Description Overlay', 'essential-addons-for-elementor-lite'),
489 'type' => Controls_Manager::SWITCHER,
490 'default' => 'no',
491 'return_value' => 'yes',
492 'condition' => [
493 'eael_team_members_preset' => 'eael-team-members-simple'
494 ]
495 ]
496 );
497
498 $this->add_control(
499 'eael_team_members_overlay_background',
500 [
501 'label' => esc_html__( 'Overlay Color', 'essential-addons-for-elementor-lite'),
502 'type' => Controls_Manager::COLOR,
503 'default' => 'rgba(255,255,255,0.8)',
504 'selectors' => [
505 '{{WRAPPER}} .eael-team-members-overlay .eael-team-content' => 'background-color: {{VALUE}};',
506 '{{WRAPPER}} .eael-team-image .eael-team-text-overlay' => 'background-color: {{VALUE}};',
507 ],
508 'conditions' => [
509 'relation' => 'or',
510 'terms' => [
511 [
512 'name' => 'eael_team_members_preset',
513 'operator' => '=',
514 'value' => 'eael-team-members-overlay'
515 ],
516 [
517 'name' => 'eael_team_members_enable_text_overlay',
518 'operator' => '=',
519 'value' => 'yes'
520 ]
521 ]
522 ],
523 ]
524 );
525
526 $this->add_control(
527 'eael_team_members_background',
528 [
529 'label' => esc_html__( 'Background Color', 'essential-addons-for-elementor-lite'),
530 'type' => Controls_Manager::COLOR,
531 'default' => '',
532 'selectors' => [
533 '{{WRAPPER}} .eael-team-item .eael-team-content' => 'background-color: {{VALUE}};',
534 '{{WRAPPER}} .eael-team-item .eael-team-image .eael-team-text-overlay' => 'background-color: {{VALUE}};',
535 ],
536 ]
537 );
538
539 $this->add_control(
540 'eael_team_members_alignment',
541 [
542 'label' => esc_html__( 'Alignment', 'essential-addons-for-elementor-lite'),
543 'type' => Controls_Manager::CHOOSE,
544 'label_block' => true,
545 'options' => [
546 'default' => [
547 'title' => __( 'Default', 'essential-addons-for-elementor-lite'),
548 'icon' => 'fa fa-ban',
549 ],
550 'left' => [
551 'title' => esc_html__( 'Left', 'essential-addons-for-elementor-lite'),
552 'icon' => 'eicon-text-align-left',
553 ],
554 'centered' => [
555 'title' => esc_html__( 'Center', 'essential-addons-for-elementor-lite'),
556 'icon' => 'eicon-text-align-center',
557 ],
558 'right' => [
559 'title' => esc_html__( 'Right', 'essential-addons-for-elementor-lite'),
560 'icon' => 'eicon-text-align-right',
561 ],
562 ],
563 'default' => 'eael-team-align-default',
564 'prefix_class' => 'eael-team-align-',
565 ]
566 );
567
568 $this->add_responsive_control(
569 'eael_team_members_padding',
570 [
571 'label' => esc_html__( 'Padding', 'essential-addons-for-elementor-lite'),
572 'type' => Controls_Manager::DIMENSIONS,
573 'size_units' => [ 'px', '%', 'em' ],
574 'selectors' => [
575 '{{WRAPPER}} .eael-team-item .eael-team-content' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
576 ],
577 ]
578 );
579
580 $this->add_group_control(
581 Group_Control_Border::get_type(),
582 [
583 'name' => 'eael_team_members_border',
584 'label' => esc_html__( 'Border', 'essential-addons-for-elementor-lite'),
585 'selector' => '{{WRAPPER}} .eael-team-item',
586 ]
587 );
588
589 $this->add_control(
590 'eael_team_members_border_radius',
591 [
592 'label' => esc_html__( 'Border Radius', 'essential-addons-for-elementor-lite'),
593 'type' => Controls_Manager::DIMENSIONS,
594 'selectors' => [
595 '{{WRAPPER}} .eael-team-item' => 'border-radius: {{TOP}}px {{RIGHT}}px {{BOTTOM}}px {{LEFT}}px;',
596 ],
597 ]
598 );
599
600 $this->end_controls_section();
601
602
603 $this->start_controls_section(
604 'eael_section_team_members_image_styles',
605 [
606 'label' => esc_html__( 'Image', 'essential-addons-for-elementor-lite'),
607 'tab' => Controls_Manager::TAB_STYLE
608 ]
609 );
610
611 $this->add_responsive_control(
612 'eael_team_members_image_width',
613 [
614 'label' => esc_html__( 'Width', 'essential-addons-for-elementor-lite'),
615 'type' => Controls_Manager::SLIDER,
616 'default' => [
617 'size' => 100,
618 'unit' => '%',
619 ],
620 'range' => [
621 '%' => [
622 'min' => 0,
623 'max' => 100,
624 ],
625 'px' => [
626 'min' => 0,
627 'max' => 1000,
628 ],
629 ],
630 'size_units' => [ '%', 'px' ],
631 'selectors' => [
632 '{{WRAPPER}} .eael-team-item figure img' => 'width:{{SIZE}}{{UNIT}};',
633 ],
634 'condition' => [
635 'eael_team_members_preset!' => 'eael-team-members-circle'
636 ]
637 ]
638 );
639
640 do_action('eael/team_member_circle_controls', $this);
641
642
643 $this->add_responsive_control(
644 'eael_team_members_image_margin',
645 [
646 'label' => esc_html__( 'Margin', 'essential-addons-for-elementor-lite'),
647 'type' => Controls_Manager::DIMENSIONS,
648 'size_units' => [ 'px', '%' ],
649 'selectors' => [
650 '{{WRAPPER}} .eael-team-item figure img' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
651 ],
652 ]
653 );
654
655 $this->add_responsive_control(
656 'eael_team_members_image_padding',
657 [
658 'label' => esc_html__( 'Padding', 'essential-addons-for-elementor-lite'),
659 'type' => Controls_Manager::DIMENSIONS,
660 'size_units' => [ 'px', '%', 'em' ],
661 'selectors' => [
662 '{{WRAPPER}} .eael-team-item figure img' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
663 ],
664 ]
665 );
666
667
668 $this->add_group_control(
669 Group_Control_Border::get_type(),
670 [
671 'name' => 'eael_team_members_image_border',
672 'label' => esc_html__( 'Border', 'essential-addons-for-elementor-lite'),
673 'selector' => '{{WRAPPER}} .eael-team-item figure img',
674 ]
675 );
676
677 $this->add_control(
678 'eael_team_members_image_rounded',
679 [
680 'label' => esc_html__( 'Rounded Avatar?', 'essential-addons-for-elementor-lite'),
681 'type' => Controls_Manager::SWITCHER,
682 'return_value' => 'team-avatar-rounded',
683 'default' => '',
684 ]
685 );
686
687
688 $this->add_control(
689 'eael_team_members_image_border_radius',
690 [
691 'label' => esc_html__( 'Border Radius', 'essential-addons-for-elementor-lite'),
692 'type' => Controls_Manager::DIMENSIONS,
693 'selectors' => [
694 '{{WRAPPER}} .eael-team-item figure img' => 'border-radius: {{TOP}}px {{RIGHT}}px {{BOTTOM}}px {{LEFT}}px;',
695 ],
696 'condition' => [
697 'eael_team_members_image_rounded!' => 'team-avatar-rounded',
698 ],
699 ]
700 );
701
702 $this->end_controls_section();
703
704
705 $this->start_controls_section(
706 'eael_section_team_members_typography',
707 [
708 'label' => esc_html__( 'Color &amp; Typography', 'essential-addons-for-elementor-lite'),
709 'tab' => Controls_Manager::TAB_STYLE
710 ]
711 );
712
713 $this->add_control(
714 'eael_team_members_name_heading',
715 [
716 'label' => __( 'Member Name', 'essential-addons-for-elementor-lite'),
717 'type' => Controls_Manager::HEADING,
718 ]
719 );
720
721 $this->add_control(
722 'eael_team_members_name_color',
723 [
724 'label' => esc_html__( 'Color', 'essential-addons-for-elementor-lite'),
725 'type' => Controls_Manager::COLOR,
726 'default' => '#272727',
727 'selectors' => [
728 '{{WRAPPER}} .eael-team-item .eael-team-member-name' => 'color: {{VALUE}};',
729 ],
730 ]
731 );
732
733 $this->add_group_control(
734 Group_Control_Typography::get_type(),
735 [
736 'name' => 'eael_team_members_name_typography',
737 'selector' => '{{WRAPPER}} .eael-team-item .eael-team-member-name',
738 ]
739 );
740
741 $this->add_control(
742 'eael_team_members_position_heading',
743 [
744 'label' => __( 'Member Job Position', 'essential-addons-for-elementor-lite'),
745 'type' => Controls_Manager::HEADING,
746 'separator' => 'before'
747 ]
748 );
749
750 $this->add_control(
751 'eael_team_members_position_color',
752 [
753 'label' => esc_html__( 'Color', 'essential-addons-for-elementor-lite'),
754 'type' => Controls_Manager::COLOR,
755 'default' => '#272727',
756 'selectors' => [
757 '{{WRAPPER}} .eael-team-item .eael-team-member-position' => 'color: {{VALUE}};',
758 ],
759 ]
760 );
761
762 $this->add_group_control(
763 Group_Control_Typography::get_type(),
764 [
765 'name' => 'eael_team_members_position_typography',
766 'selector' => '{{WRAPPER}} .eael-team-item .eael-team-member-position',
767 ]
768 );
769
770 $this->add_control(
771 'eael_team_members_description_heading',
772 [
773 'label' => __( 'Member Description', 'essential-addons-for-elementor-lite'),
774 'type' => Controls_Manager::HEADING,
775 'separator' => 'before'
776 ]
777 );
778
779 $this->add_control(
780 'eael_team_members_description_color',
781 [
782 'label' => esc_html__( 'Color', 'essential-addons-for-elementor-lite'),
783 'type' => Controls_Manager::COLOR,
784 'default' => '#272727',
785 'selectors' => [
786 '{{WRAPPER}} .eael-team-item .eael-team-content .eael-team-text' => 'color: {{VALUE}};',
787 '{{WRAPPER}} .eael-team-item .eael-team-image .eael-team-text.eael-team-text-overlay' => 'color: {{VALUE}};',
788 ],
789 ]
790 );
791
792 $this->add_group_control(
793 Group_Control_Typography::get_type(),
794 [
795 'name' => 'eael_team_members_description_typography',
796 'selector' => '{{WRAPPER}} .eael-team-item .eael-team-content .eael-team-text,
797 {{WRAPPER}} .eael-team-item .eael-team-image .eael-team-text.eael-team-text-overlay',
798 ]
799 );
800
801 $this->end_controls_section();
802
803
804 $this->start_controls_section(
805 'eael_section_team_members_social_profiles_styles',
806 [
807 'label' => esc_html__( 'Social Profiles', 'essential-addons-for-elementor-lite'),
808 'tab' => Controls_Manager::TAB_STYLE
809 ]
810 );
811
812
813 $this->add_control(
814 'eael_team_members_social_icon_size',
815 [
816 'label' => esc_html__( 'Icon Size', 'essential-addons-for-elementor-lite'),
817 'type' => Controls_Manager::SLIDER,
818 'range' => [
819 'px' => [
820 'min' => 0,
821 'max' => 200,
822 ],
823 ],
824 'default' => [
825 'size' => 35,
826 'unit' => 'px'
827 ],
828 'selectors' => [
829 // '{{WRAPPER}} .eael-team-member-social-link > a' => 'width: {{SIZE}}px; height: {{SIZE}}px; line-height: {{SIZE}}px;',
830 '{{WRAPPER}} .eael-team-member-social-link > a i' => 'font-size: {{SIZE}}{{UNIT}};',
831 '{{WRAPPER}} .eael-team-member-social-link > a img' => 'width: {{SIZE}}px; height: {{SIZE}}px; line-height: {{SIZE}}px;',
832 '{{WRAPPER}} .eael-team-member-social-link > a svg' => 'width: {{SIZE}}px; height: {{SIZE}}px; line-height: {{SIZE}}px;',
833 ],
834 ]
835 );
836
837 $this->add_responsive_control(
838 'eael_team_members_social_profiles_padding',
839 [
840 'label' => esc_html__( 'Margin', 'essential-addons-for-elementor-lite'),
841 'type' => Controls_Manager::DIMENSIONS,
842 'size_units' => [ 'px', '%', 'em' ],
843 'selectors' => [
844 '{{WRAPPER}} .eael-team-content > .eael-team-member-social-profiles' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
845 '{{WRAPPER}} .eael-team-image > .eael-team-member-social-profiles' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
846 ],
847 ]
848 );
849
850 $this->add_responsive_control(
851 'eael_team_members_social_icons_padding',
852 [
853 'label' => esc_html__( 'Padding', 'essential-addons-for-elementor-lite'),
854 'type' => Controls_Manager::DIMENSIONS,
855 'size_units' => [ 'px', '%', 'em' ],
856 'selectors' => [
857 '{{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}};',
858 '{{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}};',
859 ],
860 ]
861 );
862 $this->add_responsive_control(
863 'eael_team_members_social_icons_spacing',
864 [
865 'label' => esc_html__( 'Icon Distance', 'essential-addons-for-elementor-lite'),
866 'type' => Controls_Manager::DIMENSIONS,
867 'size_units' => [ 'px', '%', 'em' ],
868 'selectors' => [
869 '{{WRAPPER}} .eael-team-content > .eael-team-member-social-profiles li.eael-team-member-social-link' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
870 '{{WRAPPER}} .eael-team-image > .eael-team-member-social-profiles li.eael-team-member-social-link' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
871 ],
872 ]
873 );
874 $this->add_control(
875 'eael_team_members_social_icons_used_gradient_bg',
876 [
877 'label' => __( 'Use Gradient Background', 'essential-addons-for-elementor-lite' ),
878 'type' => Controls_Manager::SWITCHER,
879 'label_on' => __( 'Yes', 'essential-addons-for-elementor-lite' ),
880 'label_off' => __( 'No', 'essential-addons-for-elementor-lite' ),
881 'return_value' => 'yes',
882 ]
883 );
884
885
886 $this->start_controls_tabs( 'eael_team_members_social_icons_style_tabs' );
887
888 $this->start_controls_tab( 'normal', [ 'label' => esc_html__( 'Normal', 'essential-addons-for-elementor-lite') ] );
889
890 $this->add_control(
891 'eael_team_members_social_icon_color',
892 [
893 'label' => esc_html__( 'Icon Color', 'essential-addons-for-elementor-lite'),
894 'type' => Controls_Manager::COLOR,
895 'default' => '#f1ba63',
896 'selectors' => [
897 '{{WRAPPER}} .eael-team-member-social-link > a' => 'color: {{VALUE}};',
898 '{{WRAPPER}} .eael-team-member-social-link > a svg' => 'fill: {{VALUE}};',
899 ],
900 ]
901 );
902
903 $this->add_control(
904 'eael_team_members_social_icon_background',
905 [
906 'label' => esc_html__( 'Background Color', 'essential-addons-for-elementor-lite'),
907 'type' => Controls_Manager::COLOR,
908 'default' => '',
909 'selectors' => [
910 '{{WRAPPER}} .eael-team-member-social-link > a' => 'background-color: {{VALUE}};',
911 ],
912 'condition' => [
913 'eael_team_members_social_icons_used_gradient_bg' => ''
914 ]
915 ]
916 );
917 $this->add_group_control(
918 Group_Control_Background::get_type(),
919 [
920 'name' => 'eael_team_members_social_icon_gradient_background',
921 'label' => __( 'Background', 'essential-addons-for-elementor-lite' ),
922 'types' => [ 'classic', 'gradient' ],
923 'selector' => '{{WRAPPER}} .eael-team-member-social-link > a',
924 'condition' => [
925 'eael_team_members_social_icons_used_gradient_bg' => 'yes'
926 ]
927 ]
928 );
929
930
931 $this->add_group_control(
932 Group_Control_Border::get_type(),
933 [
934 'name' => 'eael_team_members_social_icon_border',
935 'selector' => '{{WRAPPER}} .eael-team-member-social-link > a',
936 ]
937 );
938
939 $this->add_control(
940 'eael_team_members_social_icon_border_radius',
941 [
942 'label' => esc_html__( 'Border Radius', 'essential-addons-for-elementor-lite'),
943 'type' => Controls_Manager::SLIDER,
944 'range' => [
945 'px' => [
946 'max' => 100,
947 ],
948 ],
949 'selectors' => [
950 '{{WRAPPER}} .eael-team-member-social-link > a' => 'border-radius: {{SIZE}}px;',
951 ],
952 ]
953 );
954
955 $this->add_group_control(
956 Group_Control_Typography::get_type(),
957 [
958 'name' => 'eael_team_members_social_icon_typography',
959 'selector' => '{{WRAPPER}} .eael-team-member-social-link > a',
960 ]
961 );
962
963
964 $this->end_controls_tab();
965
966 $this->start_controls_tab( 'eael_team_members_social_icon_hover', [ 'label' => esc_html__( 'Hover', 'essential-addons-for-elementor-lite') ] );
967
968 $this->add_control(
969 'eael_team_members_social_icon_hover_color',
970 [
971 'label' => esc_html__( 'Icon Hover Color', 'essential-addons-for-elementor-lite'),
972 'type' => Controls_Manager::COLOR,
973 'default' => '#ad8647',
974 'selectors' => [
975 '{{WRAPPER}} .eael-team-member-social-link > a:hover' => 'color: {{VALUE}};',
976 '{{WRAPPER}} .eael-team-member-social-link > a:hover svg' => 'fill: {{VALUE}};',
977 ],
978 ]
979 );
980
981 $this->add_control(
982 'eael_team_members_social_icon_hover_background',
983 [
984 'label' => esc_html__( 'Hover Background', 'essential-addons-for-elementor-lite'),
985 'type' => Controls_Manager::COLOR,
986 'default' => '',
987 'selectors' => [
988 '{{WRAPPER}} .eael-team-member-social-link > a:hover' => 'background-color: {{VALUE}};',
989 ],
990 'condition' => [
991 'eael_team_members_social_icons_used_gradient_bg' => ''
992 ]
993 ]
994 );
995 $this->add_group_control(
996 Group_Control_Background::get_type(),
997 [
998 'name' => 'eael_team_members_social_icon_hover_gradient_background',
999 'label' => __( 'Background', 'essential-addons-for-elementor-lite' ),
1000 'types' => [ 'classic', 'gradient' ],
1001 'selector' => '{{WRAPPER}} .eael-team-member-social-link > a:hover',
1002 'condition' => [
1003 'eael_team_members_social_icons_used_gradient_bg' => 'yes'
1004 ]
1005 ]
1006 );
1007
1008 $this->add_control(
1009 'eael_team_members_social_icon_hover_border_color',
1010 [
1011 'label' => esc_html__( 'Hover Border Color', 'essential-addons-for-elementor-lite'),
1012 'type' => Controls_Manager::COLOR,
1013 'default' => '',
1014 'selectors' => [
1015 '{{WRAPPER}} .eael-team-member-social-link > a:hover' => 'border-color: {{VALUE}};',
1016 ],
1017 ]
1018 );
1019
1020 $this->end_controls_tab();
1021
1022 $this->end_controls_tabs();
1023
1024
1025 $this->end_controls_section();
1026
1027
1028 }
1029
1030 protected function render( ) {
1031
1032 $settings = $this->get_settings_for_display();
1033 $team_member_image = $settings['eael_team_member_image'] ?? '';
1034 $image_url = $team_member_image['url'] ?? '';
1035 $alt_text = $settings['eael_team_member_name'] ?? '';
1036
1037 if( is_array( $team_member_image ) && ! empty( $team_member_image['id'] ) ) {
1038 $image_url = Group_Control_Image_Size::get_attachment_image_src( $team_member_image['id'], 'thumbnail', $settings );
1039 $alt_text = get_post_meta( $team_member_image['id'], '_wp_attachment_image_alt', true );
1040 }
1041
1042 $team_member_classes = $this->get_settings('eael_team_members_preset') . " " . $this->get_settings('eael_team_members_image_rounded');
1043
1044 $this->add_render_attribute( 'eael_team_text', 'class', 'eael-team-text' );
1045
1046 if ( isset( $settings['eael_team_members_enable_text_overlay'] ) && $settings['eael_team_members_enable_text_overlay'] == 'yes' ) {
1047 $this->add_render_attribute( 'eael_team_text', 'class', 'eael-team-text-overlay' );
1048 }
1049
1050 ?>
1051
1052
1053 <div id="eael-team-member-<?php echo esc_attr($this->get_id()); ?>" class="eael-team-item <?php echo esc_attr( $team_member_classes ); ?>">
1054 <div class="eael-team-item-inner">
1055 <div class="eael-team-image">
1056 <figure>
1057 <?php if( !empty( $image_url ) ): ?>
1058 <img src="<?php echo esc_url( $image_url );?>" alt="<?php echo esc_attr( $alt_text ); ?>">
1059 <?php endif; ?>
1060 </figure>
1061 <?php if( 'eael-team-members-social-right' === $settings['eael_team_members_preset'] ) : ?>
1062 <?php do_action( 'eael/team_member_social_right_markup', $settings, $this ); ?>
1063 <?php endif; ?>
1064
1065 <?php
1066 if ( isset( $settings['eael_team_members_enable_text_overlay'] ) && $settings['eael_team_members_enable_text_overlay'] == 'yes' ) {
1067 ?>
1068 <p <?php $this->print_render_attribute_string('eael_team_text'); ?>><?php echo wp_kses( $settings['eael_team_member_description'], HelperClass::eael_allowed_tags() ); ?></p>
1069 <?php
1070 }
1071 ?>
1072
1073 </div>
1074
1075 <div class="eael-team-content">
1076 <?php
1077 $title_tag = HelperClass::eael_validate_html_tag( $settings['eael_team_member_name_tag'] );
1078 $position_tag = HelperClass::eael_validate_html_tag( $settings['eael_team_member_job_title_tag'] );
1079
1080 printf( '<%1$s class="eael-team-member-name">%2$s</%1$s>', esc_attr( $title_tag ), wp_kses( $settings['eael_team_member_name'], HelperClass::eael_allowed_tags() ) );
1081 printf( '<%1$s class="eael-team-member-position">%2$s</%1$s>', esc_attr( $position_tag ), wp_kses( $settings['eael_team_member_job_title'], HelperClass::eael_allowed_tags() ) );
1082 ?>
1083
1084 <?php if( 'eael-team-members-social-bottom' === $settings['eael_team_members_preset'] ) : ?>
1085 <?php do_action( 'eael/team_member_social_botton_markup', $settings, $this ); ?>
1086 <?php else: ?>
1087 <?php if ( ! empty( $settings['eael_team_member_enable_social_profiles'] ) && 'eael-team-members-social-right' !== $settings['eael_team_members_preset'] ): ?>
1088 <ul class="eael-team-member-social-profiles">
1089 <?php foreach ( $settings['eael_team_member_social_profile_links'] as $index => $item ) : ?>
1090 <?php $icon_migrated = isset($item['__fa4_migrated']['social_new']);
1091 $icon_is_new = empty($item['social']); ?>
1092 <?php if ( ! empty( $item['social'] ) || !empty($item['social_new'])) : ?>
1093 <?php $this->add_link_attributes( 'social_link_' . $index, $item['link'] ); ?>
1094 <li class="eael-team-member-social-link">
1095 <a <?php $this->print_render_attribute_string( 'social_link_' . $index ); ?>>
1096 <?php if ($icon_is_new || $icon_migrated) { ?>
1097 <?php if( isset( $item['social_new']['value']['url'] ) ) : ?>
1098 <img src="<?php echo esc_url( $item['social_new']['value']['url'] ); ?>" alt="<?php echo esc_attr(get_post_meta($item['social_new']['value']['id'], '_wp_attachment_image_alt', true)); ?>" />
1099 <?php else :
1100 \Elementor\Icons_Manager::render_icon( $item['social_new'], [ 'aria-hidden' => 'true' ] );
1101 endif; ?>
1102 <?php } else { ?>
1103 <i class="<?php echo esc_attr($item['social'] ); ?>"></i>
1104 <?php } ?>
1105 </a>
1106 </li>
1107 <?php endif; ?>
1108 <?php endforeach; ?>
1109 </ul>
1110 <?php endif; ?>
1111 <p <?php $this->print_render_attribute_string('eael_team_text'); ?>><?php echo wp_kses( $settings['eael_team_member_description'], HelperClass::eael_allowed_tags() ); ?></p>
1112 <?php endif; ?>
1113 </div>
1114 </div>
1115 </div>
1116 <?php
1117 }
1118 }
1119