Elementor Essential Addons - Version 2.7.2

Version Description

  • WPForms element added
  • Author, Tags and Exclude posts options added to Post elements (Post Grid, Post Timeline)
  • "All" text change option for Filterable Gallery
  • Social feeds elements updated
  • Advanced Tabs scripts improved
  • Post Timeline scripts improved
  • Cell colspan feature added to Data Table
  • Few minor bugfix and improvements
Download this release

Release Info

Developer re_enter_rupok
Plugin Icon 128x128 Elementor Essential Addons
Version 2.7.2
Comparing to
See all releases

Code changes from version 2.7.1 to 2.7.2

admin/assets/css/admin.css CHANGED
@@ -6,9 +6,12 @@
6
 
7
  /* General Style */
8
 
 
 
 
9
  .eael-header-bar {
10
  height: auto;
11
- padding: 20px;
12
  background: #fff;
13
  border: 1px solid rgba( 0,0,0,0.1 );
14
  -webkit-display: flex;
@@ -18,8 +21,24 @@
18
  -webkit-align-items: center;
19
  align-items: center;
20
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
21
  .eael-header-bar .title {
22
- font-size: 28px;
 
23
  font-weight: 600;
24
  margin: 0px;
25
  line-height: 1;
@@ -449,6 +468,10 @@ textarea.eael-form-control {
449
  height: 100%;
450
  vertical-align: middle;
451
  object-fit: cover;
 
 
 
 
452
  }
453
 
454
  .eael-admin-sidebar {
6
 
7
  /* General Style */
8
 
9
+ .eael-settings-wrap {
10
+ padding: 15px;
11
+ }
12
  .eael-header-bar {
13
  height: auto;
14
+ padding: 10px;
15
  background: #fff;
16
  border: 1px solid rgba( 0,0,0,0.1 );
17
  -webkit-display: flex;
21
  -webkit-align-items: center;
22
  align-items: center;
23
  }
24
+
25
+ .eael-settings-wrap .eael-header-left {
26
+ display: flex;
27
+ align-content: center;
28
+ align-items: center;
29
+ }
30
+ .eael-header-bar .eael-admin-logo-inline {
31
+ width: 32px;
32
+ box-shadow: 1px 0 0 0 rgba(0,0,0,0.1);
33
+ padding: 10px 10px 5px;
34
+ margin-right: 10px;
35
+ }
36
+ .eael-header-bar .eael-admin-logo-inline img{
37
+ width: 100%;
38
+ }
39
  .eael-header-bar .title {
40
+ font-size: 24px;
41
+ color: #444;
42
  font-weight: 600;
43
  margin: 0px;
44
  line-height: 1;
468
  height: 100%;
469
  vertical-align: middle;
470
  object-fit: cover;
471
+ transition: all .3s;
472
+ }
473
+ .eael-preview-img:hover{
474
+ opacity: .9;
475
  }
476
 
477
  .eael-admin-sidebar {
admin/assets/images/eael-featured.png CHANGED
Binary file
admin/assets/js/admin.js CHANGED
@@ -31,36 +31,50 @@
31
  $('.eael-checkbox input[type="checkbox"]').on( 'click', function() {
32
  headerSaveBtn.addClass( 'save-now' );
33
  footerSaveBtn.addClass( 'save-now' );
 
 
34
  } );
35
 
36
  // Saving Data With Ajax Request
37
  $( '.js-eael-settings-save' ).on( 'click', function(e) {
38
  e.preventDefault();
39
 
40
- $.ajax( {
41
- url: js_eael_lite_settings.ajaxurl,
42
- type: 'post',
43
- data: {
44
- action: 'save_settings_with_ajax',
45
- fields: $( 'form#eael-settings' ).serialize(),
46
- },
47
- success: function( response ) {
48
- swal(
49
- 'Settings Saved!',
50
- 'Click OK to continue',
51
- 'success'
52
- );
53
- headerSaveBtn.removeClass( 'save-now' );
54
- footerSaveBtn.removeClass( 'save-now' );
55
- },
56
- error: function() {
57
- swal(
58
- 'Oops...',
59
- 'Something went wrong!',
60
- 'error'
61
- );
62
- }
63
- } );
 
 
 
 
 
 
 
 
 
 
 
 
64
 
65
  } );
66
 
31
  $('.eael-checkbox input[type="checkbox"]').on( 'click', function() {
32
  headerSaveBtn.addClass( 'save-now' );
33
  footerSaveBtn.addClass( 'save-now' );
34
+ headerSaveBtn.removeAttr('disabled').css('cursor', 'pointer');
35
+ footerSaveBtn.removeAttr('disabled').css('cursor', 'pointer');
36
  } );
37
 
38
  // Saving Data With Ajax Request
39
  $( '.js-eael-settings-save' ).on( 'click', function(e) {
40
  e.preventDefault();
41
 
42
+ var _this = $(this);
43
+
44
+ if( $(this).hasClass('save-now') ) {
45
+ $.ajax( {
46
+ url: js_eael_lite_settings.ajaxurl,
47
+ type: 'post',
48
+ data: {
49
+ action: 'save_settings_with_ajax',
50
+ fields: $( 'form#eael-settings' ).serialize(),
51
+ },
52
+ beforeSend: function() {
53
+ _this.html('<i class="fa fa-spinner fa-spin"></i>&nbsp;Saving Data..');
54
+ },
55
+ success: function( response ) {
56
+ setTimeout(function() {
57
+ _this.html('Save Settings');
58
+ swal(
59
+ 'Settings Saved!',
60
+ 'Click OK to continue',
61
+ 'success'
62
+ );
63
+ headerSaveBtn.removeClass( 'save-now' );
64
+ footerSaveBtn.removeClass( 'save-now' );
65
+ }, 2000);
66
+ },
67
+ error: function() {
68
+ swal(
69
+ 'Oops...',
70
+ 'Something went wrong!',
71
+ 'error'
72
+ );
73
+ }
74
+ } );
75
+ }else {
76
+ $(this).attr('disabled', 'true').css('cursor', 'not-allowed');
77
+ }
78
 
79
  } );
80
 
admin/settings.php CHANGED
@@ -14,7 +14,7 @@ class Eael_Admin_Settings {
14
  * @var array
15
  * @since 2.3.0
16
  */
17
- public $eael_default_keys = [ 'contact-form-7', 'count-down', 'creative-btn', 'fancy-text', 'img-comparison', 'instagram-gallery', 'interactive-promo', 'lightbox', 'post-block', 'post-grid', 'post-timeline', 'product-grid', 'team-members', 'testimonial-slider', 'testimonials', 'testimonials', 'weforms', 'static-product', 'call-to-action', 'flip-box', 'info-box', 'dual-header', 'price-table', 'flip-carousel', 'interactive-cards', 'ninja-form', 'gravity-form', 'caldera-form', 'wisdom_registered_setting', 'twitter-feed', 'facebook-feed', 'twitter-feed-carousel', 'facebook-feed-carousel', 'data-table', 'filter-gallery', 'dynamic-filter-gallery', 'image-accordion', 'content-ticker', 'tooltip', 'adv-accordion', 'adv-tabs' ];
18
 
19
  /**
20
  * Will Contain All Components Default Values
@@ -115,15 +115,17 @@ class Eael_Admin_Settings {
115
  }
116
  $this->eael_get_settings = get_option( 'eael_save_settings', $this->eael_default_settings );
117
  ?>
118
- <div class="wrap">
119
- <div class="response-wrap"></div>
120
  <form action="" method="POST" id="eael-settings" name="eael-settings">
121
  <div class="eael-header-bar">
122
  <div class="eael-header-left">
123
- <h4 class="title"><?php _e( 'Essential Addons Settings', 'essential-addons-elementor' ); ?></h4>
 
 
 
124
  </div>
125
  <div class="eael-header-right">
126
- <input type="submit" value="Save settings" class="button eael-btn js-eael-settings-save"/>
127
  </div>
128
  </div>
129
  <div class="eael-settings-tabs">
@@ -174,7 +176,7 @@ class Eael_Admin_Settings {
174
  <h4 class="eael-admin-title">Need Help?</h4>
175
  </header>
176
  <div class="eael-admin-block-content">
177
- <p>Stuck with something? Get help from the community on <a href="https://wordpress.org/support/plugin/essential-addons-for-elementor-lite" target="_blank">WordPress Support Forum</a> or <a href="https://www.facebook.com/groups/essentialaddons/" target="_blank">Facebook Community.</a> In case of emergency, initiate a live chat at <a href="https://wpdeveloper.net" target="_blank">WPDeveloper.net.</a></p>
178
  <a href="https://wordpress.org/support/plugin/essential-addons-for-elementor-lite" class="button button-primary" target="_blank">Get Community Support</a>
179
  </div>
180
  </div>
@@ -301,6 +303,11 @@ class Eael_Admin_Settings {
301
  <label for="caldera-form"></label>
302
  <p class="eael-el-title"><?php _e( 'Caldera Form', 'essential-addons-elementor' ) ?></p>
303
  </div>
 
 
 
 
 
304
  <div class="eael-checkbox">
305
  <input type="checkbox" id="twitter-feed" name="twitter-feed" <?php checked( 1, $this->eael_get_settings['twitter-feed'], true ); ?> >
306
  <label for="twitter-feed"></label>
@@ -473,9 +480,37 @@ class Eael_Admin_Settings {
473
  <?php _e( 'Mailchimp', 'essential-addons-elementor' ) ?>
474
  </p>
475
  </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
476
  </div><!--./checkbox-container-->
477
  <div class="eael-save-btn-wrap">
478
- <input type="submit" value="Save settings" class="button eael-btn js-eael-settings-save"/>
479
  </div>
480
  </div>
481
  </div>
@@ -531,7 +566,8 @@ class Eael_Admin_Settings {
531
  'price-table' => intval( $settings['price-table'] ? 1 : 0 ),
532
  'ninja-form' => intval( $settings['ninja-form'] ? 1 : 0 ),
533
  'gravity-form' => intval( $settings['gravity-form'] ? 1 : 0 ),
534
- 'caldera-form' => intval( $settings['gravity-form'] ? 1 : 0 ),
 
535
  'twitter-feed' => intval( $settings['twitter-feed'] ? 1 : 0 ),
536
  'facebook-feed' => intval( $settings['facebook-feed'] ? 1 : 0 ),
537
  'data-table' => intval( $settings['data-table'] ? 1 : 0 ),
14
  * @var array
15
  * @since 2.3.0
16
  */
17
+ public $eael_default_keys = [ 'contact-form-7', 'count-down', 'creative-btn', 'fancy-text', 'img-comparison', 'instagram-gallery', 'interactive-promo', 'lightbox', 'post-block', 'post-grid', 'post-timeline', 'product-grid', 'team-members', 'testimonial-slider', 'testimonials', 'testimonials', 'weforms', 'static-product', 'call-to-action', 'flip-box', 'info-box', 'dual-header', 'price-table', 'flip-carousel', 'interactive-cards', 'ninja-form', 'gravity-form', 'caldera-form', 'wpforms', 'wisdom_registered_setting', 'twitter-feed', 'facebook-feed', 'twitter-feed-carousel', 'facebook-feed-carousel', 'data-table', 'filter-gallery', 'dynamic-filter-gallery', 'image-accordion', 'content-ticker', 'tooltip', 'adv-accordion', 'adv-tabs' ];
18
 
19
  /**
20
  * Will Contain All Components Default Values
115
  }
116
  $this->eael_get_settings = get_option( 'eael_save_settings', $this->eael_default_settings );
117
  ?>
118
+ <div class="eael-settings-wrap">
 
119
  <form action="" method="POST" id="eael-settings" name="eael-settings">
120
  <div class="eael-header-bar">
121
  <div class="eael-header-left">
122
+ <div class="eael-admin-logo-inline">
123
+ <img src="<?php echo plugins_url( '/', __FILE__ ).'assets/images/ea-icon-color.png'; ?>">
124
+ </div>
125
+ <h2 class="title"><?php _e( 'Essential Addons Settings', 'essential-addons-elementor' ); ?></h2>
126
  </div>
127
  <div class="eael-header-right">
128
+ <button type="submit" class="button eael-btn js-eael-settings-save"><?php _e('Save settings', 'essential-addons-elementor'); ?></button>
129
  </div>
130
  </div>
131
  <div class="eael-settings-tabs">
176
  <h4 class="eael-admin-title">Need Help?</h4>
177
  </header>
178
  <div class="eael-admin-block-content">
179
+ <p>Stuck with something? Get help from the community on <a href="https://wordpress.org/support/plugin/essential-addons-for-elementor-lite" target="_blank">WordPress Support Forum</a> or <a href="https://www.facebook.com/groups/essentialaddons/" target="_blank">Facebook Community.</a> In case of emergency, initiate a live chat at <a href="https://essential-addons.com/elementor/" target="_blank">Essential Addons website.</a></p>
180
  <a href="https://wordpress.org/support/plugin/essential-addons-for-elementor-lite" class="button button-primary" target="_blank">Get Community Support</a>
181
  </div>
182
  </div>
303
  <label for="caldera-form"></label>
304
  <p class="eael-el-title"><?php _e( 'Caldera Form', 'essential-addons-elementor' ) ?></p>
305
  </div>
306
+ <div class="eael-checkbox">
307
+ <input type="checkbox" id="wpforms" name="wpforms" <?php checked( 1, $this->eael_get_settings['wpforms'], true ); ?> >
308
+ <label for="wpforms"></label>
309
+ <p class="eael-el-title"><?php _e( 'WPForms', 'essential-addons-elementor' ) ?></p>
310
+ </div>
311
  <div class="eael-checkbox">
312
  <input type="checkbox" id="twitter-feed" name="twitter-feed" <?php checked( 1, $this->eael_get_settings['twitter-feed'], true ); ?> >
313
  <label for="twitter-feed"></label>
480
  <?php _e( 'Mailchimp', 'essential-addons-elementor' ) ?>
481
  </p>
482
  </div>
483
+ <div class="eael-checkbox">
484
+ <input type="checkbox" id="divider" name="divider" disabled>
485
+ <label for="divider" class="<?php if( (bool) $this->is_pro === false ) : echo 'eael-get-pro'; endif; ?>"></label>
486
+ <p class="eael-el-title">
487
+ <?php _e( 'Divider', 'essential-addons-elementor' ) ?>
488
+ </p>
489
+ </div>
490
+ <div class="eael-checkbox">
491
+ <input type="checkbox" id="price-menu" name="price-menu" disabled>
492
+ <label for="price-menu" class="<?php if( (bool) $this->is_pro === false ) : echo 'eael-get-pro'; endif; ?>"></label>
493
+ <p class="eael-el-title">
494
+ <?php _e( 'Price Menu', 'essential-addons-elementor' ) ?>
495
+ </p>
496
+ </div>
497
+ <div class="eael-checkbox">
498
+ <input type="checkbox" id="image-hotspots" name="image-hotspots" disabled>
499
+ <label for="image-hotspots" class="<?php if( (bool) $this->is_pro === false ) : echo 'eael-get-pro'; endif; ?>"></label>
500
+ <p class="eael-el-title">
501
+ <?php _e( 'Image Hotspots', 'essential-addons-elementor' ) ?>
502
+ </p>
503
+ </div>
504
+ <div class="eael-checkbox">
505
+ <input type="checkbox" id="one-page-navigation" name="one-page-navigation" disabled>
506
+ <label for="one-page-navigation" class="<?php if( (bool) $this->is_pro === false ) : echo 'eael-get-pro'; endif; ?>"></label>
507
+ <p class="eael-el-title">
508
+ <?php _e( 'One Page Navigation', 'essential-addons-elementor' ) ?>
509
+ </p>
510
+ </div>
511
  </div><!--./checkbox-container-->
512
  <div class="eael-save-btn-wrap">
513
+ <button type="submit" class="button eael-btn js-eael-settings-save"><?php _e('Save settings', 'essential-addons-elementor'); ?></button>
514
  </div>
515
  </div>
516
  </div>
566
  'price-table' => intval( $settings['price-table'] ? 1 : 0 ),
567
  'ninja-form' => intval( $settings['ninja-form'] ? 1 : 0 ),
568
  'gravity-form' => intval( $settings['gravity-form'] ? 1 : 0 ),
569
+ 'caldera-form' => intval( $settings['caldera-form'] ? 1 : 0 ),
570
+ 'wpforms' => intval( $settings['wpforms'] ? 1 : 0 ),
571
  'twitter-feed' => intval( $settings['twitter-feed'] ? 1 : 0 ),
572
  'facebook-feed' => intval( $settings['facebook-feed'] ? 1 : 0 ),
573
  'data-table' => intval( $settings['data-table'] ? 1 : 0 ),
assets/css/essential-addons-elementor.css CHANGED
@@ -1880,7 +1880,6 @@ body:not(.x-ethos):not(.x-integrity):not(.x-renew):not(.x-icon) .eael-product-ca
1880
  * Infobox Style
1881
  */
1882
  /* Image/Icon On Top */
1883
- .eael-infobox {}
1884
  .eael-infobox .infobox-icon {
1885
  height: auto;
1886
  }
@@ -1896,9 +1895,6 @@ body:not(.x-ethos):not(.x-integrity):not(.x-renew):not(.x-icon) .eael-product-ca
1896
  .eael-infobox:hover .infobox-icon .infobox-icon-wrap {
1897
  transform: scale(1.1);
1898
  }
1899
- .eael-infobox .infobox-content {}
1900
- .eael-infobox .infobox-content .title {}
1901
-
1902
  /* For Content Alignment */
1903
  .eael-infobox-content-align-left .eael-infobox .infobox-icon,
1904
  .eael-infobox-content-align-left .eael-infobox .infobox-content {
@@ -1913,7 +1909,6 @@ body:not(.x-ethos):not(.x-integrity):not(.x-renew):not(.x-icon) .eael-product-ca
1913
  text-align: center;
1914
  }
1915
  /* For icon background shape */
1916
- .eael-infobox-icon-bg-shape-none {}
1917
  .eael-infobox-icon-bg-shape-square .infobox-icon .infobox-icon-wrap,
1918
  .eael-infobox-icon-bg-shape-radius .infobox-icon .infobox-icon-wrap,
1919
  .eael-infobox-icon-bg-shape-circle .infobox-icon .infobox-icon-wrap {
@@ -2718,7 +2713,7 @@ h2.eael-elements-flip-box-heading {
2718
  .eael-pricing.style-1 .eael-pricing-item .price-period {
2719
  color: #999;
2720
  }
2721
- .eael-pricing.style-1 .eael-pricing-item .body {} .eael-pricing.style-1 .eael-pricing-item .body ul {
2722
  display: block;
2723
  width: 100%;
2724
  margin-bottom: 15px;
@@ -2809,7 +2804,7 @@ h2.eael-elements-flip-box-heading {
2809
  text-transform: uppercase;
2810
  padding: 5px 15px;
2811
  }
2812
- .eael-pricing.style-2 .eael-pricing-item .eael-pricing-icon {} .eael-pricing.style-2 .eael-pricing-item .eael-pricing-icon .icon {
2813
  display: inline-block;
2814
  position: relative;
2815
  width: 80px;
@@ -2902,7 +2897,7 @@ h2.eael-elements-flip-box-heading {
2902
  .eael-pricing.style-2 .eael-pricing-item .price-period {
2903
  color: #999;
2904
  }
2905
- .eael-pricing.style-2 .eael-pricing-item .body {} .eael-pricing.style-2 .eael-pricing-item .body ul {
2906
  display: block;
2907
  width: 100%;
2908
  margin-bottom: 15px;
@@ -3110,11 +3105,50 @@ h2.eael-elements-flip-box-heading {
3110
  width: 100%;
3111
  }
3112
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3113
  /**
3114
  * Social Feeds
3115
  */
 
 
 
 
3116
  /* Twitter Feed Styles */
3117
- .eael-social-feed-container {}
3118
  .eael-social-feed-element.hidden {
3119
  background-color:red !important;
3120
  }
@@ -3126,10 +3160,6 @@ h2.eael-elements-flip-box-heading {
3126
  content: "";
3127
  clear: both;
3128
  }
3129
- .eael-facebook-feed-container:not(.masonry-view), .eael-twitter-feed-container:not(.masonry-view) {
3130
- height: auto!important;
3131
- }
3132
-
3133
  .eael-social-feed-element .pull-left {
3134
  float:left;
3135
  margin-right: 10px;
@@ -3139,7 +3169,6 @@ h2.eael-elements-flip-box-heading {
3139
  }
3140
  .eael-social-feed-element img {
3141
  width: 100%;
3142
- width: auto;
3143
  height: auto;
3144
  border: 0;
3145
  vertical-align: middle;
@@ -3253,9 +3282,6 @@ h2.eael-elements-flip-box-heading {
3253
  transition: .4s;
3254
  background: #fff;
3255
  }
3256
- .eael-social-feed-element:hover .eael-content {
3257
- box-shadow: 0 0 10px 0 rgba(10, 10, 10, 0.2);
3258
- }
3259
  .eael-social-feed-element .social-network-icon {
3260
  opacity:0.7;
3261
  }
@@ -3392,7 +3418,6 @@ h2.eael-elements-flip-box-heading {
3392
  */
3393
 
3394
  /* General Style */
3395
- .eael-data-table-wrap {}
3396
  .eael-data-table-wrap .eael-data-tables_wrapper {
3397
  display: flex;
3398
  flex-flow: row wrap;
@@ -3431,8 +3456,6 @@ h2.eael-elements-flip-box-heading {
3431
  color: #fff;
3432
  background: #4a4893;
3433
  }
3434
- .eael-data-table-wrap .eael-data-tables_paginate .paginate_button.previous {}
3435
- .eael-data-table-wrap .eael-data-tables_paginate .paginate_button.next {}
3436
  .eael-data-table-wrap .eael-data-tables_paginate .paginate_button.disabled {
3437
  cursor: no-drop;
3438
  background: #f2f2f2;
@@ -3489,7 +3512,6 @@ table.eael-data-table thead .headerSortUp:after {
3489
  border-collapse: collapse;
3490
  margin: 0px;
3491
  }
3492
- .eael-data-table thead {}
3493
  .eael-data-table thead tr {
3494
  text-align: left;
3495
  }
@@ -3507,7 +3529,6 @@ table.eael-data-table thead .headerSortUp:after {
3507
  .eael-data-table thead tr th:last-child {
3508
  border: 0px;
3509
  }
3510
- .eael-data-table tbody {}
3511
  .eael-data-table tbody tr {
3512
 
3513
  }
@@ -3990,7 +4011,7 @@ img.mfp-img {
3990
  flex-flow: 1 1 100%;
3991
  align-items: center;
3992
  justify-content: center;
3993
- z-index: 10;
3994
  top: 0px;
3995
  left: 0px;
3996
  right: 0px;
@@ -4271,11 +4292,6 @@ img.mfp-img {
4271
  }
4272
 
4273
  @media screen and (max-width: 800px) {
4274
- body {
4275
- font-size: 1rem;
4276
- line-height: 1.25;
4277
- }
4278
-
4279
  .eael-img-accordion {
4280
  flex-direction: column;
4281
  }
@@ -4419,6 +4435,12 @@ img.mfp-img {
4419
  border-bottom: 0px;
4420
  display: none;
4421
  }
 
 
 
 
 
 
4422
  .eael-advance-tabs .eael-tabs-nav > ul li.active:after,
4423
  .eael-advance-tabs .eael-tabs-nav > ul li.active-default:after {
4424
  display: block;
1880
  * Infobox Style
1881
  */
1882
  /* Image/Icon On Top */
 
1883
  .eael-infobox .infobox-icon {
1884
  height: auto;
1885
  }
1895
  .eael-infobox:hover .infobox-icon .infobox-icon-wrap {
1896
  transform: scale(1.1);
1897
  }
 
 
 
1898
  /* For Content Alignment */
1899
  .eael-infobox-content-align-left .eael-infobox .infobox-icon,
1900
  .eael-infobox-content-align-left .eael-infobox .infobox-content {
1909
  text-align: center;
1910
  }
1911
  /* For icon background shape */
 
1912
  .eael-infobox-icon-bg-shape-square .infobox-icon .infobox-icon-wrap,
1913
  .eael-infobox-icon-bg-shape-radius .infobox-icon .infobox-icon-wrap,
1914
  .eael-infobox-icon-bg-shape-circle .infobox-icon .infobox-icon-wrap {
2713
  .eael-pricing.style-1 .eael-pricing-item .price-period {
2714
  color: #999;
2715
  }
2716
+ .eael-pricing.style-1 .eael-pricing-item .body ul {
2717
  display: block;
2718
  width: 100%;
2719
  margin-bottom: 15px;
2804
  text-transform: uppercase;
2805
  padding: 5px 15px;
2806
  }
2807
+ .eael-pricing.style-2 .eael-pricing-item .eael-pricing-icon .icon {
2808
  display: inline-block;
2809
  position: relative;
2810
  width: 80px;
2897
  .eael-pricing.style-2 .eael-pricing-item .price-period {
2898
  color: #999;
2899
  }
2900
+ .eael-pricing.style-2 .eael-pricing-item .body ul {
2901
  display: block;
2902
  width: 100%;
2903
  margin-bottom: 15px;
3105
  width: 100%;
3106
  }
3107
 
3108
+ /**
3109
+ * WPForms
3110
+ */
3111
+ .eael-wpforms .wpforms-container .wpforms-form input[type=submit],
3112
+ .eael-wpforms .wpforms-container .wpforms-form button[type=submit],
3113
+ .eael-wpforms .wpforms-container .wpforms-form .wpforms-page-button {
3114
+ border: 0;
3115
+ }
3116
+ .eael-wpforms .wpforms-container .wpforms-form input[type=submit]:hover,
3117
+ .eael-wpforms .wpforms-container .wpforms-form button[type=submit]:hover,
3118
+ .eael-wpforms .wpforms-container .wpforms-form .wpforms-page-button:hover {
3119
+ border: 0;
3120
+ }
3121
+ .eael-wpforms .wpforms-container .wpforms-form input[type=checkbox],
3122
+ .eael-wpforms .wpforms-container .wpforms-form input[type=radio] {
3123
+ padding: 3px;
3124
+ }
3125
+ .eael-wpforms .wpforms-container .wpforms-form .wpforms-field-label {
3126
+ display: none;
3127
+ }
3128
+ .eael-wpforms .wpforms-container .wpforms-form .wpforms-field-name .wpforms-field-row {
3129
+ max-width: 100%;
3130
+ }
3131
+ .eael-wpforms .wpforms-container .wpforms-field input:not([type=radio]):not([type=checkbox]):not([type=submit]):not([type=button]):not([type=image]):not([type=file]),
3132
+ .eael-wpforms .wpforms-container .wpforms-field textarea,
3133
+ .eael-wpforms .wpforms-container .wpforms-field select {
3134
+ max-width: 100% !important;
3135
+ }
3136
+ .eael-wpforms-labels-yes .wpforms-container .wpforms-form .wpforms-field-label {
3137
+ display: block;
3138
+ }
3139
+
3140
+ .eael-wpforms-form-button-full-width .wpforms-submit-container .wpforms-submit {
3141
+ width: 100%;
3142
+ }
3143
+
3144
  /**
3145
  * Social Feeds
3146
  */
3147
+
3148
+ .swiper-container-wrap .swiper-slide .eael-social-feed-element img {
3149
+ width: 100%;
3150
+ }
3151
  /* Twitter Feed Styles */
 
3152
  .eael-social-feed-element.hidden {
3153
  background-color:red !important;
3154
  }
3160
  content: "";
3161
  clear: both;
3162
  }
 
 
 
 
3163
  .eael-social-feed-element .pull-left {
3164
  float:left;
3165
  margin-right: 10px;
3169
  }
3170
  .eael-social-feed-element img {
3171
  width: 100%;
 
3172
  height: auto;
3173
  border: 0;
3174
  vertical-align: middle;
3282
  transition: .4s;
3283
  background: #fff;
3284
  }
 
 
 
3285
  .eael-social-feed-element .social-network-icon {
3286
  opacity:0.7;
3287
  }
3418
  */
3419
 
3420
  /* General Style */
 
3421
  .eael-data-table-wrap .eael-data-tables_wrapper {
3422
  display: flex;
3423
  flex-flow: row wrap;
3456
  color: #fff;
3457
  background: #4a4893;
3458
  }
 
 
3459
  .eael-data-table-wrap .eael-data-tables_paginate .paginate_button.disabled {
3460
  cursor: no-drop;
3461
  background: #f2f2f2;
3512
  border-collapse: collapse;
3513
  margin: 0px;
3514
  }
 
3515
  .eael-data-table thead tr {
3516
  text-align: left;
3517
  }
3529
  .eael-data-table thead tr th:last-child {
3530
  border: 0px;
3531
  }
 
3532
  .eael-data-table tbody tr {
3533
 
3534
  }
4011
  flex-flow: 1 1 100%;
4012
  align-items: center;
4013
  justify-content: center;
4014
+ z-index: 1;
4015
  top: 0px;
4016
  left: 0px;
4017
  right: 0px;
4292
  }
4293
 
4294
  @media screen and (max-width: 800px) {
 
 
 
 
 
4295
  .eael-img-accordion {
4296
  flex-direction: column;
4297
  }
4435
  border-bottom: 0px;
4436
  display: none;
4437
  }
4438
+
4439
+ .eael-advance-tabs.active-caret-on .eael-tabs-nav > ul li.active:after,
4440
+ .eael-advance-tabs.active-caret-on .eael-tabs-nav > ul li.active-default:after{
4441
+ display: none;
4442
+ }
4443
+
4444
  .eael-advance-tabs .eael-tabs-nav > ul li.active:after,
4445
  .eael-advance-tabs .eael-tabs-nav > ul li.active-default:after {
4446
  display: block;
assets/img/flexia-preview.jpg CHANGED
Binary file
assets/js/eael-scripts.js CHANGED
@@ -1,5 +1,5 @@
1
  (function ($) {
2
- "use strict";
3
 
4
  var FilterGallery = function( $scope, $ ) {
5
  var filtergallery_elem = $scope.find('.eael-filter-gallery-wrapper').eq(0);
@@ -51,7 +51,264 @@
51
  });
52
  }
53
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
54
  $(window).on('elementor/frontend/init', function () {
55
  elementorFrontend.hooks.addAction('frontend/element_ready/eael-filterable-gallery.default', FilterGallery);
 
 
 
 
 
56
  });
57
  }(jQuery));
1
  (function ($) {
2
+ "use strict";
3
 
4
  var FilterGallery = function( $scope, $ ) {
5
  var filtergallery_elem = $scope.find('.eael-filter-gallery-wrapper').eq(0);
51
  });
52
  }
53
 
54
+ var FacebookFeedHandler = function ($scope, $) {
55
+ var loadingFeed = $scope.find( '.eael-loading-feed' );
56
+ var $fbCarousel = $scope.find('.eael-facebook-feed-layout-wrapper').eq(0),
57
+ $name = ($fbCarousel.data("facebook-feed-ac-name") !== undefined) ? $fbCarousel.data("facebook-feed-ac-name") : '',
58
+ $limit = ($fbCarousel.data("facebook-feed-post-limit") !== undefined) ? $fbCarousel.data("facebook-feed-post-limit") : '',
59
+ $app_id = ($fbCarousel.data("facebook-feed-app-id") !== undefined) ? $fbCarousel.data("facebook-feed-app-id") : '',
60
+ $app_secret = ($fbCarousel.data("facebook-feed-app-secret") !== undefined) ? $fbCarousel.data("facebook-feed-app-secret") : '',
61
+ $length = ($fbCarousel.data("facebook-feed-content-length") !== undefined) ? $fbCarousel.data("facebook-feed-content-length") : 400,
62
+ $media = ($fbCarousel.data("facebook-feed-media") !== undefined) ? $fbCarousel.data("facebook-feed-media") : false,
63
+ $feed_type = ($fbCarousel.data("facebook-feed-type") !== undefined) ? $fbCarousel.data("facebook-feed-type") : false,
64
+ $carouselId = ($fbCarousel.data("facebook-feed-id") !== undefined) ? $fbCarousel.data("facebook-feed-id") : ' ';
65
+ // Facebook Feed Init
66
+ function eael_facebook_feeds() {
67
+ var $access_token = ($app_id+'|'+$app_secret).toString();
68
+ var $id_name = $name.toString();
69
+ $( '#eael-facebook-feed-'+ $carouselId +'.eael-facebook-feed-layout-container' ).socialfeed({
70
+
71
+ facebook:{
72
+ accounts:[$id_name],
73
+ limit: $limit,
74
+ access_token: $access_token
75
+ },
76
+
77
+ // GENERAL SETTINGS
78
+ length: $length,
79
+ show_media: $media,
80
+ template_html: '<div class="eael-social-feed-element {{? !it.moderation_passed}}hidden{{?}}" dt-create="{{=it.dt_create}}\" social-feed-id = "{{=it.id}}">\
81
+ {{=it.attachment}}\
82
+ <div class="eael-content">\
83
+ <a class="pull-left auth-img" href="{{=it.author_link}}" target="_blank">\
84
+ <img class="media-object" src="{{=it.author_picture}}">\
85
+ </a>\
86
+ <div class="media-body">\
87
+ <p>\
88
+ <i class="fa fa-{{=it.social_network}} social-feed-icon"></i>\
89
+ <span class="author-title">{{=it.author_name}}</span>\
90
+ <span class="muted pull-right social-feed-date"> {{=it.time_ago}}</span>\
91
+ </p>\
92
+ <div class="text-wrapper">\
93
+ <p class="social-feed-text">{{=it.text}} </p>\
94
+ <p><a href="{{=it.link}}" target="_blank" class="read-more-link">Read More</a></p>\
95
+ </div>\
96
+ </div>\
97
+ </div>\
98
+ </div>',
99
+ });
100
+ }
101
+
102
+ // Facebook Feed Masonry View
103
+ function eael_facebook_feed_masonry() {
104
+ $('.eael-facebook-feed-layout-container.masonry-view').masonry({
105
+ itemSelector: '.eael-social-feed-element',
106
+ percentPosition: true,
107
+ columnWidth: '.eael-social-feed-element'
108
+ });
109
+ }
110
+
111
+ $.ajax({
112
+ url: eael_facebook_feeds(),
113
+ beforeSend: function() {
114
+ loadingFeed.addClass( 'show-loading' );
115
+ },
116
+ success: function() {
117
+ if($feed_type == 'masonry') {
118
+ setTimeout(function() {
119
+ eael_facebook_feed_masonry();
120
+ }, 2000);
121
+
122
+ }
123
+ loadingFeed.removeClass( 'show-loading' );
124
+ },
125
+ error: function() {
126
+ console.log('error loading');
127
+ }
128
+ });
129
+
130
+
131
+ };
132
+
133
+ var TwitterFeedHandler = function ($scope, $) {
134
+ var loadingFeed = $scope.find( '.eael-loading-feed' );
135
+ var $twitterFeed = $scope.find('.eael-twitter-feed-layout-wrapper').eq(0),
136
+ $name = ($twitterFeed.data("twitter-feed-ac-name") !== undefined) ? $twitterFeed.data("twitter-feed-ac-name") : '',
137
+ $limit = ($twitterFeed.data("twitter-feed-post-limit") !== undefined) ? $twitterFeed.data("twitter-feed-post-limit") : '',
138
+ $hash_tag = ($twitterFeed.data("twitter-feed-hashtag-name") !== undefined) ? $twitterFeed.data("twitter-feed-hashtag-name") : '',
139
+ $key = ($twitterFeed.data("twitter-feed-consumer-key") !== undefined) ? $twitterFeed.data("twitter-feed-consumer-key") : '',
140
+ $app_secret = ($twitterFeed.data("twitter-feed-consumer-secret") !== undefined) ? $twitterFeed.data("twitter-feed-consumer-secret") : '',
141
+ $length = ($twitterFeed.data("twitter-feed-content-length") !== undefined) ? $twitterFeed.data("twitter-feed-content-length") : 400,
142
+ $media = ($twitterFeed.data("twitter-feed-media") !== undefined) ? $twitterFeed.data("twitter-feed-media") : false,
143
+ $feed_type = ($twitterFeed.data("twitter-feed-type") !== undefined) ? $twitterFeed.data("twitter-feed-type") : false,
144
+ $carouselId = ($twitterFeed.data("twitter-feed-id") !== undefined) ? $twitterFeed.data("twitter-feed-id") : ' ';
145
+
146
+ var $id_name = $name.toString();
147
+ var $hash_tag_name = $hash_tag.toString();
148
+ var $key_name = $key.toString();
149
+ var $app_secret = $app_secret.toString();
150
+
151
+ function eael_twitter_feeds() {
152
+ $( '#eael-twitter-feed-'+ $carouselId +'.eael-twitter-feed-layout-container' ).socialfeed({
153
+ // TWITTER
154
+ twitter:{
155
+ accounts: [ $id_name , $hash_tag_name ],
156
+ limit: $limit,
157
+ consumer_key: $key_name,
158
+ consumer_secret: $app_secret,
159
+ },
160
+
161
+ // GENERAL SETTINGS
162
+ length: $length,
163
+ show_media: $media,
164
+ template_html: '<div class="eael-social-feed-element {{? !it.moderation_passed}}hidden{{?}}" dt-create="{{=it.dt_create}}" social-feed-id = "{{=it.id}}">\
165
+ <div class="eael-content">\
166
+ <a class="pull-left auth-img" href="{{=it.author_link}}" target="_blank">\
167
+ <img class="media-object" src="{{=it.author_picture}}">\
168
+ </a>\
169
+ <div class="media-body">\
170
+ <p>\
171
+ <i class="fa fa-{{=it.social_network}} social-feed-icon"></i>\
172
+ <span class="author-title">{{=it.author_name}}</span>\
173
+ <span class="muted pull-right social-feed-date"> {{=it.time_ago}}</span>\
174
+ </p>\
175
+ <div class="text-wrapper">\
176
+ <p class="social-feed-text">{{=it.text}} </p>\
177
+ <p><a href="{{=it.link}}" target="_blank" class="read-more-link">Read More <i class="fa fa-angle-double-right"></i></a></p>\
178
+ </div>\
179
+ </div>\
180
+ </div>\
181
+ {{=it.attachment}}\
182
+ </div>',
183
+ });
184
+ }
185
+
186
+
187
+ //Twitter Feed masonry View
188
+
189
+ function eael_twitter_feed_masonry() {
190
+ $('.eael-twitter-feed-layout-container.masonry-view').masonry({
191
+ itemSelector: '.eael-social-feed-element',
192
+ percentPosition: true,
193
+ columnWidth: '.eael-social-feed-element'
194
+ });
195
+ }
196
+
197
+ $.ajax({
198
+ url: eael_twitter_feeds(),
199
+ beforeSend: function() {
200
+ loadingFeed.addClass( 'show-loading' );
201
+ },
202
+ success: function() {
203
+ if($feed_type == 'masonry') {
204
+ setTimeout(function() {
205
+ eael_twitter_feed_masonry();
206
+ }, 2000);
207
+
208
+ }
209
+ loadingFeed.removeClass( 'show-loading' );
210
+ },
211
+ error: function() {
212
+ console.log('error loading');
213
+ }
214
+ });
215
+
216
+ }
217
+
218
+ var AdvanceTabHandler = function ($scope, $) {
219
+ console.log('running');
220
+ var $currentTab = $scope.find('.eael-advance-tabs'),
221
+ $currentTabId = '#' + $currentTab.attr('id').toString();
222
+
223
+ $($currentTabId + ' .eael-tabs-nav ul li').each( function(index) {
224
+ if( $(this).hasClass('active-default') ) {
225
+ $($currentTabId + ' .eael-tabs-nav > ul li').removeClass('active').addClass('inactive');
226
+ $(this).removeClass('inactive');
227
+ }else {
228
+ if( index == 0 ) {
229
+ $(this).removeClass('inactive').addClass('active');
230
+
231
+ }
232
+ }
233
+ } );
234
+
235
+ $($currentTabId + ' .eael-tabs-content div').each( function(index) {
236
+ if( $(this).hasClass('active-default') ) {
237
+ $($currentTabId + ' .eael-tabs-content > div').removeClass('active');
238
+ }else {
239
+ if( index == 0 ) {
240
+ $(this).removeClass('inactive').addClass('active');
241
+ }
242
+ }
243
+ } );
244
+
245
+ $($currentTabId + ' .eael-tabs-nav ul li').click(function(){
246
+ var currentTabIndex = $(this).index();
247
+ var tabsContainer = $(this).closest('.eael-advance-tabs');
248
+ var tabsNav = $(tabsContainer).children('.eael-tabs-nav').children('ul').children('li');
249
+ var tabsContent = $(tabsContainer).children('.eael-tabs-content').children('div');
250
+
251
+ $(this).parent('li').addClass('active');
252
+
253
+ $(tabsNav).removeClass('active active-default').addClass('inactive');
254
+ $(this).addClass('active').removeClass('inactive');
255
+
256
+ $(tabsContent).removeClass('active').addClass('inactive');
257
+ $(tabsContent).eq(currentTabIndex).addClass('active').removeClass('inactive');
258
+
259
+ $(tabsContent).each( function(index) {
260
+ $(this).removeClass('active-default');
261
+ });
262
+ });
263
+ }
264
+
265
+ /* ------------------------------ */
266
+ /* Post Timeline
267
+ /* ------------------------------ */
268
+ var postTimelineHandler = function ($scope, $) {
269
+ var $_this = $scope.find('.eael-post-timeline'),
270
+ $currentTimelineId = '#' + $_this.attr('id'),
271
+ $site_url = $_this.data('url'),
272
+ $total_posts = $_this.data('total_posts'),
273
+ $timeline_id = $_this.data('timeline_id'),
274
+ $post_type = $_this.data('post_type'),
275
+ $posts_per_page = $_this.data('posts_per_page'),
276
+ $post_order = $_this.data('post_order'),
277
+ $show_images = $_this.data('show_images'),
278
+ $show_title = $_this.data('show_title'),
279
+ $show_excerpt = $_this.data('show_excerpt'),
280
+ $excerpt_length = $_this.data('excerpt_length'),
281
+ $btn_text = $_this.data('btn_text'),
282
+ $categories = $_this.data('categories');
283
+
284
+ var options = {
285
+ siteUrl: $site_url,
286
+ totalPosts: $total_posts,
287
+ loadMoreBtn: $( '#eael-load-more-btn-'+$timeline_id ),
288
+ postContainer: $( '.eael-post-appender-'+$timeline_id ),
289
+ postStyle: 'timeline',
290
+ }
291
+
292
+ var settings = {
293
+ postType: $post_type,
294
+ perPage: parseInt( $posts_per_page, 10 ),
295
+ postOrder: $post_order,
296
+ showImage: $show_images,
297
+ showTitle: $show_title,
298
+ showExcerpt: $show_excerpt,
299
+ excerptLength: parseInt( $excerpt_length, 10 ),
300
+ btnText: $btn_text,
301
+ categories: $categories
302
+ }
303
+ loadMore( options, settings );
304
+ }
305
+
306
  $(window).on('elementor/frontend/init', function () {
307
  elementorFrontend.hooks.addAction('frontend/element_ready/eael-filterable-gallery.default', FilterGallery);
308
+ elementorFrontend.hooks.addAction('frontend/element_ready/eael-adv-tabs.default', AdvanceTabHandler);
309
+ elementorFrontend.hooks.addAction('frontend/element_ready/eael-post-timeline.default', postTimelineHandler);
310
+ elementorFrontend.hooks.addAction('frontend/element_ready/eael-filterable-gallery.default', FilterGallery);
311
+ elementorFrontend.hooks.addAction('frontend/element_ready/eael-facebook-feed.default', FacebookFeedHandler);
312
+ elementorFrontend.hooks.addAction('frontend/element_ready/eael-twitter-feed.default', TwitterFeedHandler);
313
  });
314
  }(jQuery));
assets/social-feeds/jquery.socialfeed.js CHANGED
@@ -151,22 +151,19 @@ if (typeof Object.create !== 'function') {
151
  var img = new Image();
152
  var imgSrc = image.attr("src");
153
 
154
- $(img).load(function() {
155
-
156
  if (img.width < options.media_min_width) {
157
  image.hide();
158
  }
159
  // garbage collect img
160
  delete img;
161
-
162
- }).error(function() {
163
  // image couldnt be loaded
164
  image.hide();
165
 
166
  }).attr({
167
  src: imgSrc
168
  });
169
-
170
  }
171
 
172
  loaded_post_count++;
@@ -236,7 +233,11 @@ if (typeof Object.create !== 'function') {
236
  var userid = account.substr(1);
237
  cb.__call(
238
  "statuses_userTimeline",
239
- "id=" + userid + "&count=" + options.twitter.limit,
 
 
 
 
240
  Feed.twitter.utility.getPosts,
241
  true // this parameter required
242
  );
@@ -245,7 +246,11 @@ if (typeof Object.create !== 'function') {
245
  var hashtag = account.substr(1);
246
  cb.__call(
247
  "search_tweets",
248
- "q=" + hashtag + "&count=" + options.twitter.limit,
 
 
 
 
249
  function(reply) {
250
  Feed.twitter.utility.getPosts(reply.statuses);
251
  },
@@ -275,7 +280,9 @@ if (typeof Object.create !== 'function') {
275
  post.author_picture = element.user.profile_image_url_https;
276
  post.post_url = post.author_link + '/status/' + element.id_str;
277
  post.author_name = element.user.name;
278
- post.message = element.text;
 
 
279
  post.description = '';
280
  post.link = 'http://twitter.com/' + element.user.screen_name + '/status/' + element.id_str;
281
 
@@ -309,14 +316,14 @@ if (typeof Object.create !== 'function') {
309
  var username = account.substr(1);
310
  Feed.facebook.utility.getUserId(username, function(userdata) {
311
  if (userdata.id !== '') {
312
- request_url = Feed.facebook.graph + 'v2.4/' + userdata.id + '/posts'+ fields + limit + query_extention;
313
  proceed(request_url);
314
  }
315
  });
316
  break;
317
  case '!':
318
  var page = account.substr(1);
319
- request_url = Feed.facebook.graph + 'v2.4/' + page + '/feed'+ fields + limit + query_extention;
320
  proceed(request_url);
321
  break;
322
  default:
@@ -787,4 +794,4 @@ if (typeof Object.create !== 'function') {
787
  })
788
  };
789
 
790
- })(jQuery);
151
  var img = new Image();
152
  var imgSrc = image.attr("src");
153
 
154
+ $(img).on('load',function() {
 
155
  if (img.width < options.media_min_width) {
156
  image.hide();
157
  }
158
  // garbage collect img
159
  delete img;
160
+ }).on('error', function() {
 
161
  // image couldnt be loaded
162
  image.hide();
163
 
164
  }).attr({
165
  src: imgSrc
166
  });
 
167
  }
168
 
169
  loaded_post_count++;
233
  var userid = account.substr(1);
234
  cb.__call(
235
  "statuses_userTimeline",
236
+ {
237
+ "id": userid,
238
+ "count": options.twitter.limit,
239
+ "tweet_mode": typeof options.twitter.tweet_mode === "undefined" ? "compatibility" : options.twitter.tweet_mode
240
+ },
241
  Feed.twitter.utility.getPosts,
242
  true // this parameter required
243
  );
246
  var hashtag = account.substr(1);
247
  cb.__call(
248
  "search_tweets",
249
+ {
250
+ "q": hashtag,
251
+ "count": options.twitter.limit,
252
+ "tweet_mode": typeof options.twitter.tweet_mode === "undefined" ? "compatibility" : options.twitter.tweet_mode
253
+ },
254
  function(reply) {
255
  Feed.twitter.utility.getPosts(reply.statuses);
256
  },
280
  post.author_picture = element.user.profile_image_url_https;
281
  post.post_url = post.author_link + '/status/' + element.id_str;
282
  post.author_name = element.user.name;
283
+ post.message = typeof element.text === "undefined"
284
+ ? element.full_text.substr(element.display_text_range[0], element.display_text_range[1])
285
+ : element.text;
286
  post.description = '';
287
  post.link = 'http://twitter.com/' + element.user.screen_name + '/status/' + element.id_str;
288
 
316
  var username = account.substr(1);
317
  Feed.facebook.utility.getUserId(username, function(userdata) {
318
  if (userdata.id !== '') {
319
+ request_url = Feed.facebook.graph + 'v2.12/' + userdata.id + '/posts'+ fields + limit + query_extention;
320
  proceed(request_url);
321
  }
322
  });
323
  break;
324
  case '!':
325
  var page = account.substr(1);
326
+ request_url = Feed.facebook.graph + 'v2.12/' + page + '/feed'+ fields + limit + query_extention;
327
  proceed(request_url);
328
  break;
329
  default:
794
  })
795
  };
796
 
797
+ })(jQuery);
elements/advance-tabs/advance-tabs.php CHANGED
@@ -13,6 +13,12 @@ class Widget_Eael_Adv_Tabs extends Widget_Base {
13
  return esc_html__( 'EA Advanced Tabs', 'essential-addons-elementor' );
14
  }
15
 
 
 
 
 
 
 
16
  public function get_icon() {
17
  return 'eicon-tabs';
18
  }
@@ -709,11 +715,24 @@ class Widget_Eael_Adv_Tabs extends Widget_Base {
709
  $settings = $this->get_settings_for_display();
710
  $eael_find_default_tab = array();
711
  $eael_adv_tab_id = 1;
712
- $eael_adv_tab_content_id = 1;
 
 
 
 
 
 
 
 
 
 
 
 
 
713
  ?>
714
- <div id="eael-advance-tabs-<?php echo esc_attr( $this->get_id() ); ?>" class="eael-advance-tabs <?php echo esc_attr( $settings['eael_adv_tab_layout'] ); ?>">
715
  <div class="eael-tabs-nav">
716
- <ul class="<?php echo esc_attr( $settings['eael_adv_tab_icon_position'] ); ?>">
717
  <?php foreach( $settings['eael_adv_tabs_tab'] as $tab ) : ?>
718
  <li class="<?php echo esc_attr( $tab['eael_adv_tabs_tab_show_as_default'] ); ?>"><?php if( $settings['eael_adv_tabs_icon_show'] === 'yes' ) :
719
  if( $tab['eael_adv_tabs_icon_type'] === 'icon' ) : ?>
@@ -743,59 +762,6 @@ class Widget_Eael_Adv_Tabs extends Widget_Base {
743
  <?php endforeach; ?>
744
  </div>
745
  </div>
746
- <script>
747
- jQuery(document).ready(function($) {
748
- $('#eael-advance-tabs-<?php echo esc_attr( $this->get_id() ); ?> .eael-tabs-nav ul li').each( function(index) {
749
- if( $(this).hasClass('active-default') ) {
750
- $('#eael-advance-tabs-<?php echo esc_attr( $this->get_id() ); ?> .eael-tabs-nav > ul li').removeClass('active').addClass('inactive');
751
- $(this).removeClass('inactive');
752
- }else {
753
- if( index == 0 ) {
754
- $(this).removeClass('inactive').addClass('active');
755
-
756
- }
757
- }
758
-
759
- } );
760
- $('#eael-advance-tabs-<?php echo esc_attr( $this->get_id() ); ?> .eael-tabs-content div').each( function(index) {
761
- if( $(this).hasClass('active-default') ) {
762
- $('#eael-advance-tabs-<?php echo esc_attr( $this->get_id() ); ?> .eael-tabs-content > div').removeClass('active');
763
- }else {
764
- if( index == 0 ) {
765
- $(this).removeClass('inactive').addClass('active');
766
- }
767
- }
768
-
769
- } );
770
- $('#eael-advance-tabs-<?php echo esc_attr( $this->get_id() ); ?> .eael-tabs-nav ul li').click(function(){
771
-
772
- var currentTabIndex = $(this).index();
773
- var tabsContainer = $(this).closest('.eael-advance-tabs');
774
- var tabsNav = $(tabsContainer).children('.eael-tabs-nav').children('ul').children('li');
775
- var tabsContent = $(tabsContainer).children('.eael-tabs-content').children('div');
776
-
777
- $(this).parent('li').addClass('active');
778
-
779
- $(tabsNav).removeClass('active active-default').addClass('inactive');
780
- $(this).addClass('active').removeClass('inactive');
781
-
782
- $(tabsContent).removeClass('active').addClass('inactive');
783
- $(tabsContent).eq(currentTabIndex).addClass('active').removeClass('inactive');
784
-
785
- $(tabsContent).each( function(index) {
786
- $(this).removeClass('active-default');
787
- });
788
-
789
- });
790
- });
791
- </script>
792
- <?php if( $settings['eael_adv_tabs_tab_caret_show'] !== 'yes' ) : ?>
793
- <style>
794
- #eael-advance-tabs-<?php echo esc_attr( $this->get_id() ); ?> .eael-tabs-nav > ul li.active:after, #eael-advance-tabs-<?php echo esc_attr( $this->get_id() ); ?> .eael-tabs-nav > ul li.active-default:after {
795
- display: none;
796
- }
797
- </style>
798
- <?php endif; ?>
799
  <?php
800
  }
801
 
13
  return esc_html__( 'EA Advanced Tabs', 'essential-addons-elementor' );
14
  }
15
 
16
+ public function get_script_depends() {
17
+ return [
18
+ 'eael-scripts'
19
+ ];
20
+ }
21
+
22
  public function get_icon() {
23
  return 'eicon-tabs';
24
  }
715
  $settings = $this->get_settings_for_display();
716
  $eael_find_default_tab = array();
717
  $eael_adv_tab_id = 1;
718
+ $eael_adv_tab_content_id = 1;
719
+
720
+ $this->add_render_attribute(
721
+ 'eael_tab_wrapper',
722
+ [
723
+ 'id' => "eael-advance-tabs-{$this->get_id()}",
724
+ 'class' => [ 'eael-advance-tabs', $settings['eael_adv_tab_layout'] ],
725
+ 'data-tabid' => $this->get_id()
726
+ ]
727
+ );
728
+ if($settings['eael_adv_tabs_tab_caret_show'] != 'yes')
729
+ $this->add_render_attribute('eael_tab_wrapper', 'class', 'active-caret-on');
730
+
731
+ $this->add_render_attribute( 'eael_tab_icon_position', 'class', esc_attr($settings['eael_adv_tab_icon_position']) );
732
  ?>
733
+ <div <?php echo $this->get_render_attribute_string('eael_tab_wrapper'); ?>>
734
  <div class="eael-tabs-nav">
735
+ <ul <?php echo $this->get_render_attribute_string('eael_tab_icon_position'); ?>>
736
  <?php foreach( $settings['eael_adv_tabs_tab'] as $tab ) : ?>
737
  <li class="<?php echo esc_attr( $tab['eael_adv_tabs_tab_show_as_default'] ); ?>"><?php if( $settings['eael_adv_tabs_icon_show'] === 'yes' ) :
738
  if( $tab['eael_adv_tabs_icon_type'] === 'icon' ) : ?>
762
  <?php endforeach; ?>
763
  </div>
764
  </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
765
  <?php
766
  }
767
 
elements/data-table/data-table.php CHANGED
@@ -181,12 +181,22 @@ class Widget_Eael_Data_Table extends Widget_Base {
181
  'type' => Controls_Manager::URL,
182
  'label_block' => true,
183
  'default' => [
184
- 'url' => '',
185
- 'is_external' => '',
186
- ],
187
- 'show_external' => true,
188
- 'separator' => 'before',
189
- 'condition' => [
 
 
 
 
 
 
 
 
 
 
190
  'eael_data_table_content_row_type' => 'col'
191
  ]
192
  ]
@@ -603,7 +613,8 @@ class Widget_Eael_Data_Table extends Widget_Base {
603
  'title' => $content_row['eael_data_table_content_row_title'],
604
  'link_url' => $content_row['eael_data_table_content_row_title_link']['url'],
605
  'link_target' => $target,
606
- 'nofollow' => $nofollow
 
607
  ];
608
  }
609
  }
@@ -622,7 +633,7 @@ class Widget_Eael_Data_Table extends Widget_Base {
622
  <?php if( $header_title['eael_data_table_header_col_img_enabled'] == 'true' ) : ?>
623
  <img src="<?php echo esc_url( $header_title['eael_data_table_header_col_img']['url'] ) ?>" class="eael-data-table-th-img" style="width:<?php echo $header_title['eael_data_table_header_col_img_size'] ?>px" alt="<?php echo esc_attr( $header_title['eael_data_table_header_col'] ); ?>">
624
  <?php endif; ?>
625
- <?php echo esc_html__( $header_title['eael_data_table_header_col'], 'essential-addons-elementor' ); ?>
626
  </th>
627
  <?php endforeach; ?>
628
  </tr>
@@ -635,11 +646,11 @@ class Widget_Eael_Data_Table extends Widget_Base {
635
  if( $table_tr[$i]['id'] == $table_td[$j]['row_id'] ) {
636
  ?>
637
  <?php if( !empty( $table_td[$j]['link_url'] ) ) : ?>
638
- <td>
639
  <a href="<?php echo esc_attr( $table_td[$j]['link_url'] ); ?>" <?php echo $table_td[$j]['link_target'] ?> <?php echo $table_td[$j]['nofollow'] ?>><?php echo $table_td[$j]['title']; ?></a>
640
  </td>
641
  <?php else: ?>
642
- <td><?php echo $table_td[$j]['title']; ?></td>
643
  <?php endif; ?>
644
  <?php
645
  }
@@ -663,4 +674,4 @@ class Widget_Eael_Data_Table extends Widget_Base {
663
  }
664
 
665
 
666
- Plugin::instance()->widgets_manager->register_widget_type( new Widget_Eael_Data_Table() );
181
  'type' => Controls_Manager::URL,
182
  'label_block' => true,
183
  'default' => [
184
+ 'url' => '',
185
+ 'is_external' => '',
186
+ ],
187
+ 'show_external' => true,
188
+ 'separator' => 'before',
189
+ 'condition' => [
190
+ 'eael_data_table_content_row_type' => 'col'
191
+ ]
192
+ ],
193
+ [
194
+ 'name' => 'eael_data_table_content_row_colspan',
195
+ 'label' => esc_html__( 'Colspan', 'essential-addons-elementor' ),
196
+ 'type' => Controls_Manager::NUMBER,
197
+ 'default' => 1,
198
+ 'min' => 1,
199
+ 'condition' => [
200
  'eael_data_table_content_row_type' => 'col'
201
  ]
202
  ]
613
  'title' => $content_row['eael_data_table_content_row_title'],
614
  'link_url' => $content_row['eael_data_table_content_row_title_link']['url'],
615
  'link_target' => $target,
616
+ 'nofollow' => $nofollow,
617
+ 'colspan' => $content_row['eael_data_table_content_row_colspan']
618
  ];
619
  }
620
  }
633
  <?php if( $header_title['eael_data_table_header_col_img_enabled'] == 'true' ) : ?>
634
  <img src="<?php echo esc_url( $header_title['eael_data_table_header_col_img']['url'] ) ?>" class="eael-data-table-th-img" style="width:<?php echo $header_title['eael_data_table_header_col_img_size'] ?>px" alt="<?php echo esc_attr( $header_title['eael_data_table_header_col'] ); ?>">
635
  <?php endif; ?>
636
+ <?php echo __( $header_title['eael_data_table_header_col'], 'essential-addons-elementor' ); ?>
637
  </th>
638
  <?php endforeach; ?>
639
  </tr>
646
  if( $table_tr[$i]['id'] == $table_td[$j]['row_id'] ) {
647
  ?>
648
  <?php if( !empty( $table_td[$j]['link_url'] ) ) : ?>
649
+ <td<?php echo $table_td[$j]['colspan'] > 1 ? ' colspan="'.$table_td[$j]['colspan'].'"' : ''; ?>>
650
  <a href="<?php echo esc_attr( $table_td[$j]['link_url'] ); ?>" <?php echo $table_td[$j]['link_target'] ?> <?php echo $table_td[$j]['nofollow'] ?>><?php echo $table_td[$j]['title']; ?></a>
651
  </td>
652
  <?php else: ?>
653
+ <td<?php echo $table_td[$j]['colspan'] > 1 ? ' colspan="'.$table_td[$j]['colspan'].'"' : ''; ?>><?php echo $table_td[$j]['title']; ?></td>
654
  <?php endif; ?>
655
  <?php
656
  }
674
  }
675
 
676
 
677
+ Plugin::instance()->widgets_manager->register_widget_type( new Widget_Eael_Data_Table() );
elements/facebook-feed/facebook-feed.php CHANGED
@@ -49,7 +49,7 @@ class Widget_Eael_Facebook_Feed extends Widget_Base {
49
  'label' => esc_html__( 'App ID', 'essential-addons-elementor' ),
50
  'type' => Controls_Manager::TEXT,
51
  'label_block' => false,
52
- 'default' => '138195606893948',
53
  'description' => '<a href="https://developers.facebook.com/apps/" target="_blank">Get App ID.</a> Create or select an app and grab the App ID',
54
  ]
55
  );
@@ -60,7 +60,7 @@ class Widget_Eael_Facebook_Feed extends Widget_Base {
60
  'label' => esc_html__( 'App Secret', 'essential-addons-elementor' ),
61
  'type' => Controls_Manager::TEXT,
62
  'label_block' => false,
63
- 'default' => 'e14ec8e0c0d4918d0133d2cf2aca2de9',
64
  'description' => '<a href="https://developers.facebook.com/apps/" target="_blank">Get App Secret.</a> Create or select an app and grab the App ID',
65
  ]
66
  );
@@ -115,6 +115,26 @@ class Widget_Eael_Facebook_Feed extends Widget_Base {
115
  ]
116
  );
117
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
118
  $this->add_control(
119
  'eael_facebook_feed_post_limit',
120
  [
@@ -210,9 +230,8 @@ class Widget_Eael_Facebook_Feed extends Widget_Base {
210
  ]
211
  );
212
 
213
- $this->end_controls_section();
214
-
215
- $this->start_controls_section(
216
  'eael_section_pro',
217
  [
218
  'label' => __( 'Go Premium for More Features', 'essential-addons-elementor' )
@@ -570,79 +589,29 @@ class Widget_Eael_Facebook_Feed extends Widget_Base {
570
 
571
  protected function render( ) {
572
 
573
- $settings = $this->get_settings();
574
-
575
- if( 'list' == $settings['eael_facebook_feed_type'] ) {
576
- $feed_class = 'list-view';
577
- }elseif( 'masonry' == $settings['eael_facebook_feed_type'] ) {
578
- $feed_class = 'masonry-view';
579
- }
580
-
581
-
582
- // Get the specific template
583
- if( 'masonry' == $settings['eael_facebook_feed_type'] ) {
584
- $template = 'masonry.php';
585
- }else {
586
- $template = 'list.php';
587
- }
588
-
589
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
590
  ?>
591
- <div class="eael-facebook-feed-wrapper">
592
- <div class="eael-facebook-feed-container <?php echo esc_attr( $feed_class ); ?>"></div>
593
  <div class="eael-loading-feed"><div class="loader"></div></div>
594
  </div>
595
- <script>
596
- jQuery( document ).ready( function($) {
597
- var loadingFeed = $( '.eael-loading-feed' );
598
- /**
599
- * Facebook Feed Init
600
- */
601
- function eael_facebook_feeds() {
602
-
603
- $( '.eael-facebook-feed-container' ).socialfeed({
604
- facebook:{
605
- accounts: ['<?php echo $settings['eael_facebook_feed_ac_name']; ?>'],
606
- limit: <?php echo $settings['eael_facebook_feed_post_limit']; ?>,
607
- access_token: '<?php echo $settings['eael_facebook_feed_app_id']; ?>|<?php echo $settings['eael_facebook_feed_app_secret']; ?>'
608
- },
609
-
610
- // GENERAL SETTINGS
611
- length: <?php if( !empty( $settings['eael_facebook_feed_content_length'] ) ) : echo $settings['eael_facebook_feed_content_length']; else: echo '400'; endif; ?>,
612
- show_media: <?php if( !empty( $settings['eael_facebook_feed_media'] ) ) : echo $settings['eael_facebook_feed_media']; else: echo 'false'; endif; ?>,
613
- template: '<?php echo plugins_url( '/', __FILE__ ) . 'templates/'.$template; ?>',
614
- });
615
- }
616
- /**
617
- * Facebook Feed Masonry View
618
- */
619
- function eael_facebook_feed_masonry() {
620
- $('.eael-facebook-feed-container').masonry({
621
- itemSelector: '.eael-social-feed-element',
622
- percentPosition: true,
623
- columnWidth: '.eael-social-feed-element'
624
- });
625
- }
626
 
627
- $.ajax({
628
- url: eael_facebook_feeds(),
629
- beforeSend: function() {
630
- loadingFeed.addClass( 'show-loading' );
631
- },
632
- success: function() {
633
- <?php if( 'masonry' == $settings['eael_facebook_feed_type'] ) : ?>
634
- eael_facebook_feed_masonry();
635
- <?php endif; ?>
636
- loadingFeed.removeClass( 'show-loading' );
637
- },
638
- error: function() {
639
- console.log('error loading');
640
- }
641
- });
642
-
643
- });
644
-
645
- </script>
646
 
647
  <?php
648
  echo '<style>';
49
  'label' => esc_html__( 'App ID', 'essential-addons-elementor' ),
50
  'type' => Controls_Manager::TEXT,
51
  'label_block' => false,
52
+ 'default' => '',
53
  'description' => '<a href="https://developers.facebook.com/apps/" target="_blank">Get App ID.</a> Create or select an app and grab the App ID',
54
  ]
55
  );
60
  'label' => esc_html__( 'App Secret', 'essential-addons-elementor' ),
61
  'type' => Controls_Manager::TEXT,
62
  'label_block' => false,
63
+ 'default' => '',
64
  'description' => '<a href="https://developers.facebook.com/apps/" target="_blank">Get App Secret.</a> Create or select an app and grab the App ID',
65
  ]
66
  );
115
  ]
116
  );
117
 
118
+ $this->add_responsive_control(
119
+ 'eael_facebook_feed_column_spacing',
120
+ [
121
+ 'label' => esc_html__( 'Column spacing', 'essential-addons-elementor' ),
122
+ 'type' => Controls_Manager::SLIDER,
123
+ 'range' => [
124
+ 'px' => [
125
+ 'max' => 50,
126
+ ],
127
+ ],
128
+ 'default' => [
129
+ 'unit' => 'px',
130
+ 'size' => 10,
131
+ ],
132
+ 'selectors' => [
133
+ '{{WRAPPER}} .eael-social-feed-element' => 'padding: {{SIZE}}px;',
134
+ ],
135
+ ]
136
+ );
137
+
138
  $this->add_control(
139
  'eael_facebook_feed_post_limit',
140
  [
230
  ]
231
  );
232
 
233
+ $this->end_controls_section();
234
+ $this->start_controls_section(
 
235
  'eael_section_pro',
236
  [
237
  'label' => __( 'Go Premium for More Features', 'essential-addons-elementor' )
589
 
590
  protected function render( ) {
591
 
592
+ $settings = $this->get_settings();
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
593
 
594
+ if( 'list' == $settings['eael_facebook_feed_type'] ) {
595
+ $feed_class = 'list-view';
596
+ }elseif( 'masonry' == $settings['eael_facebook_feed_type'] ) {
597
+ $feed_class = 'masonry-view';
598
+ }
599
+
600
+ $this->add_render_attribute( 'eael-facebook-feed', 'data-facebook-feed-ac-name', $settings['eael_facebook_feed_ac_name'] );
601
+ $this->add_render_attribute( 'eael-facebook-feed', 'data-facebook-feed-post-limit', $settings['eael_facebook_feed_post_limit'] );
602
+ $this->add_render_attribute( 'eael-facebook-feed', 'data-facebook-feed-app-id', $settings['eael_facebook_feed_app_id'] );
603
+ $this->add_render_attribute( 'eael-facebook-feed', 'data-facebook-feed-app-secret', $settings['eael_facebook_feed_app_secret'] );
604
+ $this->add_render_attribute( 'eael-facebook-feed', 'data-facebook-feed-content-length', $settings['eael_facebook_feed_content_length'] );
605
+ $this->add_render_attribute( 'eael-facebook-feed', 'data-facebook-feed-media', $settings['eael_facebook_feed_media'] );
606
+ $this->add_render_attribute( 'eael-facebook-feed', 'data-facebook-feed-type', $settings['eael_facebook_feed_type'] );
607
+ $this->add_render_attribute( 'eael-facebook-feed', 'data-facebook-feed-id', esc_attr($this->get_id()) );
608
  ?>
609
+ <div class="eael-facebook-feed-wrapper eael-facebook-feed-layout-wrapper" <?php echo $this->get_render_attribute_string( 'eael-facebook-feed' ); ?> >
610
+ <div id="eael-facebook-feed-<?php echo esc_attr($this->get_id()); ?>" class="eael-facebook-feed-container eael-facebook-feed-layout-container <?php echo esc_attr( $feed_class ); ?>"></div>
611
  <div class="eael-loading-feed"><div class="loader"></div></div>
612
  </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
613
 
614
+
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
615
 
616
  <?php
617
  echo '<style>';
elements/facebook-feed/templates/list.php DELETED
@@ -1,24 +0,0 @@
1
- <?php
2
- /**
3
- * Template: Facebook List
4
- */
5
- ?>
6
- <div class="eael-social-feed-element {{? !it.moderation_passed}}hidden{{?}}" dt-create="{{=it.dt_create}}" social-feed-id = "{{=it.id}}">
7
- {{=it.attachment}}
8
- <div class='eael-content'>
9
- <a class="pull-left auth-img" href="{{=it.author_link}}" target="_blank">
10
- <img class="media-object" src="{{=it.author_picture}}">
11
- </a>
12
- <div class="media-body">
13
- <p>
14
- <i class="fa fa-{{=it.social_network}} social-feed-icon"></i>
15
- <span class="author-title">{{=it.author_name}}</span>
16
- <span class="muted pull-right social-feed-date"> {{=it.time_ago}}</span>
17
- </p>
18
- <div class='text-wrapper'>
19
- <p class="social-feed-text">{{=it.text}} </p>
20
- <p><a href="{{=it.link}}" target="_blank" class="read-more-link">Read More</a></p>
21
- </div>
22
- </div>
23
- </div>
24
- </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
elements/facebook-feed/templates/masonry.php DELETED
@@ -1,24 +0,0 @@
1
- <?php
2
- /**
3
- * Template: Facebook Masonry
4
- */
5
- ?>
6
- <div class="eael-social-feed-element {{? !it.moderation_passed}}hidden{{?}}" dt-create="{{=it.dt_create}}" social-feed-id = "{{=it.id}}">
7
- {{=it.attachment}}
8
- <div class='eael-content'>
9
- <a class="pull-left auth-img" href="{{=it.author_link}}" target="_blank">
10
- <img class="media-object" src="{{=it.author_picture}}">
11
- </a>
12
- <div class="media-body">
13
- <p>
14
- <i class="fa fa-{{=it.social_network}} social-feed-icon"></i>
15
- <span class="author-title">{{=it.author_name}}</span>
16
- <span class="muted pull-right social-feed-date"> {{=it.time_ago}}</span>
17
- </p>
18
- <div class='text-wrapper'>
19
- <p class="social-feed-text">{{=it.text}} </p>
20
- <p><a href="{{=it.link}}" target="_blank" class="read-more-link">Read More</a></p>
21
- </div>
22
- </div>
23
- </div>
24
- </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
elements/filterable-gallery/filterable-gallery.php CHANGED
@@ -36,7 +36,16 @@ class Widget_Eael_Filterable_Gallery extends Widget_Base {
36
  [
37
  'label' => esc_html__( 'Filterable Gallery Settings', 'essential-addons-elementor' )
38
  ]
39
- );
 
 
 
 
 
 
 
 
 
40
 
41
  $this->add_control(
42
  'eael_fg_filter_duration',
@@ -925,7 +934,7 @@ class Widget_Eael_Filterable_Gallery extends Widget_Base {
925
  <div id="eael-filter-gallery-wrapper-<?php echo esc_attr( $this->get_id() ); ?>" class="eael-filter-gallery-wrapper" data-grid-style="<?php echo $settings['eael_fg_grid_style']; ?>" data-duration="<?php if( !empty( $settings['eael_fg_filter_duration'] ) ) : echo $settings['eael_fg_filter_duration']; else: echo '500'; endif; ?>" data-effects="<?php echo $fg_animation; ?>" data-popup="<?php echo $settings['eael_fg_show_popup']; ?>" data-gallery-enabled="<?php if( 'true' == $settings['eael_fg_show_popup_gallery'] ) : echo 'true'; else: echo 'false'; endif; ?>">
926
  <div class="eael-filter-gallery-control">
927
  <ul>
928
- <li><a href="javascript:;" class="control" data-filter="all">All</a></li>
929
  <?php foreach( $settings['eael_fg_controls'] as $control ) : ?>
930
  <?php $sorter_filter = $this->sorter_class( $control['eael_fg_control'] ); ?>
931
  <li><a href="javascript:;" class="control" data-filter=".<?php echo esc_attr( $sorter_filter ); ?>-<?php echo esc_attr( $this->get_id() ); ?>"><?php echo $control['eael_fg_control']; ?></a></li>
@@ -972,7 +981,7 @@ class Widget_Eael_Filterable_Gallery extends Widget_Base {
972
  </div>
973
  </div>
974
  <div class="item-content">
975
- <h2 class="title"><a href="<?php echo esc_url( $gallery['eael_fg_gallery_img']['url'] ); ?>" <?php echo $target; ?> <?php echo $nofollow; ?>><?php esc_html_e( $gallery['eael_fg_gallery_item_name'], 'essential-addons-elementor' ); ?></a></h2>
976
  <p><?php echo $gallery['eael_fg_gallery_item_content']; ?></p>
977
  </div>
978
  </div>
36
  [
37
  'label' => esc_html__( 'Filterable Gallery Settings', 'essential-addons-elementor' )
38
  ]
39
+ );
40
+
41
+ $this->add_control(
42
+ 'eael_fg_all_label_text',
43
+ [
44
+ 'label' => esc_html__( 'Gallery All Label', 'essential-addons-elementor' ),
45
+ 'type' => Controls_Manager::TEXT,
46
+ 'default' => 'All',
47
+ ]
48
+ );
49
 
50
  $this->add_control(
51
  'eael_fg_filter_duration',
934
  <div id="eael-filter-gallery-wrapper-<?php echo esc_attr( $this->get_id() ); ?>" class="eael-filter-gallery-wrapper" data-grid-style="<?php echo $settings['eael_fg_grid_style']; ?>" data-duration="<?php if( !empty( $settings['eael_fg_filter_duration'] ) ) : echo $settings['eael_fg_filter_duration']; else: echo '500'; endif; ?>" data-effects="<?php echo $fg_animation; ?>" data-popup="<?php echo $settings['eael_fg_show_popup']; ?>" data-gallery-enabled="<?php if( 'true' == $settings['eael_fg_show_popup_gallery'] ) : echo 'true'; else: echo 'false'; endif; ?>">
935
  <div class="eael-filter-gallery-control">
936
  <ul>
937
+ <li><a href="javascript:;" class="control" data-filter="all"><?php echo ( isset($settings['eael_fg_all_label_text']) && ! empty($settings['eael_fg_all_label_text']) ? esc_attr($settings['eael_fg_all_label_text']) : 'All'); ?></a></li>
938
  <?php foreach( $settings['eael_fg_controls'] as $control ) : ?>
939
  <?php $sorter_filter = $this->sorter_class( $control['eael_fg_control'] ); ?>
940
  <li><a href="javascript:;" class="control" data-filter=".<?php echo esc_attr( $sorter_filter ); ?>-<?php echo esc_attr( $this->get_id() ); ?>"><?php echo $control['eael_fg_control']; ?></a></li>
981
  </div>
982
  </div>
983
  <div class="item-content">
984
+ <h2 class="title"><a href="<?php echo esc_url( $gallery['eael_fg_gallery_img_link']['url'] ); ?>" <?php echo $target; ?> <?php echo $nofollow; ?>><?php esc_html_e( $gallery['eael_fg_gallery_item_name'], 'essential-addons-elementor' ); ?></a></h2>
985
  <p><?php echo $gallery['eael_fg_gallery_item_content']; ?></p>
986
  </div>
987
  </div>
elements/post-grid/post-grid.php CHANGED
@@ -53,8 +53,40 @@ class Widget_Eael_Post_Grid extends Widget_Base {
53
  'eael_post_type' => 'post'
54
  ]
55
  ]
 
 
 
 
 
 
 
 
 
 
 
56
  );
57
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
58
 
59
  $this->add_control(
60
  'eael_posts_count',
53
  'eael_post_type' => 'post'
54
  ]
55
  ]
56
+ );
57
+
58
+ $this->add_control(
59
+ 'eael_post_authors',
60
+ [
61
+ 'label' => __( 'Authors', 'essential-addons-elementor' ),
62
+ 'type' => Controls_Manager::SELECT2,
63
+ 'label_block' => true,
64
+ 'multiple' => true,
65
+ 'options' => eael_get_authors(),
66
+ ]
67
  );
68
 
69
+ $this->add_control(
70
+ 'eael_post_tags',
71
+ [
72
+ 'label' => __( 'Tags', 'essential-addons-elementor' ),
73
+ 'type' => Controls_Manager::SELECT2,
74
+ 'label_block' => true,
75
+ 'multiple' => true,
76
+ 'options' => eael_get_tags(),
77
+ ]
78
+ );
79
+
80
+ $this->add_control(
81
+ 'eael_post_exclude_posts',
82
+ [
83
+ 'label' => __( 'Exclude Posts', 'essential-addons-elementor' ),
84
+ 'type' => Controls_Manager::SELECT2,
85
+ 'label_block' => true,
86
+ 'multiple' => true,
87
+ 'options' => eael_get_posts(),
88
+ ]
89
+ );
90
 
91
  $this->add_control(
92
  'eael_posts_count',
elements/post-timeline/post-timeline.php CHANGED
@@ -17,6 +17,12 @@ class Widget_PostTimeline extends Widget_Base {
17
  return 'eicon-post-list';
18
  }
19
 
 
 
 
 
 
 
20
  public function get_categories() {
21
  return [ 'essential-addons-elementor' ];
22
  }
@@ -53,6 +59,39 @@ class Widget_PostTimeline extends Widget_Base {
53
  'eael_post_type' => 'post'
54
  ]
55
  ]
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
56
  );
57
 
58
 
@@ -670,11 +709,38 @@ class Widget_PostTimeline extends Widget_Base {
670
  }else {
671
  $categories_id_string = '';
672
  $total_post = wp_count_posts( $settings['eael_post_type'] )->publish;
673
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
674
 
675
  ?>
676
- <div id="eael-post-timeline-<?php echo esc_attr($this->get_id()); ?>" class="eael-post-timeline">
677
- <div class="eael-post-timeline eael-post-appender-<?php echo esc_attr( $this->get_id() ); ?>">
678
  <?php
679
  if(count($posts)){
680
  global $post;
@@ -720,38 +786,7 @@ class Widget_PostTimeline extends Widget_Base {
720
  <span><?php echo esc_html__( $settings['eael_post_timeline_load_more_text'], 'essential-addons-elementor' ); ?></span>
721
  </button>
722
  </div>
723
- <?php endif; ?>
724
- <!-- Loading Lode More Js -->
725
- <script>
726
- jQuery(document).ready(function($) {
727
-
728
- 'use strict';
729
- var options = {
730
- siteUrl: '<?php echo home_url( '/' ); ?>',
731
- totalPosts: <?php echo $total_post; ?>,
732
- loadMoreBtn: $( '#eael-load-more-btn-<?php echo $this->get_id(); ?>' ),
733
- postContainer: $( '.eael-post-appender-<?php echo esc_attr( $this->get_id() ); ?>' ),
734
- postStyle: 'timeline',
735
- }
736
-
737
- var settings = {
738
- postType: '<?php echo $settings['eael_post_type']; ?>',
739
- perPage: parseInt( <?php echo $settings['eael_posts_count'] ?>, 10 ),
740
- postOrder: '<?php echo $settings['eael_post_order'] ?>',
741
- showImage: <?php echo $settings['eael_show_image']; ?>,
742
- showTitle: <?php echo $settings['eael_show_title']; ?>,
743
- showExcerpt: <?php echo $settings['eael_show_excerpt']; ?>,
744
- excerptLength: parseInt( <?php echo $settings['eael_excerpt_length']; ?>, 10 ),
745
- btnText: '<?php echo $settings['eael_post_timeline_load_more_text']; ?>',
746
- categories: '<?php echo $categories_id_string; ?>',
747
- }
748
-
749
- loadMore( options, settings );
750
-
751
- });
752
- </script>
753
-
754
- <?php
755
  }
756
 
757
  protected function content_template() {
17
  return 'eicon-post-list';
18
  }
19
 
20
+ public function get_script_depends() {
21
+ return [
22
+ 'eael-scripts'
23
+ ];
24
+ }
25
+
26
  public function get_categories() {
27
  return [ 'essential-addons-elementor' ];
28
  }
59
  'eael_post_type' => 'post'
60
  ]
61
  ]
62
+ );
63
+
64
+ $this->add_control(
65
+ 'eael_post_authors',
66
+ [
67
+ 'label' => __( 'Authors', 'essential-addons-elementor' ),
68
+ 'type' => Controls_Manager::SELECT2,
69
+ 'label_block' => true,
70
+ 'multiple' => true,
71
+ 'options' => eael_get_authors(),
72
+ ]
73
+ );
74
+
75
+ $this->add_control(
76
+ 'eael_post_tags',
77
+ [
78
+ 'label' => __( 'Tags', 'essential-addons-elementor' ),
79
+ 'type' => Controls_Manager::SELECT2,
80
+ 'label_block' => true,
81
+ 'multiple' => true,
82
+ 'options' => eael_get_tags(),
83
+ ]
84
+ );
85
+
86
+ $this->add_control(
87
+ 'eael_post_exclude_posts',
88
+ [
89
+ 'label' => __( 'Exclude Posts', 'essential-addons-elementor' ),
90
+ 'type' => Controls_Manager::SELECT2,
91
+ 'label_block' => true,
92
+ 'multiple' => true,
93
+ 'options' => eael_get_posts(),
94
+ ]
95
  );
96
 
97
 
709
  }else {
710
  $categories_id_string = '';
711
  $total_post = wp_count_posts( $settings['eael_post_type'] )->publish;
712
+ }
713
+
714
+ $this->add_render_attribute(
715
+ 'eael_post_timeline_wrapper',
716
+ [
717
+ 'id' => "eael-post-timeline-{$this->get_id()}",
718
+ 'class' => 'eael-post-timeline',
719
+ 'data-url' => home_url( '/' ),
720
+ 'data-total_posts' => $total_post,
721
+ 'data-timeline_id' => $this->get_id(),
722
+ 'data-post_type' => $settings['eael_post_type'],
723
+ 'data-posts_per_page' => $settings['eael_posts_count'],
724
+ 'data-post_order' => $settings['eael_post_order'],
725
+ 'data-show_images' => $settings['eael_show_image'],
726
+ 'data-show_title' => $settings['eael_show_title'],
727
+ 'data-show_excerpt' => $settings['eael_show_excerpt'],
728
+ 'data-excerpt_length' => $settings['eael_excerpt_length'],
729
+ 'data-btn_text' => $settings['eael_post_timeline_load_more_text'],
730
+ 'data-categories' => $categories_id_string
731
+ ]
732
+ );
733
+
734
+ $this->add_render_attribute(
735
+ 'eael_post_timeline',
736
+ [
737
+ 'class' => [ 'eael-post-timeline', "eael-post-appender-{$this->get_id()}" ]
738
+ ]
739
+ );
740
 
741
  ?>
742
+ <div <?php echo $this->get_render_attribute_string('eael_post_timeline_wrapper'); ?>>
743
+ <div <?php echo $this->get_render_attribute_string('eael_post_timeline'); ?>>
744
  <?php
745
  if(count($posts)){
746
  global $post;
786
  <span><?php echo esc_html__( $settings['eael_post_timeline_load_more_text'], 'essential-addons-elementor' ); ?></span>
787
  </button>
788
  </div>
789
+ <?php endif;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
790
  }
791
 
792
  protected function content_template() {
elements/twitter-feed/templates/list.php DELETED
@@ -1,24 +0,0 @@
1
- <?php
2
- /**
3
- * Template: Twitter List
4
- */
5
- ?>
6
- <div class="eael-social-feed-element {{? !it.moderation_passed}}hidden{{?}}" dt-create="{{=it.dt_create}}" social-feed-id = "{{=it.id}}">
7
- <div class='eael-content'>
8
- <a class="pull-left auth-img" href="{{=it.author_link}}" target="_blank">
9
- <img class="media-object" src="{{=it.author_picture}}">
10
- </a>
11
- <div class="media-body">
12
- <p>
13
- <i class="fa fa-{{=it.social_network}} social-feed-icon"></i>
14
- <span class="author-title">{{=it.author_name}}</span>
15
- <span class="muted pull-right social-feed-date"> {{=it.time_ago}}</span>
16
- </p>
17
- <div class='text-wrapper'>
18
- <p class="social-feed-text">{{=it.text}} </p>
19
- <p><a href="{{=it.link}}" target="_blank" class="read-more-link">Read More <i class="fa fa-angle-double-right"></i></a></p>
20
- </div>
21
- </div>
22
- </div>
23
- {{=it.attachment}}
24
- </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
elements/twitter-feed/templates/masonry.php DELETED
@@ -1,24 +0,0 @@
1
- <?php
2
- /**
3
- * Template: Twitter Masonry
4
- */
5
- ?>
6
- <div class="eael-social-feed-element {{? !it.moderation_passed}}hidden{{?}}" dt-create="{{=it.dt_create}}" social-feed-id = "{{=it.id}}">
7
- <div class='eael-content'>
8
- <a class="pull-left auth-img" href="{{=it.author_link}}" target="_blank">
9
- <img class="media-object" src="{{=it.author_picture}}">
10
- </a>
11
- <div class="media-body">
12
- <p>
13
- <i class="fa fa-{{=it.social_network}} social-feed-icon"></i>
14
- <span class="author-title">{{=it.author_name}}</span>
15
- <span class="muted pull-right social-feed-date"> {{=it.time_ago}}</span>
16
- </p>
17
- <div class='text-wrapper'>
18
- <p class="social-feed-text">{{=it.text}} </p>
19
- <p><a href="{{=it.link}}" target="_blank" class="read-more-link">Read More <i class="fa fa-angle-double-right"></i></a></p>
20
- </div>
21
- </div>
22
- </div>
23
- {{=it.attachment}}
24
- </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
elements/twitter-feed/twitter-feed.php CHANGED
@@ -125,6 +125,26 @@ class Widget_Eael_Twitter_Feed extends Widget_Base {
125
  ]
126
  );
127
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
128
  $this->add_control(
129
  'eael_twitter_feed_post_limit',
130
  [
@@ -221,8 +241,8 @@ class Widget_Eael_Twitter_Feed extends Widget_Base {
221
  ]
222
  );
223
 
224
- $this->end_controls_section();
225
- $this->start_controls_section(
226
  'eael_section_pro',
227
  [
228
  'label' => __( 'Go Premium for More Features', 'essential-addons-elementor' )
@@ -588,76 +608,21 @@ class Widget_Eael_Twitter_Feed extends Widget_Base {
588
  $feed_class = 'masonry-view';
589
  }
590
 
591
- // Get the specific template
592
- if( 'masonry' == $settings['eael_twitter_feed_type'] ) {
593
- $template = 'masonry.php';
594
- }else {
595
- $template = 'list.php';
596
- }
 
 
 
597
 
598
  ?>
599
- <div class="eael-twitter-feed-wrapper">
600
- <div class="eael-twitter-feed-container <?php echo esc_attr( $feed_class ); ?>"></div>
601
  <div class="eael-loading-feed"><div class="loader"></div></div>
602
  </div>
603
- <script>
604
- jQuery( document ).ready( function($) {
605
- var loadingFeed = $( '.eael-loading-feed' );
606
-
607
- /**
608
- * Twitter Feed Init
609
- */
610
- function eael_twitter_feeds() {
611
- $( '.eael-twitter-feed-container' ).socialfeed({
612
- // TWITTER
613
- twitter:{
614
- accounts: ['<?php echo $settings['eael_twitter_feed_ac_name']; ?>', '<?php echo $settings['eael_twitter_feed_hashtag_name']; ?>'],
615
- limit: <?php echo $settings['eael_twitter_feed_post_limit']; ?>,
616
- consumer_key: '<?php echo $settings['eael_twitter_feed_consumer_key']; ?>',
617
- consumer_secret: '<?php echo $settings['eael_twitter_feed_consumer_secret']; ?>',
618
- },
619
-
620
- // GENERAL SETTINGS
621
- length: <?php if( !empty( $settings['eael_twitter_feed_content_length'] ) ) : echo $settings['eael_twitter_feed_content_length']; else: echo '400'; endif; ?>,
622
- show_media: <?php if( !empty( $settings['eael_twitter_feed_media'] ) ) : echo $settings['eael_twitter_feed_media']; else: echo 'false'; endif; ?>,
623
- template: '<?php echo plugins_url( '/', __FILE__ ) . 'templates/'.$template; ?>',
624
- });
625
- }
626
-
627
- /**
628
- * Twitter Feed masonry View
629
- */
630
- function eael_twitter_feed_masonry() {
631
- $('.eael-twitter-feed-container').masonry({
632
- itemSelector: '.eael-social-feed-element',
633
- percentPosition: true,
634
- columnWidth: '.eael-social-feed-element'
635
- });
636
- }
637
-
638
- $.ajax({
639
- url: eael_twitter_feeds(),
640
- beforeSend: function() {
641
- loadingFeed.addClass( 'show-loading' );
642
- },
643
- success: function() {
644
- setInterval( function() {
645
- <?php if( 'masonry' == $settings['eael_twitter_feed_type'] ) : ?>
646
- eael_twitter_feed_masonry();
647
- <?php endif; ?>
648
- loadingFeed.removeClass( 'show-loading' );
649
- }, 4000 );
650
- },
651
- error: function() {
652
- console.log('error loading');
653
- }
654
- });
655
-
656
- });
657
-
658
-
659
- </script>
660
-
661
 
662
  <?php
663
  echo '<style>';
125
  ]
126
  );
127
 
128
+ $this->add_responsive_control(
129
+ 'eael_twitter_feed_column_spacing',
130
+ [
131
+ 'label' => esc_html__( 'Column spacing', 'essential-addons-elementor' ),
132
+ 'type' => Controls_Manager::SLIDER,
133
+ 'range' => [
134
+ 'px' => [
135
+ 'max' => 50,
136
+ ],
137
+ ],
138
+ 'default' => [
139
+ 'unit' => 'px',
140
+ 'size' => 10,
141
+ ],
142
+ 'selectors' => [
143
+ '{{WRAPPER}} .eael-social-feed-element' => 'padding: {{SIZE}}px;',
144
+ ],
145
+ ]
146
+ );
147
+
148
  $this->add_control(
149
  'eael_twitter_feed_post_limit',
150
  [
241
  ]
242
  );
243
 
244
+ $this->end_controls_section();
245
+ $this->start_controls_section(
246
  'eael_section_pro',
247
  [
248
  'label' => __( 'Go Premium for More Features', 'essential-addons-elementor' )
608
  $feed_class = 'masonry-view';
609
  }
610
 
611
+ $this->add_render_attribute( 'eael-twitter-feed', 'data-twitter-feed-ac-name', $settings['eael_twitter_feed_ac_name'] );
612
+ $this->add_render_attribute( 'eael-twitter-feed', 'data-twitter-feed-post-limit', $settings['eael_twitter_feed_post_limit'] );
613
+ $this->add_render_attribute( 'eael-twitter-feed', 'data-twitter-feed-hashtag-name', $settings['eael_twitter_feed_hashtag_name'] );
614
+ $this->add_render_attribute( 'eael-twitter-feed', 'data-twitter-feed-consumer-key', $settings['eael_twitter_feed_consumer_key'] );
615
+ $this->add_render_attribute( 'eael-twitter-feed', 'data-twitter-feed-consumer-secret', $settings['eael_twitter_feed_consumer_secret'] );
616
+ $this->add_render_attribute( 'eael-twitter-feed', 'data-twitter-feed-content-length', $settings['eael_twitter_feed_content_length'] );
617
+ $this->add_render_attribute( 'eael-twitter-feed', 'data-twitter-feed-media', $settings['eael_twitter_feed_media'] );
618
+ $this->add_render_attribute( 'eael-twitter-feed', 'data-twitter-feed-type', $settings['eael_twitter_feed_type'] );
619
+ $this->add_render_attribute( 'eael-twitter-feed', 'data-twitter-feed-id', esc_attr($this->get_id()) );
620
 
621
  ?>
622
+ <div class="eael-twitter-feed-wrapper eael-twitter-feed-layout-wrapper" <?php echo $this->get_render_attribute_string( 'eael-twitter-feed' ); ?>>
623
+ <div id="eael-twitter-feed-<?php echo esc_attr($this->get_id()); ?>" class="eael-twitter-feed-container eael-twitter-feed-layout-container <?php echo esc_attr( $feed_class ); ?>"></div>
624
  <div class="eael-loading-feed"><div class="loader"></div></div>
625
  </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
626
 
627
  <?php
628
  echo '<style>';
elements/wpforms/wpforms.php ADDED
@@ -0,0 +1,1445 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ namespace Elementor;
3
+
4
+ if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
5
+
6
+ class Widget_Eael_WpForms extends Widget_Base {
7
+
8
+ public function get_name() {
9
+ return 'eael-wpforms';
10
+ }
11
+
12
+ public function get_title() {
13
+ return __( 'EA WPForms', 'essential-addons-elementor' );
14
+ }
15
+
16
+ public function get_categories() {
17
+ return [ 'essential-addons-elementor' ];
18
+ }
19
+
20
+ public function get_icon() {
21
+ return 'fa fa-envelope-o';
22
+ }
23
+
24
+ protected function _register_controls() {
25
+
26
+ /*-----------------------------------------------------------------------------------*/
27
+ /* Content Tab
28
+ /*-----------------------------------------------------------------------------------*/
29
+
30
+ $this->start_controls_section(
31
+ 'section_info_box',
32
+ [
33
+ 'label' => __( 'WPForms', 'essential-addons-elementor' ),
34
+ ]
35
+ );
36
+
37
+ $this->add_control(
38
+ 'contact_form_list',
39
+ [
40
+ 'label' => esc_html__( 'Select Form', 'essential-addons-elementor' ),
41
+ 'type' => Controls_Manager::SELECT,
42
+ 'label_block' => true,
43
+ 'options' => eael_select_wpforms_forms(),
44
+ 'default' => '0',
45
+ ]
46
+ );
47
+
48
+ $this->add_control(
49
+ 'custom_title_description',
50
+ [
51
+ 'label' => __( 'Custom Title & Description', 'essential-addons-elementor' ),
52
+ 'type' => Controls_Manager::SWITCHER,
53
+ 'label_on' => __( 'Yes', 'essential-addons-elementor' ),
54
+ 'label_off' => __( 'No', 'essential-addons-elementor' ),
55
+ 'return_value' => 'yes',
56
+ ]
57
+ );
58
+
59
+ $this->add_control(
60
+ 'form_title',
61
+ [
62
+ 'label' => __( 'Title', 'essential-addons-elementor' ),
63
+ 'type' => Controls_Manager::SWITCHER,
64
+ 'default' => 'yes',
65
+ 'label_on' => __( 'Show', 'essential-addons-elementor' ),
66
+ 'label_off' => __( 'Hide', 'essential-addons-elementor' ),
67
+ 'return_value' => 'yes',
68
+ 'condition' => [
69
+ 'custom_title_description!' => 'yes',
70
+ ],
71
+ ]
72
+ );
73
+
74
+ $this->add_control(
75
+ 'form_description',
76
+ [
77
+ 'label' => __( 'Description', 'essential-addons-elementor' ),
78
+ 'type' => Controls_Manager::SWITCHER,
79
+ 'default' => 'yes',
80
+ 'label_on' => __( 'Show', 'essential-addons-elementor' ),
81
+ 'label_off' => __( 'Hide', 'essential-addons-elementor' ),
82
+ 'return_value' => 'yes',
83
+ 'condition' => [
84
+ 'custom_title_description!' => 'yes',
85
+ ],
86
+ ]
87
+ );
88
+
89
+ $this->add_control(
90
+ 'form_title_custom',
91
+ [
92
+ 'label' => esc_html__( 'Title', 'essential-addons-elementor' ),
93
+ 'type' => Controls_Manager::TEXT,
94
+ 'label_block' => true,
95
+ 'default' => '',
96
+ 'condition' => [
97
+ 'custom_title_description' => 'yes',
98
+ ],
99
+ ]
100
+ );
101
+
102
+ $this->add_control(
103
+ 'form_description_custom',
104
+ [
105
+ 'label' => esc_html__( 'Description', 'essential-addons-elementor' ),
106
+ 'type' => Controls_Manager::TEXTAREA,
107
+ 'default' => '',
108
+ 'condition' => [
109
+ 'custom_title_description' => 'yes',
110
+ ],
111
+ ]
112
+ );
113
+
114
+ $this->add_control(
115
+ 'labels_switch',
116
+ [
117
+ 'label' => __( 'Labels', 'essential-addons-elementor' ),
118
+ 'type' => Controls_Manager::SWITCHER,
119
+ 'default' => 'yes',
120
+ 'label_on' => __( 'Show', 'essential-addons-elementor' ),
121
+ 'label_off' => __( 'Hide', 'essential-addons-elementor' ),
122
+ 'return_value' => 'yes',
123
+ 'prefix_class' => 'eael-wpforms-labels-',
124
+ ]
125
+ );
126
+
127
+ $this->add_control(
128
+ 'placeholder_switch',
129
+ [
130
+ 'label' => __( 'Placeholder', 'essential-addons-elementor' ),
131
+ 'type' => Controls_Manager::SWITCHER,
132
+ 'default' => 'yes',
133
+ 'label_on' => __( 'Show', 'essential-addons-elementor' ),
134
+ 'label_off' => __( 'Hide', 'essential-addons-elementor' ),
135
+ 'return_value' => 'yes',
136
+ ]
137
+ );
138
+
139
+ $this->end_controls_section();
140
+
141
+ /**
142
+ * Content Tab: Errors
143
+ * -------------------------------------------------
144
+ */
145
+ $this->start_controls_section(
146
+ 'section_errors',
147
+ [
148
+ 'label' => __( 'Errors', 'essential-addons-elementor' ),
149
+ ]
150
+ );
151
+
152
+ $this->add_control(
153
+ 'error_messages',
154
+ [
155
+ 'label' => __( 'Error Messages', 'essential-addons-elementor' ),
156
+ 'type' => Controls_Manager::SELECT,
157
+ 'default' => 'show',
158
+ 'options' => [
159
+ 'show' => __( 'Show', 'essential-addons-elementor' ),
160
+ 'hide' => __( 'Hide', 'essential-addons-elementor' ),
161
+ ],
162
+ 'selectors_dictionary' => [
163
+ 'show' => 'block',
164
+ 'hide' => 'none',
165
+ ],
166
+ 'selectors' => [
167
+ '{{WRAPPER}} .eael-wpforms label.wpforms-error' => 'display: {{VALUE}} !important;',
168
+ ],
169
+ ]
170
+ );
171
+
172
+ $this->end_controls_section();
173
+
174
+ /*-----------------------------------------------------------------------------------*/
175
+ /* STYLE TAB
176
+ /*-----------------------------------------------------------------------------------*/
177
+
178
+ /**
179
+ * Style Tab: Form Container
180
+ * -------------------------------------------------
181
+ */
182
+ $this->start_controls_section(
183
+ 'section_container_style',
184
+ [
185
+ 'label' => __( 'Form Container', 'essential-addons-elementor' ),
186
+ 'tab' => Controls_Manager::TAB_STYLE,
187
+ ]
188
+ );
189
+
190
+ $this->add_control(
191
+ 'eael_contact_form_background',
192
+ [
193
+ 'label' => esc_html__( 'Form Background Color', 'essential-addons-elementor' ),
194
+ 'type' => Controls_Manager::COLOR,
195
+ 'selectors' => [
196
+ '{{WRAPPER}} .eael-contact-form' => 'background: {{VALUE}};',
197
+ ],
198
+ ]
199
+ );
200
+
201
+ $this->add_responsive_control(
202
+ 'eael_contact_form_alignment',
203
+ [
204
+ 'label' => esc_html__( 'Form Alignment', 'essential-addons-elementor' ),
205
+ 'type' => Controls_Manager::CHOOSE,
206
+ 'label_block' => true,
207
+ 'options' => [
208
+ 'default' => [
209
+ 'title' => __( 'Default', 'essential-addons-elementor' ),
210
+ 'icon' => 'fa fa-ban',
211
+ ],
212
+ 'left' => [
213
+ 'title' => esc_html__( 'Left', 'essential-addons-elementor' ),
214
+ 'icon' => 'eicon-h-align-left',
215
+ ],
216
+ 'center' => [
217
+ 'title' => esc_html__( 'Center', 'essential-addons-elementor' ),
218
+ 'icon' => 'eicon-h-align-center',
219
+ ],
220
+ 'right' => [
221
+ 'title' => esc_html__( 'Right', 'essential-addons-elementor' ),
222
+ 'icon' => 'eicon-h-align-right',
223
+ ],
224
+ ],
225
+ 'default' => 'default',
226
+ ]
227
+ );
228
+
229
+ $this->add_responsive_control(
230
+ 'eael_contact_form_width',
231
+ [
232
+ 'label' => esc_html__( 'Form Width', 'essential-addons-elementor' ),
233
+ 'type' => Controls_Manager::SLIDER,
234
+ 'size_units' => [ 'px', 'em', '%' ],
235
+ 'range' => [
236
+ 'px' => [
237
+ 'min' => 10,
238
+ 'max' => 1500,
239
+ ],
240
+ 'em' => [
241
+ 'min' => 1,
242
+ 'max' => 80,
243
+ ],
244
+ ],
245
+ 'selectors' => [
246
+ '{{WRAPPER}} .eael-contact-form' => 'width: {{SIZE}}{{UNIT}};',
247
+ ],
248
+ ]
249
+ );
250
+
251
+ $this->add_responsive_control(
252
+ 'eael_contact_form_max_width',
253
+ [
254
+ 'label' => esc_html__( 'Form Max Width', 'essential-addons-elementor' ),
255
+ 'type' => Controls_Manager::SLIDER,
256
+ 'size_units' => [ 'px', 'em', '%' ],
257
+ 'range' => [
258
+ 'px' => [
259
+ 'min' => 10,
260
+ 'max' => 1500,
261
+ ],
262
+ 'em' => [
263
+ 'min' => 1,
264
+ 'max' => 80,
265
+ ],
266
+ ],
267
+ 'selectors' => [
268
+ '{{WRAPPER}} .eael-contact-form' => 'max-width: {{SIZE}}{{UNIT}};',
269
+ ],
270
+ ]
271
+ );
272
+
273
+
274
+ $this->add_responsive_control(
275
+ 'eael_contact_form_margin',
276
+ [
277
+ 'label' => esc_html__( 'Form Margin', 'essential-addons-elementor' ),
278
+ 'type' => Controls_Manager::DIMENSIONS,
279
+ 'size_units' => [ 'px', 'em', '%' ],
280
+ 'selectors' => [
281
+ '{{WRAPPER}} .eael-contact-form' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
282
+ ],
283
+ ]
284
+ );
285
+
286
+ $this->add_responsive_control(
287
+ 'eael_contact_form_padding',
288
+ [
289
+ 'label' => esc_html__( 'Form Padding', 'essential-addons-elementor' ),
290
+ 'type' => Controls_Manager::DIMENSIONS,
291
+ 'size_units' => [ 'px', 'em', '%' ],
292
+ 'selectors' => [
293
+ '{{WRAPPER}} .eael-contact-form' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
294
+ ],
295
+ ]
296
+ );
297
+
298
+
299
+ $this->add_control(
300
+ 'eael_contact_form_border_radius',
301
+ [
302
+ 'label' => esc_html__( 'Border Radius', 'essential-addons-elementor' ),
303
+ 'type' => Controls_Manager::DIMENSIONS,
304
+ 'separator' => 'before',
305
+ 'size_units' => [ 'px' ],
306
+ 'selectors' => [
307
+ '{{WRAPPER}} .eael-contact-form' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
308
+ ],
309
+ ]
310
+ );
311
+
312
+
313
+ $this->add_group_control(
314
+ Group_Control_Border::get_type(),
315
+ [
316
+ 'name' => 'eael_contact_form_border',
317
+ 'selector' => '{{WRAPPER}} .eael-contact-form',
318
+ ]
319
+ );
320
+
321
+
322
+ $this->add_group_control(
323
+ Group_Control_Box_Shadow::get_type(),
324
+ [
325
+ 'name' => 'eael_contact_form_box_shadow',
326
+ 'selector' => '{{WRAPPER}} .eael-contact-form',
327
+ ]
328
+ );
329
+
330
+ $this->end_controls_section();
331
+
332
+
333
+ /**
334
+ * Style Tab: Form Title & Description
335
+ * -------------------------------------------------
336
+ */
337
+ $this->start_controls_section(
338
+ 'section_form_title_style',
339
+ [
340
+ 'label' => __( 'Title & Description', 'essential-addons-elementor' ),
341
+ 'tab' => Controls_Manager::TAB_STYLE,
342
+ ]
343
+ );
344
+
345
+ $this->add_responsive_control(
346
+ 'heading_alignment',
347
+ [
348
+ 'label' => __( 'Alignment', 'essential-addons-elementor' ),
349
+ 'type' => Controls_Manager::CHOOSE,
350
+ 'options' => [
351
+ 'left' => [
352
+ 'title' => __( 'Left', 'essential-addons-elementor' ),
353
+ 'icon' => 'fa fa-align-left',
354
+ ],
355
+ 'center' => [
356
+ 'title' => __( 'Center', 'essential-addons-elementor' ),
357
+ 'icon' => 'fa fa-align-center',
358
+ ],
359
+ 'right' => [
360
+ 'title' => __( 'Right', 'essential-addons-elementor' ),
361
+ 'icon' => 'fa fa-align-right',
362
+ ],
363
+ ],
364
+ 'default' => '',
365
+ 'selectors' => [
366
+ '{{WRAPPER}} .wpforms-head-container, {{WRAPPER}} .eael-wpforms-heading' => 'text-align: {{VALUE}};',
367
+ ],
368
+ ]
369
+ );
370
+
371
+ $this->add_control(
372
+ 'title_heading',
373
+ [
374
+ 'label' => __( 'Title', 'essential-addons-elementor' ),
375
+ 'type' => Controls_Manager::HEADING,
376
+ 'separator' => 'before',
377
+ ]
378
+ );
379
+
380
+ $this->add_control(
381
+ 'form_title_text_color',
382
+ [
383
+ 'label' => __( 'Text Color', 'essential-addons-elementor' ),
384
+ 'type' => Controls_Manager::COLOR,
385
+ 'default' => '',
386
+ 'selectors' => [
387
+ '{{WRAPPER}} .eael-contact-form-title, {{WRAPPER}} .wpforms-title' => 'color: {{VALUE}}',
388
+ ],
389
+ ]
390
+ );
391
+
392
+ $this->add_group_control(
393
+ Group_Control_Typography::get_type(),
394
+ [
395
+ 'name' => 'form_title_typography',
396
+ 'label' => __( 'Typography', 'essential-addons-elementor' ),
397
+ 'selector' => '{{WRAPPER}} .eael-contact-form-title, {{WRAPPER}} .wpforms-title',
398
+ ]
399
+ );
400
+
401
+ $this->add_responsive_control(
402
+ 'form_title_margin',
403
+ [
404
+ 'label' => __( 'Margin', 'essential-addons-elementor' ),
405
+ 'type' => Controls_Manager::DIMENSIONS,
406
+ 'size_units' => [ 'px', 'em', '%' ],
407
+ 'allowed_dimensions' => 'vertical',
408
+ 'placeholder' => [
409
+ 'top' => '',
410
+ 'right' => 'auto',
411
+ 'bottom' => '',
412
+ 'left' => 'auto',
413
+ ],
414
+ 'selectors' => [
415
+ '{{WRAPPER}} .eael-contact-form-title, {{WRAPPER}} .wpforms-title' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
416
+ ],
417
+ ]
418
+ );
419
+
420
+ $this->add_control(
421
+ 'description_heading',
422
+ [
423
+ 'label' => __( 'Description', 'essential-addons-elementor' ),
424
+ 'type' => Controls_Manager::HEADING,
425
+ 'separator' => 'before',
426
+ ]
427
+ );
428
+
429
+ $this->add_control(
430
+ 'form_description_text_color',
431
+ [
432
+ 'label' => __( 'Text Color', 'essential-addons-elementor' ),
433
+ 'type' => Controls_Manager::COLOR,
434
+ 'default' => '',
435
+ 'selectors' => [
436
+ '{{WRAPPER}} .eael-contact-form-description, {{WRAPPER}} .wpforms-description' => 'color: {{VALUE}}',
437
+ ],
438
+ ]
439
+ );
440
+
441
+ $this->add_group_control(
442
+ Group_Control_Typography::get_type(),
443
+ [
444
+ 'name' => 'form_description_typography',
445
+ 'label' => __( 'Typography', 'essential-addons-elementor' ),
446
+ 'scheme' => Scheme_Typography::TYPOGRAPHY_4,
447
+ 'selector' => '{{WRAPPER}} .eael-contact-form-description, {{WRAPPER}} .wpforms-description',
448
+ ]
449
+ );
450
+
451
+ $this->add_responsive_control(
452
+ 'form_description_margin',
453
+ [
454
+ 'label' => __( 'Margin', 'essential-addons-elementor' ),
455
+ 'type' => Controls_Manager::DIMENSIONS,
456
+ 'size_units' => [ 'px', 'em', '%' ],
457
+ 'allowed_dimensions' => 'vertical',
458
+ 'placeholder' => [
459
+ 'top' => '',
460
+ 'right' => 'auto',
461
+ 'bottom' => '',
462
+ 'left' => 'auto',
463
+ ],
464
+ 'selectors' => [
465
+ '{{WRAPPER}} .eael-contact-form-description, {{WRAPPER}} .wpforms-description' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
466
+ ],
467
+ ]
468
+ );
469
+
470
+ $this->end_controls_section();
471
+
472
+ /**
473
+ * Style Tab: Labels
474
+ * -------------------------------------------------
475
+ */
476
+ $this->start_controls_section(
477
+ 'section_label_style',
478
+ [
479
+ 'label' => __( 'Labels', 'essential-addons-elementor' ),
480
+ 'tab' => Controls_Manager::TAB_STYLE,
481
+ ]
482
+ );
483
+
484
+ $this->add_control(
485
+ 'text_color_label',
486
+ [
487
+ 'label' => __( 'Text Color', 'essential-addons-elementor' ),
488
+ 'type' => Controls_Manager::COLOR,
489
+ 'selectors' => [
490
+ '{{WRAPPER}} .eael-wpforms .wpforms-field label' => 'color: {{VALUE}}',
491
+ ],
492
+ ]
493
+ );
494
+
495
+ $this->add_group_control(
496
+ Group_Control_Typography::get_type(),
497
+ [
498
+ 'name' => 'typography_label',
499
+ 'label' => __( 'Typography', 'essential-addons-elementor' ),
500
+ 'scheme' => Scheme_Typography::TYPOGRAPHY_4,
501
+ 'selector' => '{{WRAPPER}} .eael-wpforms .wpforms-field label',
502
+ ]
503
+ );
504
+
505
+ $this->end_controls_section();
506
+
507
+ /**
508
+ * Style Tab: Input & Textarea
509
+ * -------------------------------------------------
510
+ */
511
+ $this->start_controls_section(
512
+ 'section_fields_style',
513
+ [
514
+ 'label' => __( 'Input & Textarea', 'essential-addons-elementor' ),
515
+ 'tab' => Controls_Manager::TAB_STYLE,
516
+ ]
517
+ );
518
+
519
+ $this->add_responsive_control(
520
+ 'input_alignment',
521
+ [
522
+ 'label' => __( 'Alignment', 'essential-addons-elementor' ),
523
+ 'type' => Controls_Manager::CHOOSE,
524
+ 'options' => [
525
+ 'left' => [
526
+ 'title' => __( 'Left', 'essential-addons-elementor' ),
527
+ 'icon' => 'fa fa-align-left',
528
+ ],
529
+ 'center' => [
530
+ 'title' => __( 'Center', 'essential-addons-elementor' ),
531
+ 'icon' => 'fa fa-align-center',
532
+ ],
533
+ 'right' => [
534
+ 'title' => __( 'Right', 'essential-addons-elementor' ),
535
+ 'icon' => 'fa fa-align-right',
536
+ ],
537
+ ],
538
+ 'default' => '',
539
+ 'selectors' => [
540
+ '{{WRAPPER}} .eael-wpforms .wpforms-field input:not([type=radio]):not([type=checkbox]):not([type=submit]):not([type=button]):not([type=image]):not([type=file]), {{WRAPPER}} .eael-wpforms .wpforms-field textarea, {{WRAPPER}} .eael-wpforms .wpforms-field select' => 'text-align: {{VALUE}};',
541
+ ],
542
+ ]
543
+ );
544
+
545
+ $this->start_controls_tabs( 'tabs_fields_style' );
546
+
547
+ $this->start_controls_tab(
548
+ 'tab_fields_normal',
549
+ [
550
+ 'label' => __( 'Normal', 'essential-addons-elementor' ),
551
+ ]
552
+ );
553
+
554
+ $this->add_control(
555
+ 'field_bg_color',
556
+ [
557
+ 'label' => __( 'Background Color', 'essential-addons-elementor' ),
558
+ 'type' => Controls_Manager::COLOR,
559
+ 'default' => '',
560
+ 'selectors' => [
561
+ '{{WRAPPER}} .eael-wpforms .wpforms-field input:not([type=radio]):not([type=checkbox]):not([type=submit]):not([type=button]):not([type=image]):not([type=file]), {{WRAPPER}} .eael-wpforms .wpforms-field textarea, {{WRAPPER}} .eael-wpforms .wpforms-field select' => 'background-color: {{VALUE}}',
562
+ ],
563
+ ]
564
+ );
565
+
566
+ $this->add_control(
567
+ 'field_text_color',
568
+ [
569
+ 'label' => __( 'Text Color', 'essential-addons-elementor' ),
570
+ 'type' => Controls_Manager::COLOR,
571
+ 'default' => '',
572
+ 'selectors' => [
573
+ '{{WRAPPER}} .eael-wpforms .wpforms-field input:not([type=radio]):not([type=checkbox]):not([type=submit]):not([type=button]):not([type=image]):not([type=file]), {{WRAPPER}} .eael-wpforms .wpforms-field textarea, {{WRAPPER}} .eael-wpforms .wpforms-field select' => 'color: {{VALUE}}',
574
+ ],
575
+ ]
576
+ );
577
+
578
+ $this->add_group_control(
579
+ Group_Control_Border::get_type(),
580
+ [
581
+ 'name' => 'field_border',
582
+ 'label' => __( 'Border', 'essential-addons-elementor' ),
583
+ 'placeholder' => '1px',
584
+ 'default' => '1px',
585
+ 'selector' => '{{WRAPPER}} .eael-wpforms .wpforms-field input:not([type=radio]):not([type=checkbox]):not([type=submit]):not([type=button]):not([type=image]):not([type=file]), {{WRAPPER}} .eael-wpforms .wpforms-field textarea, {{WRAPPER}} .eael-wpforms .wpforms-field select',
586
+ 'separator' => 'before',
587
+ ]
588
+ );
589
+
590
+ $this->add_control(
591
+ 'field_radius',
592
+ [
593
+ 'label' => __( 'Border Radius', 'essential-addons-elementor' ),
594
+ 'type' => Controls_Manager::DIMENSIONS,
595
+ 'size_units' => [ 'px', 'em', '%' ],
596
+ 'selectors' => [
597
+ '{{WRAPPER}} .eael-wpforms .wpforms-field input:not([type=radio]):not([type=checkbox]):not([type=submit]):not([type=button]):not([type=image]):not([type=file]), {{WRAPPER}} .eael-wpforms .wpforms-field textarea, {{WRAPPER}} .eael-wpforms .wpforms-field select' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
598
+ ],
599
+ ]
600
+ );
601
+
602
+ $this->add_responsive_control(
603
+ 'text_indent',
604
+ [
605
+ 'label' => __( 'Text Indent', 'essential-addons-elementor' ),
606
+ 'type' => Controls_Manager::SLIDER,
607
+ 'range' => [
608
+ 'px' => [
609
+ 'min' => 0,
610
+ 'max' => 60,
611
+ 'step' => 1,
612
+ ],
613
+ '%' => [
614
+ 'min' => 0,
615
+ 'max' => 30,
616
+ 'step' => 1,
617
+ ],
618
+ ],
619
+ 'size_units' => [ 'px', 'em', '%' ],
620
+ 'selectors' => [
621
+ '{{WRAPPER}} .eael-wpforms .wpforms-field input:not([type=radio]):not([type=checkbox]):not([type=submit]):not([type=button]):not([type=image]):not([type=file]), {{WRAPPER}} .eael-wpforms .wpforms-field textarea, {{WRAPPER}} .eael-wpforms .wpforms-field select' => 'text-indent: {{SIZE}}{{UNIT}}',
622
+ ],
623
+ 'separator' => 'before',
624
+ ]
625
+ );
626
+
627
+ $this->add_responsive_control(
628
+ 'input_width',
629
+ [
630
+ 'label' => __( 'Input Width', 'essential-addons-elementor' ),
631
+ 'type' => Controls_Manager::SLIDER,
632
+ 'range' => [
633
+ 'px' => [
634
+ 'min' => 0,
635
+ 'max' => 1200,
636
+ 'step' => 1,
637
+ ],
638
+ ],
639
+ 'size_units' => [ 'px', 'em', '%' ],
640
+ 'selectors' => [
641
+ '{{WRAPPER}} .eael-wpforms .wpforms-field input:not([type=radio]):not([type=checkbox]):not([type=submit]):not([type=button]):not([type=image]):not([type=file]), {{WRAPPER}} .eael-wpforms .wpforms-field select' => 'width: {{SIZE}}{{UNIT}}',
642
+ ],
643
+ ]
644
+ );
645
+
646
+ $this->add_responsive_control(
647
+ 'input_height',
648
+ [
649
+ 'label' => __( 'Input Height', 'essential-addons-elementor' ),
650
+ 'type' => Controls_Manager::SLIDER,
651
+ 'range' => [
652
+ 'px' => [
653
+ 'min' => 0,
654
+ 'max' => 80,
655
+ 'step' => 1,
656
+ ],
657
+ ],
658
+ 'size_units' => [ 'px', 'em', '%' ],
659
+ 'selectors' => [
660
+ '{{WRAPPER}} .eael-wpforms .wpforms-field input:not([type=radio]):not([type=checkbox]):not([type=submit]):not([type=button]):not([type=image]):not([type=file]), {{WRAPPER}} .eael-wpforms .wpforms-field select' => 'height: {{SIZE}}{{UNIT}}',
661
+ ],
662
+ ]
663
+ );
664
+
665
+ $this->add_responsive_control(
666
+ 'textarea_width',
667
+ [
668
+ 'label' => __( 'Textarea Width', 'essential-addons-elementor' ),
669
+ 'type' => Controls_Manager::SLIDER,
670
+ 'range' => [
671
+ 'px' => [
672
+ 'min' => 0,
673
+ 'max' => 1200,
674
+ 'step' => 1,
675
+ ],
676
+ ],
677
+ 'size_units' => [ 'px', 'em', '%' ],
678
+ 'selectors' => [
679
+ '{{WRAPPER}} .eael-wpforms .wpforms-field textarea' => 'width: {{SIZE}}{{UNIT}}',
680
+ ],
681
+ ]
682
+ );
683
+
684
+ $this->add_responsive_control(
685
+ 'textarea_height',
686
+ [
687
+ 'label' => __( 'Textarea Height', 'essential-addons-elementor' ),
688
+ 'type' => Controls_Manager::SLIDER,
689
+ 'range' => [
690
+ 'px' => [
691
+ 'min' => 0,
692
+ 'max' => 400,
693
+ 'step' => 1,
694
+ ],
695
+ ],
696
+ 'size_units' => [ 'px', 'em', '%' ],
697
+ 'selectors' => [
698
+ '{{WRAPPER}} .eael-wpforms .wpforms-field textarea' => 'height: {{SIZE}}{{UNIT}}',
699
+ ],
700
+ ]
701
+ );
702
+
703
+ $this->add_responsive_control(
704
+ 'field_padding',
705
+ [
706
+ 'label' => __( 'Padding', 'essential-addons-elementor' ),
707
+ 'type' => Controls_Manager::DIMENSIONS,
708
+ 'size_units' => [ 'px', 'em', '%' ],
709
+ 'selectors' => [
710
+ '{{WRAPPER}} .eael-wpforms .wpforms-field input:not([type=radio]):not([type=checkbox]):not([type=submit]):not([type=button]):not([type=image]):not([type=file]), {{WRAPPER}} .eael-wpforms .wpforms-field textarea, {{WRAPPER}} .eael-wpforms .wpforms-field select' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
711
+ ],
712
+ 'separator' => 'before',
713
+ ]
714
+ );
715
+
716
+ $this->add_responsive_control(
717
+ 'field_spacing',
718
+ [
719
+ 'label' => __( 'Spacing', 'essential-addons-elementor' ),
720
+ 'type' => Controls_Manager::SLIDER,
721
+ 'range' => [
722
+ 'px' => [
723
+ 'min' => 0,
724
+ 'max' => 100,
725
+ 'step' => 1,
726
+ ],
727
+ ],
728
+ 'size_units' => [ 'px', 'em', '%' ],
729
+ 'selectors' => [
730
+ '{{WRAPPER}} .eael-wpforms .wpforms-field' => 'margin-bottom: {{SIZE}}{{UNIT}}',
731
+ ],
732
+ ]
733
+ );
734
+
735
+ $this->add_group_control(
736
+ Group_Control_Typography::get_type(),
737
+ [
738
+ 'name' => 'field_typography',
739
+ 'label' => __( 'Typography', 'essential-addons-elementor' ),
740
+ 'scheme' => Scheme_Typography::TYPOGRAPHY_4,
741
+ 'selector' => '{{WRAPPER}} .eael-wpforms .wpforms-field input:not([type=radio]):not([type=checkbox]):not([type=submit]):not([type=button]):not([type=image]):not([type=file]), {{WRAPPER}} .eael-wpforms .wpforms-field textarea, {{WRAPPER}} .eael-wpforms .wpforms-field select',
742
+ 'separator' => 'before',
743
+ ]
744
+ );
745
+
746
+ $this->add_group_control(
747
+ Group_Control_Box_Shadow::get_type(),
748
+ [
749
+ 'name' => 'field_box_shadow',
750
+ 'selector' => '{{WRAPPER}} .eael-wpforms .wpforms-field input:not([type=radio]):not([type=checkbox]):not([type=submit]):not([type=button]):not([type=image]):not([type=file]), {{WRAPPER}} .eael-wpforms .wpforms-field textarea, {{WRAPPER}} .eael-wpforms .wpforms-field select',
751
+ 'separator' => 'before',
752
+ ]
753
+ );
754
+
755
+ $this->end_controls_tab();
756
+
757
+ $this->start_controls_tab(
758
+ 'tab_fields_focus',
759
+ [
760
+ 'label' => __( 'Focus', 'essential-addons-elementor' ),
761
+ ]
762
+ );
763
+
764
+ $this->add_group_control(
765
+ Group_Control_Border::get_type(),
766
+ [
767
+ 'name' => 'focus_input_border',
768
+ 'label' => __( 'Border', 'essential-addons-elementor' ),
769
+ 'placeholder' => '1px',
770
+ 'default' => '1px',
771
+ 'selector' => '{{WRAPPER}} .eael-wpforms .wpforms-field input:focus, {{WRAPPER}} .eael-wpforms .wpforms-field textarea:focus',
772
+ ]
773
+ );
774
+
775
+ $this->add_group_control(
776
+ Group_Control_Box_Shadow::get_type(),
777
+ [
778
+ 'name' => 'focus_box_shadow',
779
+ 'selector' => '{{WRAPPER}} .eael-wpforms .wpforms-field input:focus, {{WRAPPER}} .eael-wpforms .wpforms-field textarea:focus',
780
+ 'separator' => 'before',
781
+ ]
782
+ );
783
+
784
+ $this->end_controls_tab();
785
+
786
+ $this->end_controls_tabs();
787
+
788
+ $this->end_controls_section();
789
+
790
+ /**
791
+ * Style Tab: Field Description
792
+ * -------------------------------------------------
793
+ */
794
+ $this->start_controls_section(
795
+ 'section_field_description_style',
796
+ [
797
+ 'label' => __( 'Field Description', 'essential-addons-elementor' ),
798
+ 'tab' => Controls_Manager::TAB_STYLE,
799
+ ]
800
+ );
801
+
802
+ $this->add_control(
803
+ 'field_description_text_color',
804
+ [
805
+ 'label' => __( 'Text Color', 'essential-addons-elementor' ),
806
+ 'type' => Controls_Manager::COLOR,
807
+ 'selectors' => [
808
+ '{{WRAPPER}} .eael-wpforms .wpforms-field .wpforms-field-description, {{WRAPPER}} .eael-wpforms .wpforms-field .wpforms-field-sublabel' => 'color: {{VALUE}}',
809
+ ],
810
+ ]
811
+ );
812
+
813
+ $this->add_group_control(
814
+ Group_Control_Typography::get_type(),
815
+ [
816
+ 'name' => 'field_description_typography',
817
+ 'label' => __( 'Typography', 'essential-addons-elementor' ),
818
+ 'selector' => '{{WRAPPER}} .eael-wpforms .wpforms-field .wpforms-field-description, {{WRAPPER}} .eael-wpforms .wpforms-field .wpforms-field-sublabel',
819
+ ]
820
+ );
821
+
822
+ $this->add_responsive_control(
823
+ 'field_description_spacing',
824
+ [
825
+ 'label' => __( 'Spacing', 'essential-addons-elementor' ),
826
+ 'type' => Controls_Manager::SLIDER,
827
+ 'range' => [
828
+ 'px' => [
829
+ 'min' => 0,
830
+ 'max' => 100,
831
+ 'step' => 1,
832
+ ],
833
+ ],
834
+ 'size_units' => [ 'px', 'em', '%' ],
835
+ 'selectors' => [
836
+ '{{WRAPPER}} .eael-wpforms .wpforms-field .wpforms-field-description, {{WRAPPER}} .eael-wpforms .wpforms-field .wpforms-field-sublabel' => 'padding-top: {{SIZE}}{{UNIT}}',
837
+ ],
838
+ ]
839
+ );
840
+
841
+ $this->end_controls_section();
842
+
843
+ /**
844
+ * Style Tab: Placeholder
845
+ * -------------------------------------------------
846
+ */
847
+ $this->start_controls_section(
848
+ 'section_placeholder_style',
849
+ [
850
+ 'label' => __( 'Placeholder', 'essential-addons-elementor' ),
851
+ 'tab' => Controls_Manager::TAB_STYLE,
852
+ 'condition' => [
853
+ 'placeholder_switch' => 'yes',
854
+ ],
855
+ ]
856
+ );
857
+
858
+ $this->add_control(
859
+ 'text_color_placeholder',
860
+ [
861
+ 'label' => __( 'Text Color', 'essential-addons-elementor' ),
862
+ 'type' => Controls_Manager::COLOR,
863
+ 'selectors' => [
864
+ '{{WRAPPER}} .eael-wpforms .wpforms-field input::-webkit-input-placeholder, {{WRAPPER}} .eael-wpforms .wpforms-field textarea::-webkit-input-placeholder' => 'color: {{VALUE}}',
865
+ ],
866
+ 'condition' => [
867
+ 'placeholder_switch' => 'yes',
868
+ ],
869
+ ]
870
+ );
871
+
872
+ $this->end_controls_section();
873
+
874
+ /**
875
+ * Style Tab: Radio & Checkbox
876
+ * -------------------------------------------------
877
+ */
878
+ $this->start_controls_section(
879
+ 'section_radio_checkbox_style',
880
+ [
881
+ 'label' => __( 'Radio & Checkbox', 'essential-addons-elementor' ),
882
+ 'tab' => Controls_Manager::TAB_STYLE,
883
+ ]
884
+ );
885
+
886
+ $this->add_control(
887
+ 'custom_radio_checkbox',
888
+ [
889
+ 'label' => __( 'Custom Styles', 'essential-addons-elementor' ),
890
+ 'type' => Controls_Manager::SWITCHER,
891
+ 'label_on' => __( 'Yes', 'essential-addons-elementor' ),
892
+ 'label_off' => __( 'No', 'essential-addons-elementor' ),
893
+ 'return_value' => 'yes',
894
+ ]
895
+ );
896
+
897
+ $this->add_responsive_control(
898
+ 'radio_checkbox_size',
899
+ [
900
+ 'label' => __( 'Size', 'essential-addons-elementor' ),
901
+ 'type' => Controls_Manager::SLIDER,
902
+ 'default' => [
903
+ 'size' => '15',
904
+ 'unit' => 'px'
905
+ ],
906
+ 'range' => [
907
+ 'px' => [
908
+ 'min' => 0,
909
+ 'max' => 80,
910
+ 'step' => 1,
911
+ ],
912
+ ],
913
+ 'size_units' => [ 'px', 'em', '%' ],
914
+ 'selectors' => [
915
+ '{{WRAPPER}} .eael-custom-radio-checkbox input[type="checkbox"], {{WRAPPER}} .eael-custom-radio-checkbox input[type="radio"]' => 'width: {{SIZE}}{{UNIT}} !important; height: {{SIZE}}{{UNIT}}',
916
+ ],
917
+ 'condition' => [
918
+ 'custom_radio_checkbox' => 'yes',
919
+ ],
920
+ ]
921
+ );
922
+
923
+ $this->start_controls_tabs( 'tabs_radio_checkbox_style' );
924
+
925
+ $this->start_controls_tab(
926
+ 'radio_checkbox_normal',
927
+ [
928
+ 'label' => __( 'Normal', 'essential-addons-elementor' ),
929
+ 'condition' => [
930
+ 'custom_radio_checkbox' => 'yes',
931
+ ],
932
+ ]
933
+ );
934
+
935
+ $this->add_control(
936
+ 'radio_checkbox_color',
937
+ [
938
+ 'label' => __( 'Color', 'essential-addons-elementor' ),
939
+ 'type' => Controls_Manager::COLOR,
940
+ 'default' => '',
941
+ 'selectors' => [
942
+ '{{WRAPPER}} .eael-custom-radio-checkbox input[type="checkbox"], {{WRAPPER}} .eael-custom-radio-checkbox input[type="radio"]' => 'background: {{VALUE}}',
943
+ ],
944
+ 'condition' => [
945
+ 'custom_radio_checkbox' => 'yes',
946
+ ],
947
+ ]
948
+ );
949
+
950
+ $this->add_responsive_control(
951
+ 'radio_checkbox_border_width',
952
+ [
953
+ 'label' => __( 'Border Width', 'essential-addons-elementor' ),
954
+ 'type' => Controls_Manager::SLIDER,
955
+ 'range' => [
956
+ 'px' => [
957
+ 'min' => 0,
958
+ 'max' => 15,
959
+ 'step' => 1,
960
+ ],
961
+ ],
962
+ 'size_units' => [ 'px' ],
963
+ 'selectors' => [
964
+ '{{WRAPPER}} .eael-custom-radio-checkbox input[type="checkbox"], {{WRAPPER}} .eael-custom-radio-checkbox input[type="radio"]' => 'border-width: {{SIZE}}{{UNIT}}',
965
+ ],
966
+ 'condition' => [
967
+ 'custom_radio_checkbox' => 'yes',
968
+ ],
969
+ ]
970
+ );
971
+
972
+ $this->add_control(
973
+ 'radio_checkbox_border_color',
974
+ [
975
+ 'label' => __( 'Border Color', 'essential-addons-elementor' ),
976
+ 'type' => Controls_Manager::COLOR,
977
+ 'default' => '',
978
+ 'selectors' => [
979
+ '{{WRAPPER}} .eael-custom-radio-checkbox input[type="checkbox"], {{WRAPPER}} .eael-custom-radio-checkbox input[type="radio"]' => 'border-color: {{VALUE}}',
980
+ ],
981
+ 'condition' => [
982
+ 'custom_radio_checkbox' => 'yes',
983
+ ],
984
+ ]
985
+ );
986
+
987
+ $this->add_control(
988
+ 'checkbox_heading',
989
+ [
990
+ 'label' => __( 'Checkbox', 'essential-addons-elementor' ),
991
+ 'type' => Controls_Manager::HEADING,
992
+ 'condition' => [
993
+ 'custom_radio_checkbox' => 'yes',
994
+ ],
995
+ ]
996
+ );
997
+
998
+ $this->add_control(
999
+ 'checkbox_border_radius',
1000
+ [
1001
+ 'label' => __( 'Border Radius', 'essential-addons-elementor' ),
1002
+ 'type' => Controls_Manager::DIMENSIONS,
1003
+ 'size_units' => [ 'px', 'em', '%' ],
1004
+ 'selectors' => [
1005
+ '{{WRAPPER}} .eael-custom-radio-checkbox input[type="checkbox"], {{WRAPPER}} .eael-custom-radio-checkbox input[type="checkbox"]:before' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
1006
+ ],
1007
+ 'condition' => [
1008
+ 'custom_radio_checkbox' => 'yes',
1009
+ ],
1010
+ ]
1011
+ );
1012
+
1013
+ $this->add_control(
1014
+ 'radio_heading',
1015
+ [
1016
+ 'label' => __( 'Radio Buttons', 'essential-addons-elementor' ),
1017
+ 'type' => Controls_Manager::HEADING,
1018
+ 'condition' => [
1019
+ 'custom_radio_checkbox' => 'yes',
1020
+ ],
1021
+ ]
1022
+ );
1023
+
1024
+ $this->add_control(
1025
+ 'radio_border_radius',
1026
+ [
1027
+ 'label' => __( 'Border Radius', 'essential-addons-elementor' ),
1028
+ 'type' => Controls_Manager::DIMENSIONS,
1029
+ 'size_units' => [ 'px', 'em', '%' ],
1030
+ 'selectors' => [
1031
+ '{{WRAPPER}} .eael-custom-radio-checkbox input[type="radio"], {{WRAPPER}} .eael-custom-radio-checkbox input[type="radio"]:before' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
1032
+ ],
1033
+ 'condition' => [
1034
+ 'custom_radio_checkbox' => 'yes',
1035
+ ],
1036
+ ]
1037
+ );
1038
+
1039
+ $this->end_controls_tab();
1040
+
1041
+ $this->start_controls_tab(
1042
+ 'radio_checkbox_checked',
1043
+ [
1044
+ 'label' => __( 'Checked', 'essential-addons-elementor' ),
1045
+ 'condition' => [
1046
+ 'custom_radio_checkbox' => 'yes',
1047
+ ],
1048
+ ]
1049
+ );
1050
+
1051
+ $this->add_control(
1052
+ 'radio_checkbox_color_checked',
1053
+ [
1054
+ 'label' => __( 'Color', 'essential-addons-elementor' ),
1055
+ 'type' => Controls_Manager::COLOR,
1056
+ 'default' => '',
1057
+ 'selectors' => [
1058
+ '{{WRAPPER}} .eael-custom-radio-checkbox input[type="checkbox"]:checked:before, {{WRAPPER}} .eael-custom-radio-checkbox input[type="radio"]:checked:before' => 'background: {{VALUE}}',
1059
+ ],
1060
+ 'condition' => [
1061
+ 'custom_radio_checkbox' => 'yes',
1062
+ ],
1063
+ ]
1064
+ );
1065
+
1066
+ $this->end_controls_tab();
1067
+
1068
+ $this->end_controls_tabs();
1069
+
1070
+ $this->end_controls_section();
1071
+
1072
+ /**
1073
+ * Style Tab: Submit Button
1074
+ * -------------------------------------------------
1075
+ */
1076
+ $this->start_controls_section(
1077
+ 'section_submit_button_style',
1078
+ [
1079
+ 'label' => __( 'Submit Button', 'essential-addons-elementor' ),
1080
+ 'tab' => Controls_Manager::TAB_STYLE,
1081
+ ]
1082
+ );
1083
+
1084
+ $this->add_responsive_control(
1085
+ 'button_align',
1086
+ [
1087
+ 'label' => __( 'Alignment', 'essential-addons-elementor' ),
1088
+ 'type' => Controls_Manager::CHOOSE,
1089
+ 'options' => [
1090
+ 'left' => [
1091
+ 'title' => __( 'Left', 'essential-addons-elementor' ),
1092
+ 'icon' => 'eicon-h-align-left',
1093
+ ],
1094
+ 'center' => [
1095
+ 'title' => __( 'Center', 'essential-addons-elementor' ),
1096
+ 'icon' => 'eicon-h-align-center',
1097
+ ],
1098
+ 'right' => [
1099
+ 'title' => __( 'Right', 'essential-addons-elementor' ),
1100
+ 'icon' => 'eicon-h-align-right',
1101
+ ],
1102
+ ],
1103
+ 'default' => '',
1104
+ 'selectors' => [
1105
+ '{{WRAPPER}} .eael-wpforms .wpforms-submit-container' => 'text-align: {{VALUE}};',
1106
+ '{{WRAPPER}} .eael-wpforms .wpforms-submit-container .wpforms-submit' => 'display:inline-block;'
1107
+ ],
1108
+ 'condition' => [
1109
+ 'button_width_type' => 'custom',
1110
+ ],
1111
+ ]
1112
+ );
1113
+
1114
+ $this->add_control(
1115
+ 'button_width_type',
1116
+ [
1117
+ 'label' => __( 'Width', 'essential-addons-elementor' ),
1118
+ 'type' => Controls_Manager::SELECT,
1119
+ 'default' => 'custom',
1120
+ 'options' => [
1121
+ 'full-width' => __( 'Full Width', 'essential-addons-elementor' ),
1122
+ 'custom' => __( 'Custom', 'essential-addons-elementor' ),
1123
+ ],
1124
+ 'prefix_class' => 'eael-wpforms-form-button-',
1125
+ ]
1126
+ );
1127
+
1128
+ $this->add_responsive_control(
1129
+ 'button_width',
1130
+ [
1131
+ 'label' => __( 'Width', 'essential-addons-elementor' ),
1132
+ 'type' => Controls_Manager::SLIDER,
1133
+ 'range' => [
1134
+ 'px' => [
1135
+ 'min' => 0,
1136
+ 'max' => 1200,
1137
+ 'step' => 1,
1138
+ ],
1139
+ ],
1140
+ 'size_units' => [ 'px', '%' ],
1141
+ 'selectors' => [
1142
+ '{{WRAPPER}} .eael-wpforms .wpforms-submit-container .wpforms-submit' => 'width: {{SIZE}}{{UNIT}}',
1143
+ ],
1144
+ 'condition' => [
1145
+ 'button_width_type' => 'custom',
1146
+ ],
1147
+ ]
1148
+ );
1149
+
1150
+ $this->start_controls_tabs( 'tabs_button_style' );
1151
+
1152
+ $this->start_controls_tab(
1153
+ 'tab_button_normal',
1154
+ [
1155
+ 'label' => __( 'Normal', 'essential-addons-elementor' ),
1156
+ ]
1157
+ );
1158
+
1159
+ $this->add_control(
1160
+ 'button_bg_color_normal',
1161
+ [
1162
+ 'label' => __( 'Background Color', 'essential-addons-elementor' ),
1163
+ 'type' => Controls_Manager::COLOR,
1164
+ 'default' => '',
1165
+ 'selectors' => [
1166
+ '{{WRAPPER}} .eael-wpforms .wpforms-submit-container .wpforms-submit' => 'background-color: {{VALUE}}',
1167
+ ],
1168
+ ]
1169
+ );
1170
+
1171
+ $this->add_control(
1172
+ 'button_text_color_normal',
1173
+ [
1174
+ 'label' => __( 'Text Color', 'essential-addons-elementor' ),
1175
+ 'type' => Controls_Manager::COLOR,
1176
+ 'default' => '',
1177
+ 'selectors' => [
1178
+ '{{WRAPPER}} .eael-wpforms .wpforms-submit-container .wpforms-submit' => 'color: {{VALUE}}',
1179
+ ],
1180
+ ]
1181
+ );
1182
+
1183
+ $this->add_group_control(
1184
+ Group_Control_Border::get_type(),
1185
+ [
1186
+ 'name' => 'button_border_normal',
1187
+ 'label' => __( 'Border', 'essential-addons-elementor' ),
1188
+ 'placeholder' => '1px',
1189
+ 'default' => '1px',
1190
+ 'selector' => '{{WRAPPER}} .eael-wpforms .wpforms-submit-container .wpforms-submit',
1191
+ ]
1192
+ );
1193
+
1194
+ $this->add_control(
1195
+ 'button_border_radius',
1196
+ [
1197
+ 'label' => __( 'Border Radius', 'essential-addons-elementor' ),
1198
+ 'type' => Controls_Manager::DIMENSIONS,
1199
+ 'size_units' => [ 'px', 'em', '%' ],
1200
+ 'selectors' => [
1201
+ '{{WRAPPER}} .eael-wpforms .wpforms-submit-container .wpforms-submit' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
1202
+ ],
1203
+ ]
1204
+ );
1205
+
1206
+ $this->add_responsive_control(
1207
+ 'button_padding',
1208
+ [
1209
+ 'label' => __( 'Padding', 'essential-addons-elementor' ),
1210
+ 'type' => Controls_Manager::DIMENSIONS,
1211
+ 'size_units' => [ 'px', 'em', '%' ],
1212
+ 'selectors' => [
1213
+ '{{WRAPPER}} .eael-wpforms .wpforms-submit-container .wpforms-submit' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
1214
+ ],
1215
+ ]
1216
+ );
1217
+
1218
+ $this->add_responsive_control(
1219
+ 'button_margin',
1220
+ [
1221
+ 'label' => __( 'Margin Top', 'essential-addons-elementor' ),
1222
+ 'type' => Controls_Manager::SLIDER,
1223
+ 'range' => [
1224
+ 'px' => [
1225
+ 'min' => 0,
1226
+ 'max' => 100,
1227
+ 'step' => 1,
1228
+ ],
1229
+ ],
1230
+ 'size_units' => [ 'px', 'em', '%' ],
1231
+ 'selectors' => [
1232
+ '{{WRAPPER}} .eael-wpforms .wpforms-submit-container' => 'margin-top: {{SIZE}}{{UNIT}}',
1233
+ ],
1234
+ ]
1235
+ );
1236
+
1237
+ $this->add_group_control(
1238
+ Group_Control_Typography::get_type(),
1239
+ [
1240
+ 'name' => 'button_typography',
1241
+ 'label' => __( 'Typography', 'essential-addons-elementor' ),
1242
+ 'scheme' => Scheme_Typography::TYPOGRAPHY_4,
1243
+ 'selector' => '{{WRAPPER}} .eael-wpforms .wpforms-submit-container .wpforms-submit',
1244
+ 'separator' => 'before',
1245
+ ]
1246
+ );
1247
+
1248
+ $this->add_group_control(
1249
+ Group_Control_Box_Shadow::get_type(),
1250
+ [
1251
+ 'name' => 'button_box_shadow',
1252
+ 'selector' => '{{WRAPPER}} .eael-wpforms .wpforms-submit-container .wpforms-submit',
1253
+ 'separator' => 'before',
1254
+ ]
1255
+ );
1256
+
1257
+ $this->end_controls_tab();
1258
+
1259
+ $this->start_controls_tab(
1260
+ 'tab_button_hover',
1261
+ [
1262
+ 'label' => __( 'Hover', 'essential-addons-elementor' ),
1263
+ ]
1264
+ );
1265
+
1266
+ $this->add_control(
1267
+ 'button_bg_color_hover',
1268
+ [
1269
+ 'label' => __( 'Background Color', 'essential-addons-elementor' ),
1270
+ 'type' => Controls_Manager::COLOR,
1271
+ 'default' => '',
1272
+ 'selectors' => [
1273
+ '{{WRAPPER}} .eael-wpforms .wpforms-submit-container .wpforms-submit:hover' => 'background-color: {{VALUE}}',
1274
+ ],
1275
+ ]
1276
+ );
1277
+
1278
+ $this->add_control(
1279
+ 'button_text_color_hover',
1280
+ [
1281
+ 'label' => __( 'Text Color', 'essential-addons-elementor' ),
1282
+ 'type' => Controls_Manager::COLOR,
1283
+ 'default' => '',
1284
+ 'selectors' => [
1285
+ '{{WRAPPER}} .eael-wpforms .wpforms-submit-container .wpforms-submit:hover' => 'color: {{VALUE}}',
1286
+ ],
1287
+ ]
1288
+ );
1289
+
1290
+ $this->add_control(
1291
+ 'button_border_color_hover',
1292
+ [
1293
+ 'label' => __( 'Border Color', 'essential-addons-elementor' ),
1294
+ 'type' => Controls_Manager::COLOR,
1295
+ 'default' => '',
1296
+ 'selectors' => [
1297
+ '{{WRAPPER}} .eael-wpforms .wpforms-submit-container .wpforms-submit:hover' => 'border-color: {{VALUE}}',
1298
+ ],
1299
+ ]
1300
+ );
1301
+
1302
+ $this->end_controls_tab();
1303
+
1304
+ $this->end_controls_tabs();
1305
+
1306
+ $this->end_controls_section();
1307
+
1308
+ /**
1309
+ * Style Tab: Errors
1310
+ * -------------------------------------------------
1311
+ */
1312
+ $this->start_controls_section(
1313
+ 'section_error_style',
1314
+ [
1315
+ 'label' => __( 'Errors', 'essential-addons-elementor' ),
1316
+ 'tab' => Controls_Manager::TAB_STYLE,
1317
+ 'condition' => [
1318
+ 'error_messages' => 'show',
1319
+ ],
1320
+ ]
1321
+ );
1322
+
1323
+ $this->add_control(
1324
+ 'error_message_text_color',
1325
+ [
1326
+ 'label' => __( 'Text Color', 'essential-addons-elementor' ),
1327
+ 'type' => Controls_Manager::COLOR,
1328
+ 'default' => '',
1329
+ 'selectors' => [
1330
+ '{{WRAPPER}} .eael-wpforms label.wpforms-error' => 'color: {{VALUE}}',
1331
+ ],
1332
+ 'condition' => [
1333
+ 'error_messages' => 'show',
1334
+ ],
1335
+ ]
1336
+ );
1337
+
1338
+ $this->add_control(
1339
+ 'error_field_input_border_color',
1340
+ [
1341
+ 'label' => __( 'Error Field Input Border Color', 'essential-addons-elementor' ),
1342
+ 'type' => Controls_Manager::COLOR,
1343
+ 'default' => '',
1344
+ 'selectors' => [
1345
+ '{{WRAPPER}} .eael-wpforms input.wpforms-error, {{WRAPPER}} .eael-wpforms textarea.wpforms-error' => 'border-color: {{VALUE}}',
1346
+ ],
1347
+ 'condition' => [
1348
+ 'error_messages' => 'show',
1349
+ ],
1350
+ ]
1351
+ );
1352
+
1353
+ $this->add_control(
1354
+ 'error_field_input_border_width',
1355
+ [
1356
+ 'label' => __( 'Error Field Input Border Width', 'essential-addons-elementor' ),
1357
+ 'type' => Controls_Manager::NUMBER,
1358
+ 'default' => 1,
1359
+ 'min' => 1,
1360
+ 'max' => 10,
1361
+ 'step' => 1,
1362
+ 'selectors' => [
1363
+ '{{WRAPPER}} .eael-wpforms input.wpforms-error, {{WRAPPER}} .eael-wpforms textarea.wpforms-error' => 'border-width: {{VALUE}}px',
1364
+ ],
1365
+ 'condition' => [
1366
+ 'error_messages' => 'show',
1367
+ ],
1368
+ ]
1369
+ );
1370
+
1371
+ $this->end_controls_section();
1372
+ }
1373
+
1374
+ protected function render() {
1375
+ $settings = $this->get_settings();
1376
+
1377
+ $this->add_render_attribute( 'contact-form', 'class', [
1378
+ 'eael-contact-form',
1379
+ 'eael-wpforms',
1380
+ ]
1381
+ );
1382
+
1383
+ if ( $settings['placeholder_switch'] != 'yes' ) {
1384
+ $this->add_render_attribute( 'contact-form', 'class', 'placeholder-hide' );
1385
+ }
1386
+
1387
+ if ( $settings['custom_title_description'] == 'yes' ) {
1388
+ $this->add_render_attribute( 'contact-form', 'class', 'title-description-hide' );
1389
+ }
1390
+
1391
+ if ( $settings['custom_radio_checkbox'] == 'yes' ) {
1392
+ $this->add_render_attribute( 'contact-form', 'class', 'eael-custom-radio-checkbox' );
1393
+ }
1394
+ if ( $settings['eael_contact_form_alignment'] == 'left' ) {
1395
+ $this->add_render_attribute( 'contact-form', 'class', 'eael-contact-form-align-left' );
1396
+ }
1397
+ elseif ( $settings['eael_contact_form_alignment'] == 'center' ) {
1398
+ $this->add_render_attribute( 'contact-form', 'class', 'eael-contact-form-align-center' );
1399
+ }
1400
+ elseif ( $settings['eael_contact_form_alignment'] == 'right' ) {
1401
+ $this->add_render_attribute( 'contact-form', 'class', 'eael-contact-form-align-right' );
1402
+ }
1403
+ else {
1404
+ $this->add_render_attribute( 'contact-form', 'class', 'eael-contact-form-align-default' );
1405
+ }
1406
+
1407
+ if ( class_exists( 'WPForms' ) ) {
1408
+ if ( ! empty( $settings['contact_form_list'] ) ) { ?>
1409
+ <div <?php echo $this->get_render_attribute_string( 'contact-form' ); ?>>
1410
+ <?php if ( $settings['custom_title_description'] == 'yes' ) { ?>
1411
+ <div class="eael-wpforms-heading">
1412
+ <?php if ( $settings['form_title_custom'] != '' ) { ?>
1413
+ <h3 class="eael-contact-form-title eael-wpforms-title">
1414
+ <?php echo esc_attr( $settings['form_title_custom'] ); ?>
1415
+ </h3>
1416
+ <?php } ?>
1417
+ <?php if ( $settings['form_description_custom'] != '' ) { ?>
1418
+ <div class="eael-contact-form-description eael-wpforms-description">
1419
+ <?php echo $this->parse_text_editor( $settings['form_description_custom'] ); ?>
1420
+ </div>
1421
+ <?php } ?>
1422
+ </div>
1423
+ <?php } ?>
1424
+ <?php
1425
+ $eael_form_title = $settings['form_title'];
1426
+ $eael_form_description = $settings['form_description'];
1427
+
1428
+ if ( $settings['custom_title_description'] == 'yes' ) {
1429
+ $eael_form_title = false;
1430
+ $eael_form_description = false;
1431
+ }
1432
+
1433
+ echo wpforms_display( $settings['contact_form_list'], $eael_form_title, $eael_form_description );
1434
+ ?>
1435
+ </div>
1436
+ <?php
1437
+ }
1438
+ }
1439
+ }
1440
+
1441
+ protected function _content_template() {}
1442
+
1443
+ }
1444
+
1445
+ Plugin::instance()->widgets_manager->register_widget_type( new Widget_Eael_WpForms() );
essential_adons_elementor.php CHANGED
@@ -4,7 +4,7 @@
4
  * Description: The ultimate elements library for Elementor page builder plugin for WordPress.
5
  * Plugin URI: https://essential-addons.com/elementor/
6
  * Author: Codetic
7
- * Version: 2.7.1
8
  * Author URI: https://www.codetic.net
9
  *
10
  * Text Domain: essential-addons-elementor
@@ -114,6 +114,9 @@ function add_eael_elements() {
114
  if( class_exists( 'Caldera_Forms' ) && $is_component_active['caldera-form'] ) {
115
  require_once ESSENTIAL_ADDONS_EL_PATH.'elements/caldera-forms/caldera-forms.php';
116
  }
 
 
 
117
  if( $is_component_active['twitter-feed'] ) {
118
  require_once ESSENTIAL_ADDONS_EL_PATH.'elements/twitter-feed/twitter-feed.php';
119
  }
@@ -150,9 +153,9 @@ add_action('elementor/widgets/widgets_registered','add_eael_elements');
150
  * @since v1.0.0
151
  */
152
  function essential_addons_el_enqueue(){
153
- $is_component_active = eael_activated_modules();
154
- wp_enqueue_style('essential_addons_elementor-css',ESSENTIAL_ADDONS_EL_URL.'assets/css/essential-addons-elementor.css');
155
- wp_enqueue_style('essential_addons_elementor-slick-css',ESSENTIAL_ADDONS_EL_URL.'assets/slick/slick.css');
156
 
157
  wp_enqueue_script('eael-scripts',ESSENTIAL_ADDONS_EL_URL.'assets/js/eael-scripts.js', array('jquery'),'1.0', true);
158
  if ( class_exists( 'GFCommon' ) ) {
@@ -162,35 +165,38 @@ function essential_addons_el_enqueue(){
162
  }
163
  };
164
  }
165
- if( $is_component_active['fancy-text'] ) {
 
 
 
166
  wp_enqueue_script('essential_addons_elementor-fancy-text-js',ESSENTIAL_ADDONS_EL_URL.'assets/js/fancy-text.js', array('jquery'),'1.0', true);
167
- }
168
- if( $is_component_active['count-down'] ) {
169
  wp_enqueue_script('essential_addons_elementor-countdown-js',ESSENTIAL_ADDONS_EL_URL.'assets/js/countdown.min.js', array('jquery'),'1.0', true);
170
- }
171
- if( $is_component_active['post-grid'] || $is_component_active['twitter-feed'] || $is_component_active['facebook-feed'] ) {
172
  wp_enqueue_script('essential_addons_elementor-masonry-js',ESSENTIAL_ADDONS_EL_URL.'assets/js/masonry.min.js', array('jquery'),'1.0', true);
173
- }
174
- if( $is_component_active['post-grid'] || $is_component_active['post-timeline'] ) {
175
  wp_enqueue_script('essential_addons_elementor-load-more-js',ESSENTIAL_ADDONS_EL_URL.'assets/js/load-more.js', array('jquery'),'1.0', true);
176
- }
177
- if( $is_component_active['twitter-feed']) {
178
  wp_enqueue_script('essential_addons_elementor-codebird-js',ESSENTIAL_ADDONS_EL_URL.'assets/social-feeds/codebird.js', array('jquery'),'1.0', true);
179
- }
180
- if( $is_component_active['twitter-feed'] || $is_component_active['facebook-feed'] ) {
181
  wp_enqueue_script('essential_addons_elementor-doT-js',ESSENTIAL_ADDONS_EL_URL.'assets/social-feeds/doT.min.js', array('jquery'),'1.0', true);
182
  wp_enqueue_script('essential_addons_elementor-moment-js',ESSENTIAL_ADDONS_EL_URL.'assets/social-feeds/moment.js', array('jquery'),'1.0', true);
183
  wp_enqueue_script('essential_addons_elementor-socialfeed-js',ESSENTIAL_ADDONS_EL_URL.'assets/social-feeds/jquery.socialfeed.js', array('jquery'),'1.0', true);
184
- }
185
 
186
- if( $is_component_active['filter-gallery'] ) {
187
  wp_enqueue_script('essential_addons_mixitup-js',ESSENTIAL_ADDONS_EL_URL.'assets/js/mixitup.min.js', array('jquery'),'1.0', true);
188
  wp_enqueue_script('essential_addons_magnific-popup-js',ESSENTIAL_ADDONS_EL_URL.'assets/js/jquery.magnific-popup.min.js', array('jquery'),'1.0', true);
189
- }
190
 
191
- if( $is_component_active['content-ticker'] ) {
192
  wp_enqueue_script('essential_addons_elementor-slick-js',ESSENTIAL_ADDONS_EL_URL.'assets/slick/slick.min.js', array('jquery'),'1.0', true);
193
- }
194
 
195
  }
196
  add_action( 'wp_enqueue_scripts', 'essential_addons_el_enqueue' );
@@ -321,10 +327,10 @@ function eael_admin_notice() {
321
  global $current_user ;
322
  $user_id = $current_user->ID;
323
  /* Check that the user hasn't already clicked to ignore the message */
324
- if ( ! get_user_meta($user_id, 'eael_ignore_notice260') ) {
325
  echo '<div class="eael-admin-notice updated" style="display: flex; align-items: center; padding-left: 0; border-left-color: #EF4B53"><p style="width: 36px;">';
326
  echo '<img style="width: 100%; display: block;" src="' . plugins_url( '/', __FILE__ ).'admin/assets/images/icon-heart.svg'. '" ></p><p> ';
327
- printf(__('<strong>Essential Addons for Elementor</strong> crossed <strong>100,000+</strong> downloads. Use the coupon code <strong>100K</strong> to redeem a <strong>25&#37; </strong> discount on Pro. <a href="https://wpdeveloper.net/in/upgrade-essential-addons-elementor" target="_blank" style="text-decoration: none;"><span class="dashicons dashicons-smiley" style="margin-left: 10px;"></span> Grab the Deal</a>
328
  <a href="%1$s" style="text-decoration: none; margin-left: 10px;"><span class="dashicons dashicons-dismiss"></span> Dismiss</a>'), admin_url( 'admin.php?page=eael-settings&eael_nag_ignore=0' ));
329
  echo "</p></div>";
330
  }
@@ -341,7 +347,7 @@ function eael_nag_ignore() {
341
  $user_id = $current_user->ID;
342
  /* If user clicks to ignore the notice, add that to their user meta */
343
  if ( isset($_GET['eael_nag_ignore']) && '0' == $_GET['eael_nag_ignore'] ) {
344
- add_user_meta($user_id, 'eael_ignore_notice260', 'true', true);
345
  }
346
  }
347
  add_action('admin_init', 'eael_nag_ignore');
4
  * Description: The ultimate elements library for Elementor page builder plugin for WordPress.
5
  * Plugin URI: https://essential-addons.com/elementor/
6
  * Author: Codetic
7
+ * Version: 2.7.2
8
  * Author URI: https://www.codetic.net
9
  *
10
  * Text Domain: essential-addons-elementor
114
  if( class_exists( 'Caldera_Forms' ) && $is_component_active['caldera-form'] ) {
115
  require_once ESSENTIAL_ADDONS_EL_PATH.'elements/caldera-forms/caldera-forms.php';
116
  }
117
+ if( class_exists( 'WPForms' ) && $is_component_active['wpforms'] ) {
118
+ require_once ESSENTIAL_ADDONS_EL_PATH.'elements/wpforms/wpforms.php';
119
+ }
120
  if( $is_component_active['twitter-feed'] ) {
121
  require_once ESSENTIAL_ADDONS_EL_PATH.'elements/twitter-feed/twitter-feed.php';
122
  }
153
  * @since v1.0.0
154
  */
155
  function essential_addons_el_enqueue(){
156
+ $is_component_active = eael_activated_modules();
157
+ wp_enqueue_style('essential_addons_elementor-css',ESSENTIAL_ADDONS_EL_URL.'assets/css/essential-addons-elementor.css');
158
+ wp_enqueue_style('essential_addons_elementor-slick-css',ESSENTIAL_ADDONS_EL_URL.'assets/slick/slick.css');
159
 
160
  wp_enqueue_script('eael-scripts',ESSENTIAL_ADDONS_EL_URL.'assets/js/eael-scripts.js', array('jquery'),'1.0', true);
161
  if ( class_exists( 'GFCommon' ) ) {
165
  }
166
  };
167
  }
168
+ if ( function_exists( 'wpforms' ) ) {
169
+ wpforms()->frontend->assets_css();
170
+ }
171
+ if( $is_component_active['fancy-text'] ) {
172
  wp_enqueue_script('essential_addons_elementor-fancy-text-js',ESSENTIAL_ADDONS_EL_URL.'assets/js/fancy-text.js', array('jquery'),'1.0', true);
173
+ }
174
+ if( $is_component_active['count-down'] ) {
175
  wp_enqueue_script('essential_addons_elementor-countdown-js',ESSENTIAL_ADDONS_EL_URL.'assets/js/countdown.min.js', array('jquery'),'1.0', true);
176
+ }
177
+ if( $is_component_active['post-grid'] || $is_component_active['twitter-feed'] || $is_component_active['facebook-feed'] ) {
178
  wp_enqueue_script('essential_addons_elementor-masonry-js',ESSENTIAL_ADDONS_EL_URL.'assets/js/masonry.min.js', array('jquery'),'1.0', true);
179
+ }
180
+ if( $is_component_active['post-grid'] || $is_component_active['post-timeline'] ) {
181
  wp_enqueue_script('essential_addons_elementor-load-more-js',ESSENTIAL_ADDONS_EL_URL.'assets/js/load-more.js', array('jquery'),'1.0', true);
182
+ }
183
+ if( $is_component_active['twitter-feed']) {
184
  wp_enqueue_script('essential_addons_elementor-codebird-js',ESSENTIAL_ADDONS_EL_URL.'assets/social-feeds/codebird.js', array('jquery'),'1.0', true);
185
+ }
186
+ if( $is_component_active['twitter-feed'] || $is_component_active['facebook-feed'] ) {
187
  wp_enqueue_script('essential_addons_elementor-doT-js',ESSENTIAL_ADDONS_EL_URL.'assets/social-feeds/doT.min.js', array('jquery'),'1.0', true);
188
  wp_enqueue_script('essential_addons_elementor-moment-js',ESSENTIAL_ADDONS_EL_URL.'assets/social-feeds/moment.js', array('jquery'),'1.0', true);
189
  wp_enqueue_script('essential_addons_elementor-socialfeed-js',ESSENTIAL_ADDONS_EL_URL.'assets/social-feeds/jquery.socialfeed.js', array('jquery'),'1.0', true);
190
+ }
191
 
192
+ if( $is_component_active['filter-gallery'] ) {
193
  wp_enqueue_script('essential_addons_mixitup-js',ESSENTIAL_ADDONS_EL_URL.'assets/js/mixitup.min.js', array('jquery'),'1.0', true);
194
  wp_enqueue_script('essential_addons_magnific-popup-js',ESSENTIAL_ADDONS_EL_URL.'assets/js/jquery.magnific-popup.min.js', array('jquery'),'1.0', true);
195
+ }
196
 
197
+ if( $is_component_active['content-ticker'] ) {
198
  wp_enqueue_script('essential_addons_elementor-slick-js',ESSENTIAL_ADDONS_EL_URL.'assets/slick/slick.min.js', array('jquery'),'1.0', true);
199
+ }
200
 
201
  }
202
  add_action( 'wp_enqueue_scripts', 'essential_addons_el_enqueue' );
327
  global $current_user ;
328
  $user_id = $current_user->ID;
329
  /* Check that the user hasn't already clicked to ignore the message */
330
+ if ( ! get_user_meta($user_id, 'eael_ignore_notice272') ) {
331
  echo '<div class="eael-admin-notice updated" style="display: flex; align-items: center; padding-left: 0; border-left-color: #EF4B53"><p style="width: 36px;">';
332
  echo '<img style="width: 100%; display: block;" src="' . plugins_url( '/', __FILE__ ).'admin/assets/images/icon-heart.svg'. '" ></p><p> ';
333
+ printf(__('<strong>Essential Addons for Elementor</strong> crossed <strong>40,000+</strong> active installs. Use the coupon code <strong>40K</strong> to redeem a <strong>25&#37; </strong> discount on Pro. <a href="https://wpdeveloper.net/in/upgrade-essential-addons-elementor" target="_blank" style="text-decoration: none;"><span class="dashicons dashicons-smiley" style="margin-left: 10px;"></span> Grab the Deal</a>
334
  <a href="%1$s" style="text-decoration: none; margin-left: 10px;"><span class="dashicons dashicons-dismiss"></span> Dismiss</a>'), admin_url( 'admin.php?page=eael-settings&eael_nag_ignore=0' ));
335
  echo "</p></div>";
336
  }
347
  $user_id = $current_user->ID;
348
  /* If user clicks to ignore the notice, add that to their user meta */
349
  if ( isset($_GET['eael_nag_ignore']) && '0' == $_GET['eael_nag_ignore'] ) {
350
+ add_user_meta($user_id, 'eael_ignore_notice272', 'true', true);
351
  }
352
  }
353
  add_action('admin_init', 'eael_nag_ignore');
includes/queries.php CHANGED
@@ -23,7 +23,9 @@ function eael_get_post_data( $args ) {
23
  'author' => '',
24
  'author_name' => '',
25
  'post_status' => 'publish',
26
- 'suppress_filters' => true
 
 
27
  );
28
 
29
  $atts = wp_parse_args( $args, $defaults );
@@ -81,10 +83,19 @@ function eael_get_post_settings($settings){
81
  $post_args['category'] = $settings['category'];
82
  }
83
 
 
 
 
 
 
 
84
  $post_args['posts_per_page'] = $settings['eael_posts_count'];
85
  $post_args['offset'] = $settings['eael_post_offset'];
86
  $post_args['orderby'] = $settings['eael_post_orderby'];
87
  $post_args['order'] = $settings['eael_post_order'];
 
 
 
88
 
89
  return $post_args;
90
  }
@@ -358,6 +369,41 @@ if ( !function_exists('eael_select_caldera_form') ) {
358
  }
359
  }
360
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
361
 
362
  // Get all elementor page templates
363
  if ( !function_exists('eael_get_page_templates') ) {
@@ -376,4 +422,59 @@ if ( !function_exists('eael_get_page_templates') ) {
376
  }
377
  return $options;
378
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
379
  }
23
  'author' => '',
24
  'author_name' => '',
25
  'post_status' => 'publish',
26
+ 'suppress_filters' => true,
27
+ 'tag__in' => '',
28
+ 'post__not_in' => '',
29
  );
30
 
31
  $atts = wp_parse_args( $args, $defaults );
83
  $post_args['category'] = $settings['category'];
84
  }
85
 
86
+ $eael_tiled_post_author = '';
87
+ $eael_tiled_post_authors = $settings['eael_post_authors'];
88
+ if ( !empty( $eael_tiled_post_authors) ) {
89
+ $eael_tiled_post_author = implode( ",", $eael_tiled_post_authors );
90
+ }
91
+
92
  $post_args['posts_per_page'] = $settings['eael_posts_count'];
93
  $post_args['offset'] = $settings['eael_post_offset'];
94
  $post_args['orderby'] = $settings['eael_post_orderby'];
95
  $post_args['order'] = $settings['eael_post_order'];
96
+ $post_args['tag__in'] = $settings['eael_post_tags'];
97
+ $post_args['post__not_in'] = $settings['eael_post_exclude_posts'];
98
+ $post_args['author'] = $eael_tiled_post_author;
99
 
100
  return $post_args;
101
  }
