Elementor Essential Addons - Version 2.9.8

Version Description

  • 28/02/2019 =

  • Facebook Feed removed as it doesn't work with new API

  • Version rollback feature removed

  • Few minor bugfix and improvements

Download this release

Release Info

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

Code changes from version 2.9.7 to 2.9.8

admin/assets/js/rollback-admin.js DELETED
@@ -1,32 +0,0 @@
1
- (function($) {
2
- $(document).ready(function() {
3
- $('#eael_plugins_versions').on('change', function() {
4
- var $this = $(this),
5
- button = $this.siblings('.eael-version-rollback'),
6
- url = button.attr('href'),
7
- val = $this.val(),
8
- url = url+'&upgrade_version='+val;
9
- button.attr('href', url);
10
- });
11
-
12
- $('.eael-version-rollback').on( 'click', function(e) {
13
- e.preventDefault();
14
- var $this = $( this ),
15
- dialogsManager = new DialogsManager.Instance();
16
-
17
- dialogsManager.createWidget( 'confirm', {
18
- headerMessage: EAELRollBackConfirm.i18n.rollback_to_previous_version,
19
- message : EAELRollBackConfirm.i18n.rollback_confirm,
20
- strings : {
21
- cancel : EAELRollBackConfirm.i18n.cancel,
22
- confirm: EAELRollBackConfirm.i18n.yes,
23
- },
24
- onConfirm: function() {
25
- $this.addClass( 'loading' );
26
- location.href = $this.attr( 'href' );
27
- }
28
- } ).show();
29
- } );
30
- });
31
-
32
- })(jQuery);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
admin/partials/elements.php CHANGED
@@ -104,11 +104,6 @@
104
  <label for="twitter-feed"></label>
105
  <p class="eael-el-title"><?php _e( 'Twitter Feed', 'essential-addons-elementor' ) ?></p>
106
  </div>
107
- <div class="eael-checkbox">
108
- <input type="checkbox" id="facebook-feed" name="facebook-feed" <?php checked( 1, $this->eael_get_settings['facebook-feed'], true ); ?> >
109
- <label for="facebook-feed"></label>
110
- <p class="eael-el-title"><?php _e( 'Facebook Feed', 'essential-addons-elementor' ) ?></p>
111
- </div>
112
  <div class="eael-checkbox">
113
  <input type="checkbox" id="filter-gallery" name="filter-gallery" <?php checked( 1, $this->eael_get_settings['filter-gallery'], true ); ?> >
114
  <label for="filter-gallery"></label>
104
  <label for="twitter-feed"></label>
105
  <p class="eael-el-title"><?php _e( 'Twitter Feed', 'essential-addons-elementor' ) ?></p>
106
  </div>
 
 
 
 
 
107
  <div class="eael-checkbox">
108
  <input type="checkbox" id="filter-gallery" name="filter-gallery" <?php checked( 1, $this->eael_get_settings['filter-gallery'], true ); ?> >
109
  <label for="filter-gallery"></label>
admin/partials/version-control.php DELETED
@@ -1,54 +0,0 @@
1
- <div id="version-control" class="eael-settings-tab eael-elements-list">
2
- <div class="row eael-admin-general-wrapper">
3
- <div class="eael-admin-general-inner">
4
- <div class="eael-admin-block-wrapper">
5
- <div class="eael-admin-block eael-admin-block-community">
6
- <header class="eael-admin-block-header">
7
- <div class="eael-admin-block-header-icon">
8
- <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 48 48" version="1.1">
9
- <g id="surface1">
10
- <path style=" fill:#7CB342;" d="M 44 24 C 44 26.558594 43.519531 29.003906 42.644531 31.253906 L 37.605469 35.792969 L 32.691406 42.019531 C 30.0625 43.289063 27.113281 44 24 44 C 12.953125 44 4 35.046875 4 24 C 4 12.953125 12.953125 4 24 4 C 35.046875 4 44 12.953125 44 24 Z "></path>
11
- <path style=" fill:#DCEDC8;" d="M 31.113281 38.335938 C 30.421875 38.679688 29.699219 38.976563 28.957031 39.21875 L 32.691406 42.019531 C 33.351563 41.699219 33.992188 41.34375 34.609375 40.957031 Z "></path>
12
- <path style=" fill:#DCEDC8;" d="M 36 40 C 36.804688 39.394531 37.578125 38.71875 38.28125 38 L 36 38 Z "></path>
13
- <path style=" fill:#DCEDC8;" d="M 40.5 33 C 40.9375 33 41.390625 33.039063 41.808594 33.113281 C 42.117188 32.507813 42.394531 31.894531 42.644531 31.253906 C 41.960938 31.09375 41.230469 31 40.5 31 L 38.390625 31 C 38.054688 31.695313 37.660156 32.367188 37.226563 33 Z "></path>
14
- <path style=" fill:#FFFFFF;" d="M 40 24 C 40 32.835938 32.835938 40 24 40 C 15.164063 40 8 32.835938 8 24 C 8 15.164063 15.164063 8 24 8 C 32.835938 8 40 15.164063 40 24 Z "></path>
15
- <path style=" " d="M 23 11 L 25 11 L 25 24 L 23 24 Z "></path>
16
- <path style=" " d="M 23.148438 23.65625 L 29.65625 17.148438 L 31.28125 18.777344 L 24.777344 25.28125 Z "></path>
17
- <path style=" " d="M 26 24 C 26 25.105469 25.105469 26 24 26 C 22.894531 26 22 25.105469 22 24 C 22 22.894531 22.894531 22 24 22 C 25.105469 22 26 22.894531 26 24 Z "></path>
18
- <path style=" fill:#8BC34A;" d="M 25 24 C 25 24.550781 24.550781 25 24 25 C 23.449219 25 23 24.550781 23 24 C 23 23.449219 23.449219 23 24 23 C 24.550781 23 25 23.449219 25 24 Z "></path>
19
- <path style=" fill:#E91E63;" d="M 40.5 33 L 35 33 L 35 38 L 40.5 38 C 41.882813 38 43 39.117188 43 40.5 C 43 41.882813 41.882813 43 40.5 43 L 39 43 L 39 48 L 40.5 48 C 44.640625 48 48 44.640625 48 40.5 C 48 36.359375 44.640625 33 40.5 33 Z "></path>
20
- <path style=" fill:#E91E63;" d="M 36 29 L 28 36 L 36 42 Z "></path>
21
- </g>
22
- </svg>
23
- </div>
24
- <h4 class="eael-admin-title">Rollback to Previous Version</h4>
25
- </header>
26
- <div class="eael-admin-block-content">
27
- <h3>Select the version you want to install</h3>
28
- <div><?php
29
- $vh = sprintf( '<a target="_blank" href="%s" class="button eael-btn eael-version-rollback elementor-button-spinner">Reinstall Version</a>', wp_nonce_url( admin_url( 'admin-post.php?action=eael_version_rollback' ), 'eael_version_rollback' ));
30
- echo apply_filters('insert_eael_versions_html', $vh );
31
- ?> </div>
32
- <div class="warning">
33
- <div class="eael-admin-block-header-icon">
34
- <svg version="1.1" id="Capa_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
35
- viewBox="0 0 451.74 451.74" style="enable-background:new 0 0 451.74 451.74;" xml:space="preserve">
36
- <path style="fill:#E24C4B;" d="M446.324,367.381L262.857,41.692c-15.644-28.444-58.311-28.444-73.956,0L5.435,367.381
37
- c-15.644,28.444,4.267,64,36.978,64h365.511C442.057,429.959,461.968,395.825,446.324,367.381z"/>
38
- <path style="fill:#FFFFFF;" d="M225.879,63.025l183.467,325.689H42.413L225.879,63.025L225.879,63.025z"/>
39
- <g>
40
- <path style="fill:#3F4448;" d="M196.013,212.359l11.378,75.378c1.422,8.533,8.533,15.644,18.489,15.644l0,0
41
- c8.533,0,17.067-7.111,18.489-15.644l11.378-75.378c2.844-18.489-11.378-34.133-29.867-34.133l0,0
42
- C207.39,178.225,194.59,193.87,196.013,212.359z"/>
43
- <circle style="fill:#3F4448;" cx="225.879" cy="336.092" r="17.067"/>
44
- </g>
45
- </svg>
46
- </div>
47
- <p class="eael-notice-text">Usually you should not loose any data on the rollback process. But it's always good to have a backup of your database.</p>
48
- </div>
49
- </div>
50
- </div>
51
- </div><!--admin block-wrapper end-->
52
- </div>
53
- </div>
54
- </div><!-- # version-control -->
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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', 'interactive-promo', 'post-grid', 'post-block', 'post-timeline', 'product-grid', 'team-members', 'testimonials', 'weforms', 'call-to-action', 'flip-box', 'info-box', 'dual-header', 'price-table','ninja-form', 'gravity-form', 'caldera-form', 'wpforms', 'twitter-feed', 'facebook-feed', 'data-table', 'filter-gallery', 'image-accordion', 'content-ticker', 'tooltip', 'adv-accordion', 'adv-tabs', 'progress-bar', 'section-particles'];
18
 
19
  /**
20
  * Will Contain All Components Default Values
@@ -177,14 +177,12 @@ class Eael_Admin_Settings {
177
  <li><a href="#general" class="active"><img src="<?php echo plugins_url( '/', __FILE__ ).'assets/images/icon-settings.svg'; ?>"><span>General</span></a></li>
178
  <li><a href="#elements"><img src="<?php echo plugins_url( '/', __FILE__ ).'assets/images/icon-modules.svg'; ?>"><span>Elements</span></a></li>
179
  <li><a href="#extensions"><img src="<?php echo plugins_url( '/', __FILE__ ).'assets/images/icon-extensions.svg'; ?>"><span>Extensions</span></a></li>
180
- <li><a href="#version-control"><img src="<?php echo plugins_url( '/', __FILE__ ).'assets/images/icon-version-control.svg'; ?>"><span>Version Control</span></a></li>
181
  <li><a href="#go-pro"><img src="<?php echo plugins_url( '/', __FILE__ ).'assets/images/icon-upgrade.svg'; ?>"><span>Go Premium</span></a></li>
182
  </ul>
183
  <?php
184
  include('partials/general.php');
185
  include('partials/elements.php');
186
  include('partials/extensions.php');
187
- include('partials/version-control.php');
188
  include('partials/go-pro.php');
189
  ?>
190
  </div>
14
  * @var array
15
  * @since 2.3.0
16
  */
17
+ public $eael_default_keys = [ 'contact-form-7', 'count-down', 'creative-btn', 'fancy-text', 'post-grid', 'post-timeline', 'product-grid', 'team-members', 'testimonials', 'weforms', 'call-to-action', 'flip-box', 'info-box', 'dual-header', 'price-table', 'ninja-form', 'gravity-form', 'caldera-form', 'wpforms', 'twitter-feed', 'data-table', 'filter-gallery', 'image-accordion','content-ticker', 'tooltip', 'adv-accordion', 'adv-tabs', 'progress-bar', 'section-particles', 'feature-list'];
18
 
19
  /**
20
  * Will Contain All Components Default Values
177
  <li><a href="#general" class="active"><img src="<?php echo plugins_url( '/', __FILE__ ).'assets/images/icon-settings.svg'; ?>"><span>General</span></a></li>
178
  <li><a href="#elements"><img src="<?php echo plugins_url( '/', __FILE__ ).'assets/images/icon-modules.svg'; ?>"><span>Elements</span></a></li>
179
  <li><a href="#extensions"><img src="<?php echo plugins_url( '/', __FILE__ ).'assets/images/icon-extensions.svg'; ?>"><span>Extensions</span></a></li>
 
180
  <li><a href="#go-pro"><img src="<?php echo plugins_url( '/', __FILE__ ).'assets/images/icon-upgrade.svg'; ?>"><span>Go Premium</span></a></li>
181
  </ul>
182
  <?php
183
  include('partials/general.php');
184
  include('partials/elements.php');
185
  include('partials/extensions.php');
 
186
  include('partials/go-pro.php');
187
  ?>
188
  </div>
assets/css/essential-addons-elementor.css CHANGED
@@ -4333,10 +4333,6 @@ div.tooltipster-sidetip.tooltipster-bottom .tooltipster-arrow {
4333
  background-color: red !important;
4334
  }
4335
 
4336
- .eael-facebook-feed-wrapper::before,
4337
- .eael-facebook-feed-wrapper::after,
4338
- .eael-facebook-feed-container::before,
4339
- .eael-facebook-feed-container::after,
4340
  .eael-twitter-feed-wrapper::before,
4341
  .eael-twitter-feed-wrapper::after,
4342
  .eael-twitter-feed-container::before,
@@ -4607,8 +4603,7 @@ div.tooltipster-sidetip.tooltipster-bottom .tooltipster-arrow {
4607
  }
4608
 
4609
  /*--- Masonry View ---*/