369
  }
370
  }
371
 
372
+ /**
373
+ * Get WPForms List
374
+ * @return array
375
+ */
376
+ if ( !function_exists('eael_select_wpforms_forms') ) {
377
+ function eael_select_wpforms_forms() {
378
+ if ( class_exists( 'WPForms' ) ) {
379
+ $options = array();
380
+
381
+ $args = array(
382
+ 'post_type' => 'wpforms',
383
+ 'posts_per_page' => -1
384
+ );
385
+
386
+ $contact_forms = get_posts( $args );
387
+
388
+ if ( ! empty( $contact_forms ) && ! is_wp_error( $contact_forms ) ) {
389
+
390
+ $i = 0;
391
+
392
+ foreach ( $contact_forms as $post ) {
393
+ if ( $i == 0 ) {
394
+ $options[0] = esc_html__( 'Select a WPForm', 'essential-addons-elementor' );
395
+ }
396
+ $options[ $post->ID ] = $post->post_title;
397
+ $i++;
398
+ }
399
+ }
400
+ } else {
401
+ $options = array();
402
+ }
403
+
404
+ return $options;
405
+ }
406
+ }
407
 
408
  // Get all elementor page templates
409
  if ( !function_exists('eael_get_page_templates') ) {
422
  }
423
  return $options;
424
  }
425
+ }
426
+
427
+ // Get all Authors
428
+ if ( !function_exists('eael_get_authors') ) {
429
+ function eael_get_authors() {
430
+
431
+ $options = array();
432
+
433
+ $users = get_users();
434
+
435
+ foreach ( $users as $user ) {
436
+ $options[ $user->ID ] = $user->display_name;
437
+ }
438
+
439
+ return $options;
440
+ }
441
+ }
442
+
443
+ // Get all Authors
444
+ if ( !function_exists('eael_get_tags') ) {
445
+ function eael_get_tags() {
446
+
447
+ $options = array();
448
+
449
+ $tags = get_tags();
450
+
451
+ foreach ( $tags as $tag ) {
452
+ $options[ $tag->term_id ] = $tag->name;
453
+ }
454
+
455
+ return $options;
456
+ }
457
+ }
458
+
459
+ // Get all Posts
460
+ if ( !function_exists('eael_get_posts') ) {
461
+ function eael_get_posts() {
462
+
463
+ $post_list = get_posts( array(
464
+ 'post_type' => 'post',
465
+ 'orderby' => 'date',
466
+ 'order' => 'DESC',
467
+ 'posts_per_page' => -1,
468
+ ) );
469
+
470
+ $posts = array();
471
+
472
+ if ( ! empty( $post_list ) && ! is_wp_error( $post_list ) ) {
473
+ foreach ( $post_list as $post ) {
474
+ $posts[ $post->ID ] = $post->post_title;
475
+ }
476
+ }
477
+
478
+ return $posts;
479
+ }
480
  }