4610
- .eael-twitter-feed-container.masonry-view .eael-social-feed-element,
4611
- .eael-facebook-feed-container.masonry-view .eael-social-feed-element {
4612
  width: 33.33%;
4613
  margin-top: 0px;
4614
  float: left;
@@ -4635,14 +4630,12 @@ div.tooltipster-sidetip.tooltipster-bottom .tooltipster-arrow {
4635
 
4636
  /*--- Media Query ---*/
4637
  @media only screen and (min-width: 768px) and (max-width: 992px) {
4638
- .eael-twitter-feed-container.masonry-view .eael-social-feed-element,
4639
- .eael-facebook-feed-container.masonry-view .eael-social-feed-element {
4640
  width: 50% !important;
4641
  }
4642
  }
4643
  @media only screen and (max-width: 480px) {
4644
- .eael-twitter-feed-container.masonry-view .eael-social-feed-element,
4645
- .eael-facebook-feed-container.masonry-view .eael-social-feed-element {
4646
  width: 100% !important;
4647
  }
4648
  }
4333
  background-color: red !important;
4334
  }
4335
 
 
 
 
 
4336
  .eael-twitter-feed-wrapper::before,
4337
  .eael-twitter-feed-wrapper::after,
4338
  .eael-twitter-feed-container::before,
4603
  }
4604
 
4605
  /*--- Masonry View ---*/
4606
+ .eael-twitter-feed-container.masonry-view .eael-social-feed-element {
 
4607
  width: 33.33%;
4608
  margin-top: 0px;
4609
  float: left;
4630
 
4631
  /*--- Media Query ---*/
4632
  @media only screen and (min-width: 768px) and (max-width: 992px) {
4633
+ .eael-twitter-feed-container.masonry-view .eael-social-feed-element {
 
4634
  width: 50% !important;
4635
  }
4636
  }
4637
  @media only screen and (max-width: 480px) {
4638
+ .eael-twitter-feed-container.masonry-view .eael-social-feed-element {
 
4639
  width: 100% !important;
4640
  }
4641
  }
assets/js/eael-scripts.js CHANGED
@@ -115,86 +115,6 @@
115
 
116
  }
117
 
118
-
119
-
120
- var FacebookFeedHandler = function ($scope, $) {
121
- var loadingFeed = $scope.find( '.eael-loading-feed' );
122
- var $fbCarousel = $scope.find('.eael-facebook-feed-layout-wrapper').eq(0),
123
- $name = ($fbCarousel.data("facebook-feed-ac-name") !== undefined) ? $fbCarousel.data("facebook-feed-ac-name") : '',
124
- $limit = ($fbCarousel.data("facebook-feed-post-limit") !== undefined) ? $fbCarousel.data("facebook-feed-post-limit") : '',
125
- $app_id = ($fbCarousel.data("facebook-feed-app-id") !== undefined) ? $fbCarousel.data("facebook-feed-app-id") : '',
126
- $app_secret = ($fbCarousel.data("facebook-feed-app-secret") !== undefined) ? $fbCarousel.data("facebook-feed-app-secret") : '',
127
- $length = ($fbCarousel.data("facebook-feed-content-length") !== undefined) ? $fbCarousel.data("facebook-feed-content-length") : 400,
128
- $media = ($fbCarousel.data("facebook-feed-media") !== undefined) ? $fbCarousel.data("facebook-feed-media") : false,
129
- $feed_type = ($fbCarousel.data("facebook-feed-type") !== undefined) ? $fbCarousel.data("facebook-feed-type") : false,
130
- $carouselId = ($fbCarousel.data("facebook-feed-id") !== undefined) ? $fbCarousel.data("facebook-feed-id") : ' ';
131
- // Facebook Feed Init
132
- function eael_facebook_feeds() {
133
- var $access_token = ($app_id+'|'+$app_secret).toString();
134
- var $id_name = $name.toString();
135
- $( '#eael-facebook-feed-'+ $carouselId +'.eael-facebook-feed-layout-container' ).socialfeed({
136
-
137
- facebook:{
138
- accounts:[$id_name],
139
- limit: $limit,
140
- access_token: $access_token
141
- },
142
-
143
- // GENERAL SETTINGS
144
- length: $length,
145
- show_media: $media,
146
- template_html: '<div class="eael-social-feed-element {{? !it.moderation_passed}}hidden{{?}}" dt-create="{{=it.dt_create}}\" social-feed-id = "{{=it.id}}">\
147
- {{=it.attachment}}\
148
- <div class="eael-content">\
149
- <a class="pull-left auth-img" href="{{=it.author_link}}" target="_blank">\
150
- <img class="media-object" src="{{=it.author_picture}}">\
151
- </a>\
152
- <div class="media-body">\
153
- <p>\
154
- <i class="fa fa-{{=it.social_network}} social-feed-icon"></i>\
155
- <span class="author-title">{{=it.author_name}}</span>\
156
- <span class="muted pull-right social-feed-date"> {{=it.time_ago}}</span>\
157
- </p>\
158
- <div class="text-wrapper">\
159
- <p class="social-feed-text">{{=it.text}} </p>\
160
- <p><a href="{{=it.link}}" target="_blank" class="read-more-link">Read More</a></p>\
161
- </div>\
162
- </div>\
163
- </div>\
164
- </div>',
165
- });
166
- }
167
-
168
- // Facebook Feed Masonry View
169
- function eael_facebook_feed_masonry() {
170
- $('.eael-facebook-feed-layout-container.masonry-view').masonry({
171
- itemSelector: '.eael-social-feed-element',
172
- percentPosition: true,
173
- columnWidth: '.eael-social-feed-element'
174
- });
175
- }
176
-
177
- $.ajax({
178
- url: eael_facebook_feeds(),
179
- beforeSend: function() {
180
- loadingFeed.addClass( 'show-loading' );
181
- },
182
- success: function() {
183
- if($feed_type == 'masonry') {
184
- setTimeout(function() {
185
- eael_facebook_feed_masonry();
186
- }, 2000);
187
-
188
- }
189
- loadingFeed.removeClass( 'show-loading' );
190
- },
191
- error: function() {
192
- console.log('error loading');
193
- }
194
- });
195
-
196
-
197
- };
198
 
199
 
200
  var TwitterFeedHandler = function ($scope, $) {
@@ -284,7 +204,6 @@
284
  }
285
 
286
  var AdvanceTabHandler = function ($scope, $) {
287
- console.log('running');
288
  var $currentTab = $scope.find('.eael-advance-tabs'),
289
  $currentTabId = '#' + $currentTab.attr('id').toString();
290
 
@@ -701,7 +620,7 @@
701
  settings = settings;
702
  }
703
  } else {
704
- if (theme !== '') {
705
  particlesJS('eael-section-particles-' + sectionId, theme);
706
  }
707
  }
@@ -738,7 +657,6 @@
738
  elementorFrontend.hooks.addAction('frontend/element_ready/eael-adv-accordion.default', AdvAccordionHandler);
739
  elementorFrontend.hooks.addAction('frontend/element_ready/eael-pricing-table.default', PricingTooltip);
740
  elementorFrontend.hooks.addAction('frontend/element_ready/eael-post-timeline.default', postTimelineHandler);
741
- elementorFrontend.hooks.addAction('frontend/element_ready/eael-facebook-feed.default', FacebookFeedHandler);
742
  elementorFrontend.hooks.addAction('frontend/element_ready/eael-twitter-feed.default', TwitterFeedHandler);
743
  elementorFrontend.hooks.addAction('frontend/element_ready/eael-content-ticker.default', ContentTicker);
744
  elementorFrontend.hooks.addAction('frontend/element_ready/eael-data-table.default', dataTable);
115
 
116
  }
117
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
118
 
119
 
120
  var TwitterFeedHandler = function ($scope, $) {
204
  }
205
 
206
  var AdvanceTabHandler = function ($scope, $) {
 
207
  var $currentTab = $scope.find('.eael-advance-tabs'),
208
  $currentTabId = '#' + $currentTab.attr('id').toString();
209
 
620
  settings = settings;
621
  }
622
  } else {
623
+ if (typeof theme != 'undefined' && theme !== '') {
624
  particlesJS('eael-section-particles-' + sectionId, theme);
625
  }
626
  }
657
  elementorFrontend.hooks.addAction('frontend/element_ready/eael-adv-accordion.default', AdvAccordionHandler);
658
  elementorFrontend.hooks.addAction('frontend/element_ready/eael-pricing-table.default', PricingTooltip);
659
  elementorFrontend.hooks.addAction('frontend/element_ready/eael-post-timeline.default', postTimelineHandler);
 
660
  elementorFrontend.hooks.addAction('frontend/element_ready/eael-twitter-feed.default', TwitterFeedHandler);
661
  elementorFrontend.hooks.addAction('frontend/element_ready/eael-content-ticker.default', ContentTicker);
662
  elementorFrontend.hooks.addAction('frontend/element_ready/eael-data-table.default', dataTable);
assets/sass/_social-feeds.scss CHANGED
@@ -11,10 +11,6 @@
11
  background-color: red !important;
12
  }
13
 
14
- .eael-facebook-feed-wrapper::before,
15
- .eael-facebook-feed-wrapper::after,
16
- .eael-facebook-feed-container::before,
17
- .eael-facebook-feed-container::after,
18
  .eael-twitter-feed-wrapper::before,
19
  .eael-twitter-feed-wrapper::after,
20
  .eael-twitter-feed-container::before,
@@ -268,8 +264,7 @@
268
  }
269
 
270
  /*--- Masonry View ---*/
271
- .eael-twitter-feed-container.masonry-view .eael-social-feed-element,
272
- .eael-facebook-feed-container.masonry-view .eael-social-feed-element {
273
  width: 33.33%;
274
  margin-top: 0px;
275
  float: left;
@@ -294,15 +289,13 @@
294
 
295
  /*--- Media Query ---*/
296
  @media only screen and ( min-width: 768px) and (max-width: 992px) {
297
- .eael-twitter-feed-container.masonry-view .eael-social-feed-element,
298
- .eael-facebook-feed-container.masonry-view .eael-social-feed-element {
299
  width: 50% !important;
300
  }
301
  }
302
 
303
  @media only screen and (max-width: 480px) {
304
- .eael-twitter-feed-container.masonry-view .eael-social-feed-element,
305
- .eael-facebook-feed-container.masonry-view .eael-social-feed-element {
306
  width: 100% !important;
307
  }
308
  }
11
  background-color: red !important;
12
  }
13
 
 
 
 
 
14
  .eael-twitter-feed-wrapper::before,
15
  .eael-twitter-feed-wrapper::after,
16
  .eael-twitter-feed-container::before,
264
  }
265
 
266
  /*--- Masonry View ---*/