readme.txt CHANGED
@@ -1,13 +1,13 @@
1
  === Elementor Essential Addons ===
2
- Contributors: Codetic, re_enter_rupok, Asif2BD
3
  Tags: elementor, elements, addons, elementor addon, elementor widget, page builder, builder, visual editor, wordpress page builder, elementor form
4
  Requires at least: 4.0
5
  Tested up to: 4.9.6
6
- Stable tag: 2.7.1
7
  License: GPLv3
8
  License URI: https://opensource.org/licenses/GPL-3.0
9
 
10
- Ultimate elements library for Elementor WordPress Page Builder. 44+ Premium elements with endless customization options.
11
 
12
  == Description ==
13
 
@@ -20,7 +20,7 @@ Ultimate elements library for Elementor WordPress Page Builder. Lots of useful
20
 
21
  ### Features
22
 
23
- * 27+ Stunning Elements (Free)
24
  * Fully Customizable
25
  * Unlimited Design Options
26
  * Elements Control option
@@ -29,7 +29,7 @@ Ultimate elements library for Elementor WordPress Page Builder. Lots of useful
29
 
30
  >You can enable/disable certain elements and that will eliminate all associated assets of disabled elements. So it won't slow down your website.
31
 
32
- ### Available Elements
33
 
34
  * [Post Grid](https://essential-addons.com/elementor/post-grid/)
35
  * [Post Timeline](https://essential-addons.com/elementor/post-timeline/)
@@ -43,6 +43,7 @@ Ultimate elements library for Elementor WordPress Page Builder. Lots of useful
43
  * [Gravity Forms](https://essential-addons.com/elementor/gravity-forms/)
44
  * [Ninja Forms](https://essential-addons.com/elementor/ninja-forms/)
45
  * [Caldera Forms](https://essential-addons.com/elementor/caldera-forms/)
 
46
  * [weForms](https://essential-addons.com/elementor/weforms/)
47
  * [Info Box](https://essential-addons.com/elementor/info-box/)
48
  * [Flip Box](https://essential-addons.com/elementor/flip-box/)
@@ -60,8 +61,7 @@ Ultimate elements library for Elementor WordPress Page Builder. Lots of useful
60
  * [Advanced Accordion](https://essential-addons.com/elementor/advanced-accordion/)
61
 
62
 
63
-
64
- ### More elements (17+) on [Premium Version](https://essential-addons.com/elementor/buy.php)
65
 
66
  * [Post Block (Flex)](https://essential-addons.com/elementor/post-block/)
67
  * [Lightbox & Modal](https://essential-addons.com/elementor/lightbox-modal/)
@@ -80,6 +80,14 @@ Ultimate elements library for Elementor WordPress Page Builder. Lots of useful
80
  * [Smart Post List](https://essential-addons.com/elementor/post-list/)
81
  * [Mailchimp](https://essential-addons.com/elementor/mailchimp/)
82
  * [Content Toggle](https://essential-addons.com/elementor/content-toggle/)
 
 
 
 
 
 
 
 
83
 
84
  More coming soon (weekly update) ...
85
 
@@ -130,6 +138,17 @@ Your existing elements/content will work with premium version. So you won't lose
130
 
131
  == Changelog ==
132
 
 
 
 
 
 
 
 
 
 
 
 
133
  = 2.7.1 =
134
 
135
  - "On Sale Price" option added to Pricing Table element
1
  === Elementor Essential Addons ===
2
+ Contributors: Codetic, re_enter_rupok, Asif2BD, robicse11128
3
  Tags: elementor, elements, addons, elementor addon, elementor widget, page builder, builder, visual editor, wordpress page builder, elementor form
4
  Requires at least: 4.0
5
  Tested up to: 4.9.6
6
+ Stable tag: 2.7.2
7
  License: GPLv3
8
  License URI: https://opensource.org/licenses/GPL-3.0
9
 
10
+ Ultimate elements library for Elementor WordPress Page Builder. 53+ Premium elements with endless customization options.
11
 
12
  == Description ==
13
 
20
 
21
  ### Features
22
 
23
+ * 28+ Stunning Elements (Free)
24
  * Fully Customizable
25
  * Unlimited Design Options
26
  * Elements Control option
29
 
30
  >You can enable/disable certain elements and that will eliminate all associated assets of disabled elements. So it won't slow down your website.
31
 
32
+ ### Available Elements (Free)
33
 
34
  * [Post Grid](https://essential-addons.com/elementor/post-grid/)
35
  * [Post Timeline](https://essential-addons.com/elementor/post-timeline/)
43
  * [Gravity Forms](https://essential-addons.com/elementor/gravity-forms/)
44
  * [Ninja Forms](https://essential-addons.com/elementor/ninja-forms/)
45
  * [Caldera Forms](https://essential-addons.com/elementor/caldera-forms/)
46
+ * [WPForms](https://essential-addons.com/elementor/wpforms/)
47
  * [weForms](https://essential-addons.com/elementor/weforms/)
48
  * [Info Box](https://essential-addons.com/elementor/info-box/)
49
  * [Flip Box](https://essential-addons.com/elementor/flip-box/)
61
  * [Advanced Accordion](https://essential-addons.com/elementor/advanced-accordion/)
62
 
63
 
64
+ ### More elements (25+) on [Premium Version](https://essential-addons.com/elementor/buy.php)
 
65
 
66
  * [Post Block (Flex)](https://essential-addons.com/elementor/post-block/)
67
  * [Lightbox & Modal](https://essential-addons.com/elementor/lightbox-modal/)
80
  * [Smart Post List](https://essential-addons.com/elementor/post-list/)
81
  * [Mailchimp](https://essential-addons.com/elementor/mailchimp/)
82
  * [Content Toggle](https://essential-addons.com/elementor/content-toggle/)
83
+ * [One Page Navigation](https://essential-addons.com/elementor/one-page-nav/)
84
+ * [Price Menu](https://essential-addons.com/elementor/price-menu/)
85
+ * [Image Hotspot](https://essential-addons.com/elementor/image-hotspot/)
86
+ * [Fancy Divider](https://essential-addons.com/elementor/divider/)
87
+ * [Counter](https://essential-addons.com/elementor/counter/)
88
+ * [Team Member Carousel](https://essential-addons.com/elementor/team-member-carousel/)
89
+ * [Post Carousel](https://essential-addons.com/elementor/post-carousel/)
90
+ * [Logo Carousel](https://essential-addons.com/elementor/logo-carousel/)
91
 
92
  More coming soon (weekly update) ...
93
 
138
 
139
  == Changelog ==
140
 
141
+ = 2.7.2 =
142
+
143
+ - WPForms element added
144
+ - Author, Tags and Exclude posts options added to Post elements (Post Grid, Post Timeline)
145
+ - "All" text change option for Filterable Gallery
146
+ - Social feeds elements updated
147
+ - Advanced Tabs scripts improved
148
+ - Post Timeline scripts improved
149
+ - Cell colspan feature added to Data Table
150
+ - Few minor bugfix and improvements
151
+
152
  = 2.7.1 =
153
 
154
  - "On Sale Price" option added to Pricing Table element