267
+ .eael-twitter-feed-container.masonry-view .eael-social-feed-element {
 
268
  width: 33.33%;
269
  margin-top: 0px;
270
  float: left;
289
 
290
  /*--- Media Query ---*/
291
  @media only screen and ( min-width: 768px) and (max-width: 992px) {
292
+ .eael-twitter-feed-container.masonry-view .eael-social-feed-element {
 
293
  width: 50% !important;
294
  }
295
  }
296
 
297
  @media only screen and (max-width: 480px) {
298
+ .eael-twitter-feed-container.masonry-view .eael-social-feed-element {
 
299
  width: 100% !important;
300
  }
301
  }
elements/facebook-feed/facebook-feed.php DELETED
@@ -1,669 +0,0 @@
1
- <?php
2
- namespace Elementor;
3
-
4
- if ( ! defined( 'ABSPATH' ) ) exit; // If this file is called directly, abort.
5
-
6
-
7
- class Widget_Eael_Facebook_Feed extends Widget_Base {
8
-
9
- public function get_name() {
10
- return 'eael-facebook-feed';
11
- }
12
-
13
- public function get_title() {
14
- return esc_html__( 'EA Facebook Feed', 'essential-addons-elementor' );
15
- }
16
-
17
- public function get_icon() {
18
- return 'fa fa-facebook-official';
19
- }
20
-
21
- public function get_categories() {
22
- return [ 'essential-addons-elementor' ];
23
- }
24
-
25
- protected function _register_controls() {
26
-
27
- $this->start_controls_section(
28
- 'eael_section_facebook_feed_acc_settings',
29
- [
30
- 'label' => esc_html__( 'Account Settings', 'essential-addons-elementor' )
31
- ]
32
- );
33
-
34
- $this->add_control(
35
- 'eael_facebook_feed_ac_name',
36
- [
37
- 'label' => esc_html__( 'Account Name', 'essential-addons-elementor' ),
38
- 'type' => Controls_Manager::TEXT,
39
- 'label_block' => false,
40
- 'default' => '@Codetic',
41
- 'description' => esc_html__( 'Use @ sign with your account name.', 'essential-addons-elementor' ),
42
-
43
- ]
44
- );
45
-
46
- $this->add_control(
47
- 'eael_facebook_feed_app_id',
48
- [
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
- );
56
-
57
- $this->add_control(
58
- 'eael_facebook_feed_app_secret',
59
- [
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
- );
67
-
68
- $this->end_controls_section();
69
-
70
- $this->start_controls_section(
71
- 'eael_section_facebook_feed_settings',
72
- [
73
- 'label' => esc_html__( 'Layout Settings', 'essential-addons-elementor' )
74
- ]
75
- );
76
-
77
- $this->add_control(
78
- 'eael_facebook_feed_type',
79
- [
80
- 'label' => esc_html__( 'Content Layout', 'essential-addons-elementor' ),
81
- 'type' => Controls_Manager::SELECT,
82
- 'default' => 'masonry',
83
- 'options' => [
84
- 'list' => esc_html__( 'List', 'essential-addons-elementor' ),
85
- 'masonry' => esc_html__( 'Masonry', 'essential-addons-elementor' ),
86
- ],
87
- ]
88
- );
89
-
90
- $this->add_control(
91
- 'eael_facebook_feed_type_col_type',
92
- [
93
- 'label' => __( 'Column Grid', 'essential-addons-elementor' ),
94
- 'type' => Controls_Manager::SELECT,
95
- 'options' => [
96
- 'col-2' => '2 Columns',
97
- 'col-3' => '3 Columns',
98
- 'col-4' => '4 Columns',
99
- ],
100
- 'default' => 'col-3',
101
- 'prefix_class' => 'eael-social-feed-masonry-',
102
- 'condition' => [
103
- 'eael_facebook_feed_type' => 'masonry'
104
- ],
105
- ]
106
- );
107
-
108
- $this->add_control(
109
- 'eael_facebook_feed_content_length',
110
- [
111
- 'label' => esc_html__( 'Content Length', 'essential-addons-elementor' ),
112
- 'type' => Controls_Manager::TEXT,
113
- 'label_block' => false,
114
- 'default' => '400'
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
- [
141
- 'label' => esc_html__( 'Post Limit', 'essential-addons-elementor' ),
142
- 'type' => Controls_Manager::NUMBER,
143
- 'label_block' => false,
144
- 'default' => 10
145
- ]
146
- );
147
-
148
- $this->add_control(
149
- 'eael_facebook_feed_media',
150
- [
151
- 'label' => esc_html__( 'Show Media Elements', 'essential-addons-elementor' ),
152
- 'type' => Controls_Manager::SWITCHER,
153
- 'label_on' => __( 'yes', 'essential-addons-elementor' ),
154
- 'label_off' => __( 'no', 'essential-addons-elementor' ),
155
- 'default' => 'true',
156
- 'return_value' => 'true',
157
- ]
158
- );
159
-
160
- $this->end_controls_section();
161
-
162
- $this->start_controls_section(
163
- 'eael_section_facebook_feed_card_settings',
164
- [
165
- 'label' => esc_html__( 'Card Settings', 'essential-addons-elementor' ),
166
- ]
167
- );
168
-
169
- $this->add_control(
170
- 'eael_facebook_feed_show_avatar',
171
- [
172
- 'label' => esc_html__( 'Show Avatar', 'essential-addons-elementor' ),
173
- 'type' => Controls_Manager::SWITCHER,
174
- 'label_on' => __( 'yes', 'essential-addons-elementor' ),
175
- 'label_off' => __( 'no', 'essential-addons-elementor' ),
176
- 'default' => 'true',
177
- 'return_value' => 'true',
178
- ]
179
- );
180
-
181
- $this->add_control(
182
- 'eael_facebook_feed_avatar_style',
183
- [
184
- 'label' => __( 'Avatar Style', 'essential-addons-elementor' ),
185
- 'type' => Controls_Manager::SELECT,
186
- 'options' => [
187
- 'circle' => 'Circle',
188
- 'square' => 'Square'
189
- ],
190
- 'default' => 'circle',
191
- 'prefix_class' => 'eael-social-feed-avatar-',
192
- 'condition' => [
193
- 'eael_facebook_feed_show_avatar' => 'true'
194
- ],
195
- ]
196
- );
197
-
198
- $this->add_control(
199
- 'eael_facebook_feed_show_date',
200
- [
201
- 'label' => esc_html__( 'Show Date', 'essential-addons-elementor' ),
202
- 'type' => Controls_Manager::SWITCHER,
203
- 'label_on' => __( 'yes', 'essential-addons-elementor' ),
204
- 'label_off' => __( 'no', 'essential-addons-elementor' ),
205
- 'default' => 'true',
206
- 'return_value' => 'true',
207
- ]
208
- );
209
-
210
- $this->add_control(
211
- 'eael_facebook_feed_show_read_more',
212
- [
213
- 'label' => esc_html__( 'Show Read More', 'essential-addons-elementor' ),
214
- 'type' => Controls_Manager::SWITCHER,
215
- 'label_on' => __( 'yes', 'essential-addons-elementor' ),
216
- 'label_off' => __( 'no', 'essential-addons-elementor' ),
217
- 'default' => 'true',
218
- 'return_value' => 'true',
219
- ]
220
- );
221
- $this->add_control(
222
- 'eael_facebook_feed_show_icon',
223
- [
224
- 'label' => esc_html__( 'Show Icon', 'essential-addons-elementor' ),
225
- 'type' => Controls_Manager::SWITCHER,
226
- 'label_on' => __( 'yes', 'essential-addons-elementor' ),
227
- 'label_off' => __( 'no', 'essential-addons-elementor' ),
228
- 'default' => 'true',
229
- 'return_value' => 'true',
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' )
238
- ]
239
- );
240
-
241
- $this->add_control(
242
- 'eael_control_get_pro',
243
- [
244
- 'label' => __( 'Unlock more possibilities', 'essential-addons-elementor' ),
245
- 'type' => Controls_Manager::CHOOSE,
246
- 'options' => [
247
- '1' => [
248
- 'title' => __( '', 'essential-addons-elementor' ),
249
- 'icon' => 'fa fa-unlock-alt',
250
- ],
251
- ],
252
- 'default' => '1',
253
- 'description' => '<span class="pro-feature"> Get the <a href="https://essential-addons.com/elementor/buy.php" target="_blank">Pro version</a> for more stunning elements and customization options.</span>'
254
- ]
255
- );
256
-
257
- $this->end_controls_section();
258
- /**
259
- * -------------------------------------------
260
- * Tab Style (Facebook Feed Title Style)
261
- * -------------------------------------------
262
- */
263
- $this->start_controls_section(
264
- 'eael_section_facebook_feed_style_settings',
265
- [
266
- 'label' => esc_html__( 'General Style', 'essential-addons-elementor' ),
267
- 'tab' => Controls_Manager::TAB_STYLE
268
- ]
269
- );
270
-
271
- $this->add_control(
272
- 'eael_facebook_feed_bg_color',
273
- [
274
- 'label' => esc_html__( 'Background Color', 'essential-addons-elementor' ),
275
- 'type' => Controls_Manager::COLOR,
276
- 'default' => '',
277
- 'selectors' => [
278
- '{{WRAPPER}} .eael-facebook-feed-wrapper' => 'background-color: {{VALUE}};',
279
- ],
280
- ]
281
- );
282
-
283
- $this->add_responsive_control(
284
- 'eael_facebook_feed_container_padding',
285
- [
286
- 'label' => esc_html__( 'Padding', 'essential-addons-elementor' ),
287
- 'type' => Controls_Manager::DIMENSIONS,
288
- 'size_units' => [ 'px', 'em', '%' ],
289
- 'selectors' => [
290
- '{{WRAPPER}} .eael-facebook-feed-wrapper' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
291
- ],
292
- ]
293
- );
294
-
295
- $this->add_responsive_control(
296
- 'eael_facebook_feed_container_margin',
297
- [
298
- 'label' => esc_html__( 'Margin', 'essential-addons-elementor' ),
299
- 'type' => Controls_Manager::DIMENSIONS,
300
- 'size_units' => [ 'px', 'em', '%' ],
301
- 'selectors' => [
302
- '{{WRAPPER}} .eael-facebook-feed-wrapper' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
303
- ],
304
- ]
305
- );
306
-
307
- $this->add_group_control(
308
- Group_Control_Border::get_type(),
309
- [
310
- 'name' => 'eael_facebook_feed_border',
311
- 'label' => esc_html__( 'Border', 'essential-addons-elementor' ),
312
- 'selector' => '{{WRAPPER}} .eael-facebook-feed-wrapper',
313
- ]
314
- );
315
-
316
- $this->add_control(
317
- 'eael_facebook_feed_border_radius',
318
- [
319
- 'label' => esc_html__( 'Border Radius', 'essential-addons-elementor' ),
320
- 'type' => Controls_Manager::SLIDER,
321
- 'range' => [
322
- 'px' => [
323
- 'max' => 500,
324
- ],
325
- ],
326
- 'selectors' => [
327
- '{{WRAPPER}} .eael-facebook-feed-wrapper' => 'border-radius: {{SIZE}}px;',
328
- ],
329
- ]
330
- );
331
-
332
- $this->add_group_control(
333
- Group_Control_Box_Shadow::get_type(),
334
- [
335
- 'name' => 'eael_facebook_feed_shadow',
336
- 'selector' => '{{WRAPPER}} .eael-facebook-feed-wrapper',
337
- ]
338
- );
339
-
340
- $this->end_controls_section();
341
-
342
- /**
343
- * -------------------------------------------
344
- * Tab Style (Facebook Feed Card Style)
345
- * -------------------------------------------
346
- */
347
- $this->start_controls_section(
348
- 'eael_section_facebook_feed_card_style_settings',
349
- [
350
- 'label' => esc_html__( 'Card Style', 'essential-addons-elementor' ),
351
- 'tab' => Controls_Manager::TAB_STYLE
352
- ]
353
- );
354
-
355
- $this->add_control(
356
- 'eael_facebook_feed_card_bg_color',
357
- [
358
- 'label' => esc_html__( 'Background Color', 'essential-addons-elementor' ),
359
- 'type' => Controls_Manager::COLOR,
360
- 'default' => '',
361
- 'selectors' => [
362
- '{{WRAPPER}} .eael-social-feed-element .eael-content' => 'background-color: {{VALUE}};',
363
- ],
364
- ]
365
- );
366
-
367
- $this->add_responsive_control(
368
- 'eael_facebook_feed_card_container_padding',
369
- [
370
- 'label' => esc_html__( 'Padding', 'essential-addons-elementor' ),
371
- 'type' => Controls_Manager::DIMENSIONS,
372
- 'size_units' => [ 'px', 'em', '%' ],
373
- 'selectors' => [
374
- '{{WRAPPER}} .eael-social-feed-element .eael-content' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
375
- ],
376
- ]
377
- );
378
-
379
- $this->add_responsive_control(
380
- 'eael_facebook_feed_card_container_margin',
381
- [
382
- 'label' => esc_html__( 'Margin', 'essential-addons-elementor' ),
383
- 'type' => Controls_Manager::DIMENSIONS,
384
- 'size_units' => [ 'px', 'em', '%' ],
385
- 'selectors' => [
386
- '{{WRAPPER}} .eael-social-feed-element .eael-content' => 'margin: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};',
387
- ],
388
- ]
389
- );
390
-
391
- $this->add_group_control(
392
- Group_Control_Border::get_type(),
393
- [
394
- 'name' => 'eael_facebook_feed_card_border',
395
- 'label' => esc_html__( 'Border', 'essential-addons-elementor' ),
396
- 'selector' => '{{WRAPPER}} .eael-social-feed-element .eael-content',
397
- ]
398
- );
399
-
400
- $this->add_control(
401
- 'eael_facebook_feed_card_border_radius',
402
- [
403
- 'label' => esc_html__( 'Border Radius', 'essential-addons-elementor' ),
404
- 'type' => Controls_Manager::SLIDER,
405
- 'range' => [
406
- 'px' => [
407
- 'max' => 500,
408
- ],
409
- ],
410
- 'selectors' => [
411
- '{{WRAPPER}} .eael-social-feed-element .eael-content' => 'border-radius: {{SIZE}}px;',
412
- ],
413
- ]
414
- );
415
-
416
- $this->add_group_control(
417
- Group_Control_Box_Shadow::get_type(),
418
- [
419
- 'name' => 'eael_facebook_feed_card_shadow',
420
- 'selector' => '{{WRAPPER}} .eael-social-feed-element .eael-content',
421
- ]
422
- );
423
-
424
- $this->end_controls_section();
425
-
426
- /**
427
- * -------------------------------------------
428
- * Tab Style (Twitter Feed Typography Style)
429
- * -------------------------------------------
430
- */
431
- $this->start_controls_section(
432
- 'eael_section_facebook_feed_card_typo_settings',
433
- [
434
- 'label' => esc_html__( 'Color &amp; Typography', 'essential-addons-elementor' ),
435
- 'tab' => Controls_Manager::TAB_STYLE
436
- ]
437
- );
438
-
439
- $this->add_control(
440
- 'eael_facebook_feed_title_heading',
441
- [
442
- 'label' => esc_html__( 'Title Style', 'essential-addons-elementor' ),
443
- 'type' => Controls_Manager::HEADING,
444
- ]
445
- );
446
-
447
- $this->add_control(
448
- 'eael_facebook_feed_title_color',
449
- [
450
- 'label' => esc_html__( 'Color', 'essential-addons-elementor' ),
451
- 'type' => Controls_Manager::COLOR,
452
- 'default' => '',
453
- 'selectors' => [
454
- '{{WRAPPER}} .eael-social-feed-element .author-title' => 'color: {{VALUE}};',
455
- ],
456
- ]
457
- );
458
-
459
- $this->add_group_control(
460
- Group_Control_Typography::get_type(),
461
- [
462
- 'name' => 'eael_facebook_feed_title_typography',
463
- 'selector' => '{{WRAPPER}} .eael-social-feed-element .author-title',
464
- ]
465
- );
466
- // Content Style
467
- $this->add_control(
468
- 'eael_facebook_feed_content_heading',
469
- [
470
- 'label' => esc_html__( 'Content Style', 'essential-addons-elementor' ),
471
- 'type' => Controls_Manager::HEADING,
472
- 'separator' => 'before'
473
- ]
474
- );
475
-
476
- $this->add_control(
477
- 'eael_facebook_feed_content_color',
478
- [
479
- 'label' => esc_html__( 'Color', 'essential-addons-elementor' ),
480
- 'type' => Controls_Manager::COLOR,
481
- 'default' => '',
482
- 'selectors' => [
483
- '{{WRAPPER}} .eael-social-feed-element .social-feed-text' => 'color: {{VALUE}};',
484
- ],
485
- ]
486
- );
487
-
488
- $this->add_group_control(
489
- Group_Control_Typography::get_type(),
490
- [
491
- 'name' => 'eael_facebook_feed_content_typography',
492
- 'selector' => '{{WRAPPER}} .eael-social-feed-element .social-feed-text',
493
- ]
494
- );
495
-
496
- // Content Link Style
497
- $this->add_control(
498
- 'eael_facebook_feed_content_link_heading',
499
- [
500
- 'label' => esc_html__( 'Link Style', 'essential-addons-elementor' ),
501
- 'type' => Controls_Manager::HEADING,
502
- 'separator' => 'before'
503
- ]
504
- );
505
-
506
- $this->add_control(
507
- 'eael_facebook_feed_content_link_color',
508
- [
509
- 'label' => esc_html__( 'Color', 'essential-addons-elementor' ),
510
- 'type' => Controls_Manager::COLOR,
511
- 'default' => '',
512
- 'selectors' => [
513
- '{{WRAPPER}} .eael-social-feed-element .text-wrapper a' => 'color: {{VALUE}};',
514
- ],
515
- ]
516
- );
517
-
518
- $this->add_control(
519
- 'eael_facebook_feed_content_link_hover_color',
520
- [
521
- 'label' => esc_html__( 'Hover Color', 'essential-addons-elementor' ),
522
- 'type' => Controls_Manager::COLOR,
523
- 'default' => '',
524
- 'selectors' => [
525
- '{{WRAPPER}} .eael-social-feed-element .text-wrapper a:hover' => 'color: {{VALUE}};',
526
- ],
527
- ]
528
- );
529
-
530
- $this->add_group_control(
531
- Group_Control_Typography::get_type(),
532
- [
533
- 'name' => 'eael_facebook_feed_content_link_typography',
534
- 'selector' => '{{WRAPPER}} .eael-social-feed-element .text-wrapper a',
535
- ]
536
- );
537
-
538
- $this->end_controls_section();
539
-
540
- /**
541
- * -------------------------------------------
542
- * Tab Style (Facebook Feed Preloader Style)
543
- * -------------------------------------------
544
- */
545
- $this->start_controls_section(
546
- 'eael_section_facebook_feed_card_preloader_settings',
547
- [
548
- 'label' => esc_html__( 'Preloader Style', 'essential-addons-elementor' ),
549
- 'tab' => Controls_Manager::TAB_STYLE
550
- ]
551
- );
552
-
553
- $this->add_control(
554
- 'eael_facebook_feed_preloader_size',
555
- [
556
- 'label' => esc_html__( 'Size', 'essential-addons-elementor' ),
557
- 'type' => Controls_Manager::SLIDER,
558
- 'default' => [
559
- 'size' => 30,
560
- ],
561
- 'range' => [
562
- 'px' => [
563
- 'max' => 100,
564
- ],
565
- ],
566
- 'selectors' => [
567
- '{{WRAPPER}} .eael-loading-feed .loader' => 'width: {{SIZE}}px; height: {{SIZE}}px;',
568
- ],
569
- ]
570
- );
571
-
572
- $this->add_control(
573
- 'eael_section_facebook_feed_preloader_color',
574
- [
575
- 'label' => esc_html__( 'Color', 'essential-addons-elementor' ),
576
- 'type' => Controls_Manager::COLOR,
577
- 'default' => '#3498db',
578
- 'selectors' => [
579
- '{{WRAPPER}} .eael-loading-feed .loader' => 'border-top-color: {{VALUE}};',
580
- ],
581
- ]
582
- );
583
-
584
-
585
- $this->end_controls_section();
586
-
587
- }
588
-
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>';
618
- // Show Avatar
619
- if( $settings['eael_facebook_feed_show_avatar'] == 'true' ) {
620
- echo '.eael-social-feed-element .auth-img { display: block; }';
621
- }else {
622
- echo '.eael-social-feed-element .auth-img { display: none; }';
623
- }
624
- // Show Date
625
- if( $settings['eael_facebook_feed_show_date'] == 'true' ) {
626
- echo '.eael-social-feed-element .social-feed-date { display: block; }';
627
- }else {
628
- echo '.eael-social-feed-element .social-feed-date { display: none; }';
629
- }
630
- // Show Read More
631
- if( $settings['eael_facebook_feed_show_read_more'] == 'true' ) {
632
- echo '.eael-social-feed-element .read-more-link { display: block }';
633
- }else {
634
- echo '.eael-social-feed-element .read-more-link { display: none !important; }';
635
- }
636
-
637
- // Show Icon
638
- if( $settings['eael_facebook_feed_show_icon'] == 'true' ) {
639
- echo '.eael-social-feed-element .social-feed-icon { display: inline-block }';
640
- }else {
641
- echo '.eael-social-feed-element .social-feed-icon { display: none !important; }';
642
- }
643
-
644
- // Masonry Grid
645
- if( $settings['eael_facebook_feed_type_col_type'] == 'col-2' ) {
646
- $width = '50%';
647
- }else if( $settings['eael_facebook_feed_type_col_type'] == 'col-3' ) {
648
- $width = '33.33%';
649
- }else if( $settings['eael_facebook_feed_type_col_type'] == 'col-4' ) {
650
- $width = '25%';
651
- echo '.eael-social-feed-element .social-feed-date { text-align: left; width: 100%; margin-bottom: 8px;}';
652
- }
653
- echo '.eael-facebook-feed-container.masonry-view .eael-social-feed-element { width: '.$width.' }
654
- .eael-social-feed-element .media-object { width: 30px; }';
655
-
656
- echo '</style>';
657
- }
658
-
659
- protected function content_template() {''
660
-
661
- ?>
662
-
663
-
664
- <?php
665
- }
666
- }
667
-
668
-
669
- Plugin::instance()->widgets_manager->register_widget_type( new Widget_Eael_Facebook_Feed() );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
elements/post-grid/post-grid.php CHANGED
@@ -402,16 +402,6 @@ class Widget_Eael_Post_Grid extends Widget_Base {
402
 
403
 
404
  protected function render() {
405
-
406
- /**
407
- * Query And Layout Controls!
408
- * @source includes/elementor-helper.php
409
- */
410
- $this->query_controls();
411
- $this->layout_controls();
412
- $this->eae_go_premium();
413
-
414
-
415
  $settings = $this->get_settings();
416
  /**
417
  * Setup the post arguments.
402
 
403
 
404
  protected function render() {
 
 
 
 
 
 
 
 
 
 
405
  $settings = $this->get_settings();
406
  /**
407
  * Setup the post arguments.
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: WPDeveloper
7
- * Version: 2.9.7
8
  * Author URI: https://wpdeveloper.net/
9
  *
10
  * Text Domain: essential-addons-elementor
@@ -16,17 +16,14 @@ if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly
16
  define( 'ESSENTIAL_ADDONS_EL_URL', plugins_url( '/', __FILE__ ) );
17
  define( 'ESSENTIAL_ADDONS_EL_PATH', plugin_dir_path( __FILE__ ) );
18
  define( 'ESSENTIAL_ADDONS_EL_ROOT', __FILE__ );
19
- define( 'ESSENTIAL_ADDONS_VERSION', '2.9.7' );
20
- define( 'ESSENTIAL_ADDONS_STABLE_VERSION', '2.9.7' );
21
  define( 'ESSENTIAL_ADDONS_BASENAME', plugin_basename( __FILE__ ) );
22
 
23
 
24
  require_once ESSENTIAL_ADDONS_EL_PATH.'includes/elementor-helper.php';
25
  require_once ESSENTIAL_ADDONS_EL_PATH.'includes/queries.php';
26
  require_once ESSENTIAL_ADDONS_EL_PATH.'includes/class-plugin-usage-tracker.php';
27
- require_once ESSENTIAL_ADDONS_EL_PATH.'includes/version-rollback.php';
28
- require_once ESSENTIAL_ADDONS_EL_PATH.'includes/maintennance.php';
29
- require_once ESSENTIAL_ADDONS_EL_PATH.'includes/eael-rollback.php';
30
  require_once ESSENTIAL_ADDONS_EL_PATH.'admin/settings.php';
31
  require_once ESSENTIAL_ADDONS_EL_PATH.'includes/extensions.php';
32
 
@@ -37,7 +34,7 @@ require_once ESSENTIAL_ADDONS_EL_PATH.'includes/extensions.php';
37
  */
38
  function eael_activated_modules() {
39
 
40
- $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', 'twitter-feed', 'facebook-feed', 'data-table', 'filter-gallery', 'image-accordion','content-ticker', 'tooltip', 'adv-accordion', 'adv-tabs', 'progress-bar', 'section-particles', 'feature-list' ];
41
 
42
  $eael_default_settings = array_fill_keys( $eael_default_keys, true );
43
  $eael_get_settings = get_option( 'eael_save_settings', $eael_default_settings );
@@ -143,9 +140,7 @@ function add_eael_elements() {
143
  if( $is_component_active['twitter-feed'] ) {
144
  require_once ESSENTIAL_ADDONS_EL_PATH.'elements/twitter-feed/twitter-feed.php';
145
  }
146
- if( $is_component_active['facebook-feed'] ) {
147
- require_once ESSENTIAL_ADDONS_EL_PATH.'elements/facebook-feed/facebook-feed.php';
148
- }
149
  if( $is_component_active['data-table'] ) {
150
  require_once ESSENTIAL_ADDONS_EL_PATH.'elements/data-table/data-table.php';
151
  }
@@ -211,7 +206,7 @@ function essential_addons_el_enqueue(){
211
  if( $is_component_active['count-down'] ) {
212
  wp_enqueue_script('essential_addons_elementor-countdown-js',ESSENTIAL_ADDONS_EL_URL.'assets/js/countdown.min.js', array('jquery'),'1.0', true);
213
  }
214
- if( $is_component_active['post-grid'] || $is_component_active['twitter-feed'] || $is_component_active['facebook-feed'] ) {
215
  wp_enqueue_script('essential_addons_elementor-masonry-js',ESSENTIAL_ADDONS_EL_URL.'assets/js/masonry.min.js', array('jquery'),'1.0', true);
216
  }
217
  if( $is_component_active['post-grid'] || $is_component_active['post-timeline'] ) {
@@ -224,7 +219,7 @@ function essential_addons_el_enqueue(){
224
  if( $is_component_active['twitter-feed']) {
225
  wp_enqueue_script('essential_addons_elementor-codebird-js',ESSENTIAL_ADDONS_EL_URL.'assets/social-feeds/codebird.js', array('jquery'),'1.0', true);
226
  }
227
- if( $is_component_active['twitter-feed'] || $is_component_active['facebook-feed'] ) {
228
  wp_enqueue_script('essential_addons_elementor-doT-js',ESSENTIAL_ADDONS_EL_URL.'assets/social-feeds/doT.min.js', array('jquery'),'1.0', true);
229
  wp_enqueue_script('essential_addons_elementor-moment-js',ESSENTIAL_ADDONS_EL_URL.'assets/social-feeds/moment.js', array('jquery'),'1.0', true);
230
  wp_enqueue_script('essential_addons_elementor-socialfeed-js',ESSENTIAL_ADDONS_EL_URL.'assets/social-feeds/jquery.socialfeed.js', array('jquery'),'1.0', true);
4
  * Description: The ultimate elements library for Elementor page builder plugin for WordPress.
5
  * Plugin URI: https://essential-addons.com/elementor/
6
  * Author: WPDeveloper
7
+ * Version: 2.9.8
8
  * Author URI: https://wpdeveloper.net/
9
  *
10
  * Text Domain: essential-addons-elementor
16
  define( 'ESSENTIAL_ADDONS_EL_URL', plugins_url( '/', __FILE__ ) );
17
  define( 'ESSENTIAL_ADDONS_EL_PATH', plugin_dir_path( __FILE__ ) );
18
  define( 'ESSENTIAL_ADDONS_EL_ROOT', __FILE__ );
19
+ define( 'ESSENTIAL_ADDONS_VERSION', '2.9.8' );
20
+ define( 'ESSENTIAL_ADDONS_STABLE_VERSION', '2.9.8' );
21
  define( 'ESSENTIAL_ADDONS_BASENAME', plugin_basename( __FILE__ ) );
22
 
23
 
24
  require_once ESSENTIAL_ADDONS_EL_PATH.'includes/elementor-helper.php';
25
  require_once ESSENTIAL_ADDONS_EL_PATH.'includes/queries.php';
26
  require_once ESSENTIAL_ADDONS_EL_PATH.'includes/class-plugin-usage-tracker.php';
 
 
 
27
  require_once ESSENTIAL_ADDONS_EL_PATH.'admin/settings.php';
28
  require_once ESSENTIAL_ADDONS_EL_PATH.'includes/extensions.php';
29
 
34
  */
35
  function eael_activated_modules() {
36
 
37
+ $eael_default_keys = [ 'contact-form-7', 'count-down', 'creative-btn', 'fancy-text', 'post-grid', 'post-timeline', 'product-grid', 'team-members', 'testimonials', 'weforms', 'call-to-action', 'flip-box', 'info-box', 'dual-header', 'price-table', 'ninja-form', 'gravity-form', 'caldera-form', 'wpforms', 'twitter-feed', 'data-table', 'filter-gallery', 'image-accordion','content-ticker', 'tooltip', 'adv-accordion', 'adv-tabs', 'progress-bar', 'section-particles', 'feature-list' ];
38
 
39
  $eael_default_settings = array_fill_keys( $eael_default_keys, true );
40
  $eael_get_settings = get_option( 'eael_save_settings', $eael_default_settings );
140
  if( $is_component_active['twitter-feed'] ) {
141
  require_once ESSENTIAL_ADDONS_EL_PATH.'elements/twitter-feed/twitter-feed.php';
142
  }
143
+
 
 
144
  if( $is_component_active['data-table'] ) {
145
  require_once ESSENTIAL_ADDONS_EL_PATH.'elements/data-table/data-table.php';
146
  }
206
  if( $is_component_active['count-down'] ) {
207
  wp_enqueue_script('essential_addons_elementor-countdown-js',ESSENTIAL_ADDONS_EL_URL.'assets/js/countdown.min.js', array('jquery'),'1.0', true);
208
  }
209
+ if( $is_component_active['post-grid'] || $is_component_active['twitter-feed'] ) {
210
  wp_enqueue_script('essential_addons_elementor-masonry-js',ESSENTIAL_ADDONS_EL_URL.'assets/js/masonry.min.js', array('jquery'),'1.0', true);
211
  }
212
  if( $is_component_active['post-grid'] || $is_component_active['post-timeline'] ) {
219
  if( $is_component_active['twitter-feed']) {
220
  wp_enqueue_script('essential_addons_elementor-codebird-js',ESSENTIAL_ADDONS_EL_URL.'assets/social-feeds/codebird.js', array('jquery'),'1.0', true);
221
  }
222
+ if( $is_component_active['twitter-feed'] ) {
223
  wp_enqueue_script('essential_addons_elementor-doT-js',ESSENTIAL_ADDONS_EL_URL.'assets/social-feeds/doT.min.js', array('jquery'),'1.0', true);
224
  wp_enqueue_script('essential_addons_elementor-moment-js',ESSENTIAL_ADDONS_EL_URL.'assets/social-feeds/moment.js', array('jquery'),'1.0', true);
225
  wp_enqueue_script('essential_addons_elementor-socialfeed-js',ESSENTIAL_ADDONS_EL_URL.'assets/social-feeds/jquery.socialfeed.js', array('jquery'),'1.0', true);
includes/eae-posts-group-control.php CHANGED
@@ -17,26 +17,6 @@ if( class_exists( 'Elementor\Plugin' ) ) :
17
  return 'eaeposts';
18
  }
19
 
20
- public static function on_export_remove_setting_from_element( $element, $control_id ) {
21
- unset( $element['settings'][ $control_id . '_posts_ids' ] );
22
- unset( $element['settings'][ $control_id . '_authors' ] );
23
-
24
- foreach ( Utils::get_post_types() as $post_type => $label ) {
25
- $taxonomy_filter_args = [
26
- 'show_in_nav_menus' => true,
27
- 'object_type' => [ $post_type ],
28
- ];
29
-
30
- $taxonomies = get_taxonomies( $taxonomy_filter_args, 'objects' );
31
-
32
- foreach ( $taxonomies as $taxonomy => $object ) {
33
- unset( $element['settings'][ $control_id . '_' . $taxonomy . '_ids' ] );
34
- }
35
- }
36
-
37
- return $element;
38
- }
39
-
40
  protected function init_fields() {
41
  $fields = [];
42
 
17
  return 'eaeposts';
18
  }
19
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
20
  protected function init_fields() {
21
  $fields = [];
22
 
includes/eael-rollback.php DELETED
@@ -1,191 +0,0 @@
1
- <?php
2
-
3
- /**
4
- * Main EAEL Rollback Class
5
- *
6
- * @since 2.8.3
7
- */
8
- if( ! class_exists('EAEL_Rollback') ) {
9
-
10
- /**
11
- * Class EAEL_Rollback
12
- */
13
- final class EAEL_Rollback {
14
-
15
- /**
16
- * EAEL_Rollback instance
17
- *
18
- * @var EAEL_Rollback The one and only
19
- * @since 1.0
20
- */
21
- private static $instance;
22
-
23
- /**
24
- * Plugin file.
25
- *
26
- * @var string
27
- */
28
- public $plugin_file;
29
-
30
- /**
31
- * Plugin slug.
32
- *
33
- * @var string
34
- */
35
- public $plugin_slug = 'essential-addons-for-elementor-lite';
36
-
37
- /**
38
- * Versions.
39
- *
40
- * @var array
41
- */
42
- public $versions = [
43
- '2.9.4',
44
- '2.9.3',
45
- '2.9.2',
46
- '2.9.1',
47
- '2.9.0',
48
- '2.8.7',
49
- '2.8.6',
50
- '2.8.5',
51
- '2.8.4',
52
- '2.8.3',
53
- '2.8.2',
54
- '2.8.1',
55
- '2.8.0',
56
- '2.7.1',
57
- '2.7.1',
58
- '2.7.9',
59
- '2.7.8',
60
- '2.7.7',
61
- '2.7.6',
62
- '2.7.5',
63
- '2.7.4',
64
- '2.7.3',
65
- '2.7.2',
66
- '2.7.1',
67
- '2.7.0',
68
- '2.6.0',
69
- '2.5.0',
70
- '2.4.3',
71
- '2.4.2',
72
- '2.4.1',
73
- '2.4.0',
74
- '2.3.1',
75
- '2.3.0',
76
- '2.2.5',
77
- '2.2.4',
78
- '2.2.3',
79
- '2.2.2',
80
- '2.2.1',
81
- '2.2.0',
82
- '2.1',
83
- '2.0',
84
- '1.1.0',
85
- '1.0.1',
86
- '1.0.0'
87
- ];
88
-
89
- /**
90
- * Current version.
91
- *
92
- * @var string
93
- */
94
- public $current_version;
95
-
96
- /**
97
- * Plugins Data
98
- *
99
- * @var array $plugins_data
100
- */
101
- public $plugins_data = [];
102
-
103
- /**
104
- * Main EAEL_Rollback Instance
105
- *
106
- * @return EAEL_Rollback
107
- */
108
- public static function instance() {
109
- if( ! isset( self::$instance ) && ! ( self::$instance instanceof EAEL_Rollback ) && is_admin() ) {
110
- self::$instance = new self();
111
-
112
- // Only setup plugin rollback on specific page.
113
- self::$instance->setup_plugin_vars();
114
- // self::$instance->get_plugin_data();
115
- }
116
- return self::$instance;
117
- }
118
-
119
- public function __construct() {
120
- add_filter( 'insert_eael_versions_html', [$this, 'versions_select'] );
121
- $this->get_plugin_data();
122
- }
123
-
124
- /**
125
- * Setup Variables
126
- *
127
- * @access private
128
- */
129
- private function setup_plugin_vars() {
130
- $this->versions_select('plugin');
131
- }
132
-
133
- /**
134
- * Get plugins data
135
- *
136
- * @return array plugin data
137
- */
138
- public function get_plugin_data() {
139
- if ( ! function_exists( 'get_plugins' ) ) {
140
- require_once ABSPATH . 'wp-admin/includes/plugin.php';
141
- }
142
-
143
- $plugins = get_plugins();
144
- if( array_key_exists('essential-addons-for-elementor-lite/essential_adons_elementor.php', $plugins) ) {
145
- $this->plugins_data = $plugins['essential-addons-for-elementor-lite/essential_adons_elementor.php'];
146
- $this->current_version = $this->plugins_data['Version'];
147
- return $this->plugins_data;
148
- }
149
- }
150
-
151
- /**
152
- * Versions Select
153
- *
154
- * Outputs the version radio buttons to select a rollback;
155
- *
156
- * @param $type
157
- * @return bool|string
158
- */
159
- public function versions_select( $vh ) {
160
- if( !$this->versions ) return false;
161
-
162
- $type = 'plugin';
163
- $vh .= '<select name="'. $type .'_version" id="eael_plugins_versions">';
164
- usort($this->versions, 'version_compare');
165
- $this->versions = array_reverse($this->versions);
166
-
167
- // Loop through versions and output in a radio list
168
- foreach( $this->versions as $v ) {
169
-
170
- // Is this the current version?
171
- if( $v == $this->current_version ) {
172
- $vh .= '<option value"'. esc_attr($v).'" disabled>'.$v;
173
- $vh .= '<span class="current-version">'. __( ' &nbsp; Installed Version', 'essential-addons-elementor' ) .'</span>';
174
- $vh .= '</option>';
175
- }
176
- $vh .= '<option value"'. esc_attr($v).'">'.$v.'</option>';
177
-
178
- }
179
-
180
- $vh .= '</select>';
181
-
182
- return $vh;
183
- }
184
-
185
-
186
-
187
- }
188
-
189
- }
190
-
191
- EAEL_Rollback::instance();
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
includes/maintennance.php DELETED
@@ -1,89 +0,0 @@
1
- <?php
2
- if( !defined( 'ABSPATH' ) ) exit; //Exit if accessed directly
3
-
4
- class EAEL_Version_Maintennance {
5
-
6
- /**
7
- * Instance of this class
8
- *
9
- * @return null|EAEL_Version_Maintennance
10
- */
11
- private static $_instance = null;
12
-
13
- /**
14
- * Upgrade to version
15
- *
16
- * @return string
17
- */
18
- protected $upgrade_to_version;
19
-
20
- public static function get_instance() {
21
- if( is_null(self::$_instance) ) {
22
- self::$_instance = new self();
23
- }
24
- return self::$_instance;
25
- }
26
-
27
- public function __construct() {
28
- add_action( 'admin_enqueue_scripts', [$this, 'eael_version_control_script'] );
29
- add_action( 'admin_post_eael_version_rollback', [$this, 'post_eael_version_rollback'] );
30
- }
31
-
32
- /**
33
- * Trigger the EAEL rollback function
34
- *
35
- * @since 2.8.5
36
- */
37
- function post_eael_version_rollback() {
38
- check_admin_referer( 'eael_version_rollback' );
39
-
40
- $upgrade_to = ( ! empty($_GET['upgrade_version']) ) ? $_GET['upgrade_version'] : ESSENTIAL_ADDONS_STABLE_VERSION;
41
-
42
- $this->upgrade_to_version = $upgrade_to;
43
-
44
- $plugin_slug = 'essential-addons-for-elementor-lite';
45
- $eael_rollback = new EAEL_Version_Rollback([
46
- 'plugin_version' => $upgrade_to,
47
- 'plugin_name' => ESSENTIAL_ADDONS_BASENAME,
48
- 'plugin_slug' => $plugin_slug,
49
- 'package_url' => sprintf( 'https://downloads.wordpress.org/plugin/%s.%s.zip', $plugin_slug, $upgrade_to)
50
- ]);
51
-
52
- $eael_rollback->run();
53
-
54
- wp_die(
55
- '', __( 'Rollback to Previous Version', 'essential-addons-elementor' ),
56
- [ 'response' => 200 ]
57
- );
58
- }
59
-
60
- /**
61
- * Version control page script
62
- */
63
- function eael_version_control_script() {
64
- wp_enqueue_script(
65
- 'eael-rollback-admin-js',
66
- ESSENTIAL_ADDONS_EL_URL . 'admin/assets/js/rollback-admin.js',
67
- [],
68
- '1.0',
69
- true
70
- );
71
-
72
- wp_localize_script(
73
- 'eael-rollback-admin-js',
74
- 'EAELRollBackConfirm',
75
- [
76
- 'home_url' => home_url(),
77
- 'i18n' => [
78
- 'rollback_confirm' => __( 'Are you sure you want to perform this rollback?', 'essential-addons-elementor' ),
79
- 'rollback_to_previous_version' => __( 'Rollback to Previous Version', 'essential-addons-elementor' ),
80
- 'yes' => __( 'Yes', 'essential-addons-elementor' ),
81
- 'cancel' => __( 'Cancel', 'essential-addons-elementor' ),
82
- ],
83
- ]
84
- );
85
- }
86
-
87
- }
88
-
89
- EAEL_Version_Maintennance::get_instance();
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
includes/version-rollback.php DELETED
@@ -1,139 +0,0 @@
1
- <?php
2
-
3
- if( !defined( 'ABSPATH' ) ) exit; //Exit if accessed directly
4
-
5
- /**
6
- * EAEL version rollback class
7
- *
8
- *
9
- * @since 2.8.5
10
- */
11
- class EAEL_Version_Rollback {
12
-
13
- /**
14
- * Plugin repository url
15
- *
16
- * @access protected
17
- */
18
- protected $package_url;
19
-
20
- /**
21
- * Plugin version
22
- *
23
- * @access protected
24
- */
25
- protected $plugin_version;
26
-
27
- /**
28
- * Plugin name
29
- *
30
- * @access protected
31
- */
32
- protected $plugin_name;
33
-
34
- /**
35
- * Plugin slug
36
- *
37
- * @access protected
38
- */
39
- protected $plugin_slug;
40
-
41
-
42
- public function __construct( array $args = [] ) {
43
-
44
- foreach( $args as $key => $value ) {
45
- $this->{$key} = $value;
46
- }
47
-
48
- }
49
-
50
- /**
51
- * Print inline styles
52
- */
53
- private function print_inline_style() {
54
- ?>
55
- <style>
56
- .wrap {
57
- overflow: hidden;
58
- }
59
-
60
- h1 {
61
- background: #6ec1e4;
62
- text-align: center;
63
- color: #fff !important;
64
- padding: 70px !important;
65
- text-transform: uppercase;
66
- letter-spacing: 1px;
67
- }
68
- h1 img {
69
- max-width: 300px;
70
- display: block;
71
- margin: auto auto 50px;
72
- }
73
- </style>
74
- <?php
75
- }
76
-
77
- /**
78
- * Create package for upgrade
79
- *
80
- * @access protected
81
- */
82
- protected function apply_package() {
83
-
84
- $update_plugins = get_transient( 'update_plugins' );
85
-
86
- if( ! is_object($update_plugins) ) {
87
- $update_plugins = new \stdClass();
88
- }
89
-
90
- $plugin_info = new \stdClass();
91
- $plugin_info->new_version = $this->plugin_version;
92
- $plugin_info->slug = $this->plugin_slug;
93
- $plugin_info->package = $this->package_url;
94
- $plugin_info->url = "https://www.essential-addons.com/elementor/";
95
-
96
- $update_plugins->response[ $this->plugin_name ] = $plugin_info;
97
-
98
- set_site_transient( 'update_plugins', $update_plugins );
99
-
100
- }
101
-
102
- /**
103
- * Upgrade plugin
104
- *
105
- * @access protected
106
- */
107
- protected function upgrade() {
108
-
109
- require_once( ABSPATH . 'wp-admin/includes/class-wp-upgrader.php' );
110
-
111
- $logo_url = ESSENTIAL_ADDONS_EL_URL . 'admin/assets/images/ea-logo.png';
112
- $title = '<img src="' . $logo_url . '" alt="Essential Addons Elementor">';
113
- $title .= sprintf(__( "Rolling Back to %s", 'essential-addons-elementor' ), $this->plugin_version);
114
-
115
- $upgrader_args = [
116
- 'url' => 'update.php?action=upgrade-plugin&plugin=' . rawurlencode( $this->plugin_name ),
117
- 'plugin' => $this->plugin_name,
118
- 'nonce' => 'upgrade-plugin_' . $this->plugin_name,
119
- 'title' => $title
120
- ];
121
-
122
- $this->print_inline_style();
123
-
124
- $upgrader = new \Plugin_Upgrader( new \Plugin_Upgrader_Skin( $upgrader_args ) );
125
- $upgrader->upgrade( $this->plugin_name );
126
-
127
- }
128
-
129
- /**
130
- * Trigger plugin upgrader action.
131
- *
132
- * @access protected
133
- */
134
- public function run() {
135
- $this->apply_package();
136
- $this->upgrade();
137
- }
138
-
139
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
readme.txt CHANGED
@@ -4,7 +4,7 @@ Tags: elementor, elements, addons, elementor addon, elementor widget, page build
4
  Requires at least: 4.0
5
  Tested up to: 5.1
6
  Requires PHP: 5.4
7
- Stable tag: 2.9.7
8
  License: GPLv3
9
  License URI: https://opensource.org/licenses/GPL-3.0
10
 
@@ -36,7 +36,7 @@ We have extra-ordinary support team ready to help you. Ask your questions in the
36
  ### [Elementor](https://wordpress.org/plugins/elementor/) page builder is required for this plugin.
37
 
38
 
39
- ### 29+ FREE WIDGETS AND COUNTING
40
 
41
  We have designed 29 of the most useful widgets to enhance your Elementor Page Building experience and allow you to climb the top of your design capabilities.
42
 
@@ -59,23 +59,22 @@ We have designed 29 of the most useful widgets to enhance your Elementor Page Bu
59
  17. [Dual Color Headline](https://essential-addons.com/elementor/dual-color-headline/) - Emphasize on a single word in a sentence by highlighting it with a different color
60
  18. [Call to Action](https://essential-addons.com/elementor/call-to-action/) - Design call-to-action buttons before a blink
61
  19. [Pricing Table](https://essential-addons.com/elementor/pricing-table/) - Create Pricing Tables within minutes that converts
62
- 20. [Facebook Feed](https://essential-addons.com/elementor/facebook-feed/) - Display Facebook posts from your page or group to improve engagement
63
- 21. [Twitter Feed](https://essential-addons.com/elementor/twitter-feed/) - Showcase your latest tweets to your visitor
64
- 22. [Data Table](https://essential-addons.com/elementor/table/) - Insert visually attractive data table anywhere you want
65
- 23. [Filterable Gallery](https://essential-addons.com/elementor/filterable-gallery/) - Easily display custom content in any pages
66
- 24. [Image Accordion](https://essential-addons.com/elementor/image-accordion/) - Highlight your images with amazing hover effects
67
- 25. [Content Ticker](https://essential-addons.com/elementor/content-ticker/) - Use slider and ticker effect and more on dynamic & custom content
68
- 26. [Tooltip](https://essential-addons.com/elementor/tooltip/) - Set tooltip for Icon, Image, Text or shortcodes
69
- 27. [Advanced Tabs](https://essential-addons.com/elementor/advanced-tabs/) - Include tab to put information in different styles. Supports nested tabs.
70
- 28. [Advanced Accordion](https://essential-addons.com/elementor/advanced-accordion/) - Add beautiful accordions in your pages, posts, and anywhere. Supports nested accordions.
71
- 29. [Progress Bar](https://essential-addons.com/elementor/progress-bar/) - Display progress bars with 4+ different styles
72
 
73
  Extensions:
74
 
75
  1. [Particle Effect](https://essential-addons.com/elementor/particle-effect/) - Add creative particle effects to your section, your visitors will love it.
76
 
77
 
78
- ### More elements (30+) on [Premium Version](https://essential-addons.com/elementor/buy.php)
79
 
80
  1. [Post Block (Flex)](https://essential-addons.com/elementor/post-block/) - Display your blog posts with variety of styles with the power of modern CSS Flexbox
81
  2. [Lightbox & Modal](https://essential-addons.com/elementor/lightbox-modal/) - Create Modal Popup which opens after certain actions.
@@ -89,24 +88,23 @@ Extensions:
89
  10. [Interactive Cards](https://essential-addons.com/elementor/interactive-cards/) - Create fascinating visual effect for your content that support images, text or videos.
90
  11. [Content Timeline](https://essential-addons.com/elementor/content-timeline/) - Create memory lane with your content with cool scrolling animation
91
  12. [Data Table](https://essential-addons.com/elementor/table/) - Deliver your informations using advanced and attractive data table
92
- 13. [Facebook Feed Carousel](https://essential-addons.com/elementor/facebook-feed/) - Put your Facebook feed in incredible carousel
93
- 14. [Twitter Feed Carousel](https://essential-addons.com/elementor/twitter-feed/) - Exhibit the twitter feed in interactive styles
94
- 15. [Dynamic Filterable Gallery](https://essential-addons.com/elementor/filterable-gallery/) - Create filterable gallery from custom content or any post type.
95
- 16. [Smart Post List](https://essential-addons.com/elementor/post-list/) - Design your blog page with modern post list
96
- 17. [Mailchimp](https://essential-addons.com/elementor/mailchimp/) - Design your mailchimp form within Elementor with ease
97
- 18. [Content Toggle](https://essential-addons.com/elementor/content-toggle/) - Show saved template or any content within Primary and Secondary content area
98
- 19. [One Page Navigation](https://essential-addons.com/elementor/one-page-nav/) - Create beautiful one page websites using this module
99
- 20. [Price Menu](https://essential-addons.com/elementor/price-menu/) - Make beautiful Pricing menu for your brands without any hassle!
100
- 21. [Image Hotspots](https://essential-addons.com/elementor/image-hotspots/) - Help you to add multiple hotspot icons with tooltip in a image
101
- 22. [Fancy Divider](https://essential-addons.com/elementor/divider/) - Separate your section with fancy divider
102
- 23. [Counter](https://essential-addons.com/elementor/counter/) - Put spotlight in important data using Counter element
103
- 24. [Team Member Carousel](https://essential-addons.com/elementor/team-member-carousel/) - Display your team members in carousel
104
- 25. [Post Carousel](https://essential-addons.com/elementor/post-carousel/) - Even you can create carousel from your posts
105
- 26. [Logo Carousel](https://essential-addons.com/elementor/logo-carousel/) - Highlight brands/product logos in carousel
106
- 27. [Protected Content](https://essential-addons.com/elementor/protected-content/) - Lock your content with password and allow only selected people to see it
107
- 28. [Offcanvas Content](https://essential-addons.com/elementor/offcanvas-content/) - Display content in off canvas and show them with button/element click
108
- 29. [Advanced Menu](https://essential-addons.com/elementor/advanced-menu/) - Use advanced navigation menu anywhere. Choose design from different skins and customize.
109
- 30. [Image Scroller](https://essential-addons.com/elementor/image-scroller/) - Show your panaromic or long height images within image scroller widget.
110
 
111
  Extensions:
112
 
@@ -169,39 +167,45 @@ Your existing elements/content will work with premium version. So you won't lose
169
 
170
  == Changelog ==
171
 
172
- = 2.9.7 =
 
 
 
 
 
 
173
 
174
  - Particles extension revamped
175
 
176
- = 2.9.6 =
177
 
178
  - Admin side performance improved
179
  - Few minor bugfix and improvements
180
 
181
- = 2.9.5 =
182
 
183
  - Fixed: Product grid featured products loop not working
184
  - Few minor bugfix and improvements
185
 
186
- = 2.9.4 =
187
 
188
  - Product Grid layout issue fixed
189
  - Few minor bugfix and improvements
190
 
191
- = 2.9.3 =
192
 
193
  - Fixed: Fatal error Call to undefined function get_plugins()
194
  - Fixed: View Details for other plugins in plugins page
195
 
196
- = 2.9.2 =
197
 
198
  - Few minor bugfix and improvements
199
 
200
- = 2.9.1 =
201
 
202
  - Fixed: Conflict with wp_mail function
203
 
204
- = 2.9.0 =
205
 
206
  - Added : Section Particles effect
207
  - Added: Filterable gallery capability to remove All label
@@ -209,7 +213,7 @@ Your existing elements/content will work with premium version. So you won't lose
209
  - Fixed: invalid calc funciton in progressbar
210
  - Few minor bugfix and improvements
211
 
212
- = 2.8.7 =
213
 
214
  - Added : Version rollback option
215
  - Fixed : Data Table border issue
@@ -220,70 +224,80 @@ Your existing elements/content will work with premium version. So you won't lose
220
  - Fixed : Twitter feed masonry layout issue
221
  - Few minor bugfix and improvements
222
 
223
- = 2.8.6 =
224
 
225
  - Progress Bar revamped with faster and better script and styles
226
  - Few minor bugfix and improvements
227
 
228
- = 2.8.5 =
229
 
230
  - WPForms appearing issue fixed
231
  - Few minor bugfix and improvements
232
 
233
- = 2.8.4 =
234
 
235
  - Filterable Gallery default style improved
236
  - Few minor bugfix and improvements
237
 
238
- = 2.8.3 =
 
239
  - Filterable Gallery improved with better scripts
240
  - Image Gallery issue fixed for Filterable Gallery
241
  - Few minor bugfix and improvements
242
 
243
- = 2.8.2 =
 
244
  - Filterable Gallery card hover effect issue fixed
245
  - Flibox image styling issue fixed
246
  - Few minor bugfix and improvements
247
 
248
- = 2.8.1 =
 
249
  - Image Accordion styling issue fixed
250
  - Post Grid load more issue fixed
251
  - Post Timeline load more issue fixed
252
  - Few minor bugfix and improvements
253
 
254
- = 2.8.0 =
 
255
  - Progress Bar widget added
256
  - Video card support added to Filterable Gallery
257
  - Multiple hover effects added to Post Grid
258
  - Icon changing option added to Post Grid
259
  - Few minor bugfix and improvements
260
 
261
- = 2.7.11 =
 
262
  - Nested Accordion support added (as saved template)
263
  - Few minor bugfix and improvements
264
 
265
- = 2.7.10 =
 
266
  - Table layout breaking issue fixed for larger data tables
267
  - Few minor bugfix and improvements
268
 
269
- = 2.7.9 =
 
270
  - Table script issue fixed
271
  - Advanced Tab content width issue fixed
272
  - Flipbox icon styling option added
273
  - Few minor bugfix and improvements
274
 
275
- = 2.7.8 =
 
276
  - Group control error fixed
277
  - Pricing Table active feature issue fixed
278
  - Few minor bugfix and improvements
279
 
280
- = 2.7.7 =
 
281
  - Testimonial error fixed
282
  - Pricing Table tooltip issue fixed
283
  - Compatibility with PHP 5.4 fixed
284
 
285
- = 2.7.6 =
286
- - (Make sure to clear cache nad hrad refresh the page after update)
 
287
  - Tooltip option added to Pricing Table widget
288
  - Testimonial element improved with more layout options
289
  - Flip Box element improved with more options
@@ -291,23 +305,23 @@ Your existing elements/content will work with premium version. So you won't lose
291
  - Post queries optimized for all post elements
292
  - Few minor bugfix and improvements
293
 
294
- = 2.7.5 =
295
- - (Make sure to clear cache nad hrad refresh the page after update)
296
  - Post elements improved and optimized
297
  - Info Box element improved
298
  - Flip Box element improved
299
  - Few minor bugfix and improvements
300
 
301
- == Changelog ==
302
 
303
- = 2.7.4 =
304
  - (Make sure to clear cache nad hrad refresh the page after update)
305
  - Button elements improved
306
  - Fancy Text element improved
307
  - Image Accordion improved
308
  - Few minor bugfix and improvements
309
 
310
- = 2.7.3 =
 
311
  - Countdown element improved and Expire action added
312
  - Post Grid and Post Timeline query optimized and load more improved
313
  - Post Grid Masonry improved
@@ -319,8 +333,7 @@ Your existing elements/content will work with premium version. So you won't lose
319
  - All form elements improved and optimized
320
  - Few minor bugfix and improvements
321
 
322
-
323
- = 2.7.2 =
324
 
325
  - WPForms element added
326
  - Author, Tags and Exclude posts options added to Post elements (Post Grid, Post Timeline)
@@ -331,7 +344,7 @@ Your existing elements/content will work with premium version. So you won't lose
331
  - Cell colspan feature added to Data Table
332
  - Few minor bugfix and improvements
333
 
334
- = 2.7.1 =
335
 
336
  - "On Sale Price" option added to Pricing Table element
337
  - Testimonial avatar display issue fixed
@@ -344,14 +357,14 @@ Your existing elements/content will work with premium version. So you won't lose
344
  - Filterable Gallery improved with less script dependency
345
  - Few minor bugfix and improvements
346
 
347
- = 2.7.0 =
348
 
349
  - Dynamic field support added to all elements
350
  - Saved Templates option added to content area (all possible elements)
351
  - Advanced Tabs vertical layout added
352
  - Lots of minor bugfix and improvements
353
 
354
- = 2.6.0 =
355
 
356
  - Tooltip element added
357
  - Advanced Tabs element added
@@ -359,7 +372,7 @@ Your existing elements/content will work with premium version. So you won't lose
359
  - Info box improved
360
  - Few minor bugfix and improvements
361
 
362
- = 2.5.0 =
363
 
364
  - Image Accordion Element added
365
  - Content Ticker element added
@@ -367,19 +380,19 @@ Your existing elements/content will work with premium version. So you won't lose
367
  - Twitter Feed element improved
368
  - Few minor bugfix and improvements
369
 
370
- = 2.4.3 =
371
 
372
  - Pricing Table improved
373
  - Documentation and other helpful content added to admin area
374
  - Few minor bugfix and improvements
375
 
376
- = 2.4.2 =
377
 
378
  - Filterable Galley control improved
379
  - Element saving improved
380
  - Few minor bugfix and improvements
381
 
382
- = 2.4.1 =
383
 
384
  - Lightbox Gallery conflict fixed with Elementor
385
  - Filterable Gallery control alignment fixed for mobile
@@ -387,37 +400,36 @@ Your existing elements/content will work with premium version. So you won't lose
387
  - Data Table element improvements
388
  - Few minor bug fixed and improvements
389
 
390
- = 2.4.0 =
391
 
392
  - Data Table element added
393
  - Filterable Gallery added
394
  - Few minor bug fixed and improvements
395
 
396
- = 2.3.1 =
397
 
398
  - Facebook Feed element added
399
  - Twitter Feed element added
400
  - Few minor bug fixed and improvements
401
 
402
- = 2.3.0 =
403
 
404
  - Caldera Forms element added
405
  - HTML support added for Flip Box content
406
  - Few minor bug fixed and improvements
407
 
408
- = 2.2.5 =
409
 
410
  - Few minor bug fixed and improvements
411
  - Admin notice removed
412
 
413
- = 2.2.4 =
414
 
415
  - Ninja Form selector improved
416
  - Info box revamped. Now have more control.
417
  - Few minor improvements
418
 
419
-
420
- = 2.2.3 =
421
 
422
  - Gravity Forms element added
423
  - Post Grid and Post Timeline load more improved
@@ -425,39 +437,34 @@ Your existing elements/content will work with premium version. So you won't lose
425
  - Custom CSS/JS options removed from options panel
426
  - Few minor improvements
427
 
428
- = 2.2.2 =
429
 
430
  - Ninja Forms element added
431
  - Load more functionality added to Post elements (Post Grid & Post Timeline)
432
  - Few presets added for Team Members, Countdown, Fancy Text
433
  - Few minor improvements
434
 
435
-
436
- = 2.2.1 =
437
-
438
- - (Clear cache after update)
439
 
440
  - Several improvements for CTA, Info Box, Flip box and dual heading elements
441
  - Call to action width control and button control added
442
  - Pricing table options improved
443
  - Admin page improved and optimized
444
 
445
-
446
-
447
- = 2.2.0 =
448
 
449
  - Pricing Table Element added
450
  - Flipbox element animation improved and more options added
451
  - Post Timeline responsiveness improved
452
  - Few minor improvements
453
 
454
- = 2.1 =
455
 
456
  - More options added to CTA and Info Box elements
457
  - Flip box animation improved
458
  - Options panel improved and community support links added
459
 
460
- = 2.0 =
461
 
462
  - Options Panel added
463
  - Elements control added. Now you can enable/disable certain elements.
@@ -466,24 +473,20 @@ Your existing elements/content will work with premium version. So you won't lose
466
  - Dual color headline element added.
467
  - Few minor bug fixes and improvements.
468
 
469
- = 1.1.0 =
470
 
471
  - Post Grid (Masonry) element added
472
  - Few minor improvement
473
 
474
-
475
- = 1.0.1 =
476
 
477
  - Element added for weForms (https://wordpress.org/plugins/weforms/)
478
 
479
- = 1.0.0 =
480
 
481
  Initial stable realese
482
 
483
 
484
  == Upgrade Notice ==
485
 
486
- = 2.8.6 =
487
 
488
- - Progress Bar revamped with faster and better script and styles
489
- - Few minor bugfix and improvements
4
  Requires at least: 4.0
5
  Tested up to: 5.1
6
  Requires PHP: 5.4
7
+ Stable tag: 2.9.8
8
  License: GPLv3
9
  License URI: https://opensource.org/licenses/GPL-3.0
10
 
36
  ### [Elementor](https://wordpress.org/plugins/elementor/) page builder is required for this plugin.
37
 
38
 
39
+ ### 28+ FREE WIDGETS AND COUNTING
40
 
41
  We have designed 29 of the most useful widgets to enhance your Elementor Page Building experience and allow you to climb the top of your design capabilities.
42
 
59
  17. [Dual Color Headline](https://essential-addons.com/elementor/dual-color-headline/) - Emphasize on a single word in a sentence by highlighting it with a different color
60
  18. [Call to Action](https://essential-addons.com/elementor/call-to-action/) - Design call-to-action buttons before a blink
61
  19. [Pricing Table](https://essential-addons.com/elementor/pricing-table/) - Create Pricing Tables within minutes that converts
62
+ 20. [Twitter Feed](https://essential-addons.com/elementor/twitter-feed/) - Showcase your latest tweets to your visitor
63
+ 21. [Data Table](https://essential-addons.com/elementor/table/) - Insert visually attractive data table anywhere you want
64
+ 22. [Filterable Gallery](https://essential-addons.com/elementor/filterable-gallery/) - Easily display custom content in any pages
65
+ 23. [Image Accordion](https://essential-addons.com/elementor/image-accordion/) - Highlight your images with amazing hover effects
66
+ 24. [Content Ticker](https://essential-addons.com/elementor/content-ticker/) - Use slider and ticker effect and more on dynamic & custom content
67
+ 25. [Tooltip](https://essential-addons.com/elementor/tooltip/) - Set tooltip for Icon, Image, Text or shortcodes
68
+ 26. [Advanced Tabs](https://essential-addons.com/elementor/advanced-tabs/) - Include tab to put information in different styles. Supports nested tabs.
69
+ 27. [Advanced Accordion](https://essential-addons.com/elementor/advanced-accordion/) - Add beautiful accordions in your pages, posts, and anywhere. Supports nested accordions.
70
+ 28. [Progress Bar](https://essential-addons.com/elementor/progress-bar/) - Display progress bars with 4+ different styles
 
71
 
72
  Extensions:
73
 
74
  1. [Particle Effect](https://essential-addons.com/elementor/particle-effect/) - Add creative particle effects to your section, your visitors will love it.
75
 
76
 
77
+ ### More elements (29+) on [Premium Version](https://essential-addons.com/elementor/buy.php)
78
 
79
  1. [Post Block (Flex)](https://essential-addons.com/elementor/post-block/) - Display your blog posts with variety of styles with the power of modern CSS Flexbox
80
  2. [Lightbox & Modal](https://essential-addons.com/elementor/lightbox-modal/) - Create Modal Popup which opens after certain actions.
88
  10. [Interactive Cards](https://essential-addons.com/elementor/interactive-cards/) - Create fascinating visual effect for your content that support images, text or videos.
89
  11. [Content Timeline](https://essential-addons.com/elementor/content-timeline/) - Create memory lane with your content with cool scrolling animation
90
  12. [Data Table](https://essential-addons.com/elementor/table/) - Deliver your informations using advanced and attractive data table
91
+ 13. [Twitter Feed Carousel](https://essential-addons.com/elementor/twitter-feed/) - Exhibit the twitter feed in interactive styles
92
+ 14. [Dynamic Filterable Gallery](https://essential-addons.com/elementor/filterable-gallery/) - Create filterable gallery from custom content or any post type.
93
+ 15. [Smart Post List](https://essential-addons.com/elementor/post-list/) - Design your blog page with modern post list
94
+ 16. [Mailchimp](https://essential-addons.com/elementor/mailchimp/) - Design your mailchimp form within Elementor with ease
95
+ 17. [Content Toggle](https://essential-addons.com/elementor/content-toggle/) - Show saved template or any content within Primary and Secondary content area
96
+ 18. [One Page Navigation](https://essential-addons.com/elementor/one-page-nav/) - Create beautiful one page websites using this module
97
+ 19. [Price Menu](https://essential-addons.com/elementor/price-menu/) - Make beautiful Pricing menu for your brands without any hassle!
98
+ 20. [Image Hotspots](https://essential-addons.com/elementor/image-hotspots/) - Help you to add multiple hotspot icons with tooltip in a image
99
+ 21. [Fancy Divider](https://essential-addons.com/elementor/divider/) - Separate your section with fancy divider
100
+ 22. [Counter](https://essential-addons.com/elementor/counter/) - Put spotlight in important data using Counter element
101
+ 23. [Team Member Carousel](https://essential-addons.com/elementor/team-member-carousel/) - Display your team members in carousel
102
+ 24. [Post Carousel](https://essential-addons.com/elementor/post-carousel/) - Even you can create carousel from your posts
103
+ 25. [Logo Carousel](https://essential-addons.com/elementor/logo-carousel/) - Highlight brands/product logos in carousel
104
+ 26. [Protected Content](https://essential-addons.com/elementor/protected-content/) - Lock your content with password and allow only selected people to see it
105
+ 27. [Offcanvas Content](https://essential-addons.com/elementor/offcanvas-content/) - Display content in off canvas and show them with button/element click
106
+ 28. [Advanced Menu](https://essential-addons.com/elementor/advanced-menu/) - Use advanced navigation menu anywhere. Choose design from different skins and customize.
107
+ 29. [Image Scroller](https://essential-addons.com/elementor/image-scroller/) - Show your panaromic or long height images within image scroller widget.
 
108
 
109
  Extensions:
110
 
167
 
168
  == Changelog ==
169
 
170
+ = 2.9.8 - 28/02/2019 =
171
+
172
+ - Facebook Feed removed as it doesn't work with new API
173
+ - Version rollback feature removed
174
+ - Few minor bugfix and improvements
175
+
176
+ = 2.9.7 - 25/02/2019 =
177
 
178
  - Particles extension revamped
179
 
180
+ = 2.9.6 - 17/02/2019=
181
 
182
  - Admin side performance improved
183
  - Few minor bugfix and improvements
184
 
185
+ = 2.9.5 - 07/02/2019 =
186
 
187
  - Fixed: Product grid featured products loop not working
188
  - Few minor bugfix and improvements
189
 
190
+ = 2.9.4 - 29/01/2019 =
191
 
192
  - Product Grid layout issue fixed
193
  - Few minor bugfix and improvements
194
 
195
+ = 2.9.3 - 27/01/2019 =
196
 
197
  - Fixed: Fatal error Call to undefined function get_plugins()
198
  - Fixed: View Details for other plugins in plugins page
199
 
200
+ = 2.9.2 - 25/01/2019 =
201
 
202
  - Few minor bugfix and improvements
203
 
204
+ = 2.9.1 - 23/01/2019 =
205
 
206
  - Fixed: Conflict with wp_mail function
207
 
208
+ = 2.9.0 - 23/01/2019 =
209
 
210
  - Added : Section Particles effect
211
  - Added: Filterable gallery capability to remove All label
213
  - Fixed: invalid calc funciton in progressbar
214
  - Few minor bugfix and improvements
215
 
216
+ = 2.8.7 - 24/12/2018 =
217
 
218
  - Added : Version rollback option
219
  - Fixed : Data Table border issue
224
  - Fixed : Twitter feed masonry layout issue
225
  - Few minor bugfix and improvements
226
 
227
+ = 2.8.6 - 10/12/2018 =
228
 
229
  - Progress Bar revamped with faster and better script and styles
230
  - Few minor bugfix and improvements
231
 
232
+ = 2.8.5 - 06/12/2018 =
233
 
234
  - WPForms appearing issue fixed
235
  - Few minor bugfix and improvements
236
 
237
+ = 2.8.4 - 04/12/2018 =
238
 
239
  - Filterable Gallery default style improved
240
  - Few minor bugfix and improvements
241
 
242
+ = 2.8.3 - 11/11/2018 =
243
+
244
  - Filterable Gallery improved with better scripts
245
  - Image Gallery issue fixed for Filterable Gallery
246
  - Few minor bugfix and improvements
247
 
248
+ = 2.8.2 - 23/10/2018 =
249
+
250
  - Filterable Gallery card hover effect issue fixed
251
  - Flibox image styling issue fixed
252
  - Few minor bugfix and improvements
253
 
254
+ = 2.8.1 - 18/10/2018 =
255
+
256
  - Image Accordion styling issue fixed
257
  - Post Grid load more issue fixed
258
  - Post Timeline load more issue fixed
259
  - Few minor bugfix and improvements
260
 
261
+ = 2.8.0 - 17/10/2018 =
262
+
263
  - Progress Bar widget added
264
  - Video card support added to Filterable Gallery
265
  - Multiple hover effects added to Post Grid
266
  - Icon changing option added to Post Grid
267
  - Few minor bugfix and improvements
268
 
269
+ = 2.7.11 - 23/09/2018 =
270
+
271
  - Nested Accordion support added (as saved template)
272
  - Few minor bugfix and improvements
273
 
274
+ = 2.7.10 - 16/09/2018 =
275
+
276
  - Table layout breaking issue fixed for larger data tables
277
  - Few minor bugfix and improvements
278
 
279
+ = 2.7.9 - 10/09/2018 =
280
+
281
  - Table script issue fixed
282
  - Advanced Tab content width issue fixed
283
  - Flipbox icon styling option added
284
  - Few minor bugfix and improvements
285
 
286
+ = 2.7.8 - 28/08/2018 =
287
+
288
  - Group control error fixed
289
  - Pricing Table active feature issue fixed
290
  - Few minor bugfix and improvements
291
 
292
+ = 2.7.7 - 26/08/2018 =
293
+
294
  - Testimonial error fixed
295
  - Pricing Table tooltip issue fixed
296
  - Compatibility with PHP 5.4 fixed
297
 
298
+ = 2.7.6 - 17/08/2018 =
299
+
300
+ - (Make sure to clear cache and hard refresh the page after update)
301
  - Tooltip option added to Pricing Table widget
302
  - Testimonial element improved with more layout options
303
  - Flip Box element improved with more options
305
  - Post queries optimized for all post elements
306
  - Few minor bugfix and improvements
307
 
308
+ = 2.7.5 - 02/08/2018 =
309
+
310
  - Post elements improved and optimized
311
  - Info Box element improved
312
  - Flip Box element improved
313
  - Few minor bugfix and improvements
314
 
315
+ = 2.7.4 - 23/07/2018 =
316
 
 
317
  - (Make sure to clear cache nad hrad refresh the page after update)
318
  - Button elements improved
319
  - Fancy Text element improved
320
  - Image Accordion improved
321
  - Few minor bugfix and improvements
322
 
323
+ = 2.7.3 - 22/07/2018 =
324
+
325
  - Countdown element improved and Expire action added
326
  - Post Grid and Post Timeline query optimized and load more improved
327
  - Post Grid Masonry improved
333
  - All form elements improved and optimized
334
  - Few minor bugfix and improvements
335
 
336
+ = 2.7.2 - 01/07/2018 =
 
337
 
338
  - WPForms element added
339
  - Author, Tags and Exclude posts options added to Post elements (Post Grid, Post Timeline)
344
  - Cell colspan feature added to Data Table
345
  - Few minor bugfix and improvements
346
 
347
+ = 2.7.1 - 03/06/2018 =
348
 
349
  - "On Sale Price" option added to Pricing Table element
350
  - Testimonial avatar display issue fixed
357
  - Filterable Gallery improved with less script dependency
358
  - Few minor bugfix and improvements
359
 
360
+ = 2.7.0 - 27/05/2018 =
361
 
362
  - Dynamic field support added to all elements
363
  - Saved Templates option added to content area (all possible elements)
364
  - Advanced Tabs vertical layout added
365
  - Lots of minor bugfix and improvements
366
 
367
+ = 2.6.0 - 24/04/2018 =
368
 
369
  - Tooltip element added
370
  - Advanced Tabs element added
372
  - Info box improved
373
  - Few minor bugfix and improvements
374
 
375
+ = 2.5.0 - 04/04/2018 =
376
 
377
  - Image Accordion Element added
378
  - Content Ticker element added
380
  - Twitter Feed element improved
381
  - Few minor bugfix and improvements
382
 
383
+ = 2.4.3 - 21/03/2018 =
384
 
385
  - Pricing Table improved
386
  - Documentation and other helpful content added to admin area
387
  - Few minor bugfix and improvements
388
 
389
+ = 2.4.2 - 15/02/2018 =
390
 
391
  - Filterable Galley control improved
392
  - Element saving improved
393
  - Few minor bugfix and improvements
394
 
395
+ = 2.4.1 - 24/01/2018 =
396
 
397
  - Lightbox Gallery conflict fixed with Elementor
398
  - Filterable Gallery control alignment fixed for mobile
400
  - Data Table element improvements
401
  - Few minor bug fixed and improvements
402
 
403
+ = 2.4.0 - 01/01/2018 =
404
 
405
  - Data Table element added
406
  - Filterable Gallery added
407
  - Few minor bug fixed and improvements
408
 
409
+ = 2.3.1 - 21/12/2017 =
410
 
411
  - Facebook Feed element added
412
  - Twitter Feed element added
413
  - Few minor bug fixed and improvements
414
 
415
+ = 2.3.0 - 05/12/2017 =
416
 
417
  - Caldera Forms element added
418
  - HTML support added for Flip Box content
419
  - Few minor bug fixed and improvements
420
 
421
+ = 2.2.5 - 05/11/2017 =
422
 
423
  - Few minor bug fixed and improvements
424
  - Admin notice removed
425
 
426
+ = 2.2.4 - 28/11/2017 =
427
 
428
  - Ninja Form selector improved
429
  - Info box revamped. Now have more control.
430
  - Few minor improvements
431
 
432
+ = 2.2.3 - 16/11/2017 =
 
433
 
434
  - Gravity Forms element added
435
  - Post Grid and Post Timeline load more improved
437
  - Custom CSS/JS options removed from options panel
438
  - Few minor improvements
439
 
440
+ = 2.2.2 - 05/11/2017 =
441
 
442
  - Ninja Forms element added
443
  - Load more functionality added to Post elements (Post Grid & Post Timeline)
444
  - Few presets added for Team Members, Countdown, Fancy Text
445
  - Few minor improvements
446
 
447
+ = 2.2.1 - 22/10/2017 =
 
 
 
448
 
449
  - Several improvements for CTA, Info Box, Flip box and dual heading elements
450
  - Call to action width control and button control added
451
  - Pricing table options improved
452
  - Admin page improved and optimized
453
 
454
+ = 2.2.0 - 15/10/2017 =
 
 
455
 
456
  - Pricing Table Element added
457
  - Flipbox element animation improved and more options added
458
  - Post Timeline responsiveness improved
459
  - Few minor improvements
460
 
461
+ = 2.1 - 03/10/2017 =
462
 
463
  - More options added to CTA and Info Box elements
464
  - Flip box animation improved
465
  - Options panel improved and community support links added
466
 
467
+ = 2.0 - 28/09/2017 =
468
 
469
  - Options Panel added
470
  - Elements control added. Now you can enable/disable certain elements.
473
  - Dual color headline element added.
474
  - Few minor bug fixes and improvements.
475
 
476
+ = 1.1.0 - 15/08/2017 =
477
 
478
  - Post Grid (Masonry) element added
479
  - Few minor improvement
480
 
481
+ = 1.0.1 - 01/08/2017 =
 
482
 
483
  - Element added for weForms (https://wordpress.org/plugins/weforms/)
484
 
485
+ = 1.0.0 - 20/07/2017 =
486
 
487
  Initial stable realese
488
 
489
 
490
  == Upgrade Notice ==
491
 
 
492