Premium Addons for Elementor - Version 2.1.9

Version Description

  • Tweak: Added open links in new tab option in Premium Blog widget.
  • Tweak: Enhanced files loading speed.
  • Fix: Special characters bug in Premium Fancy Text Widget.
Download this release

Release Info

Developer leap13
Plugin Icon 128x128 Premium Addons for Elementor
Version 2.1.9
Comparing to
See all releases

Code changes from version 2.1.8 to 2.1.9

admin/settings-page.php CHANGED
@@ -356,7 +356,7 @@ class PA_admin_settings {
356
 
357
  <tr class="pa-roll-row">
358
  <th>Rollback Version</th>
359
- <td><div><?php echo sprintf( '<a target="_blank" href="%s" class="button pa-btn pa-rollback-button elementor-button-spinner">Reinstall Version 2.1.7</a>', wp_nonce_url( admin_url( 'admin-post.php?action=premium_addons_rollback' ), 'premium_addons_rollback' ) ); ?> </div><p class="pa-roll-desc"><span>Warning: Please backup your database before making the rollback.</span></p></td>
360
  </tr>
361
  <tr>
362
  <th><h4 class="pa-beta-test">Become a Beta Tester</h4><span class="pa-beta-test-span">Turn-on Beta Tester, to get notified when a new beta version of Premium Addons for Elementor. The Beta version will not install automatically. You always have the option to ignore it.</span></th>
356
 
357
  <tr class="pa-roll-row">
358
  <th>Rollback Version</th>
359
+ <td><div><?php echo sprintf( '<a target="_blank" href="%s" class="button pa-btn pa-rollback-button elementor-button-spinner">Reinstall Version 2.1.8</a>', wp_nonce_url( admin_url( 'admin-post.php?action=premium_addons_rollback' ), 'premium_addons_rollback' ) ); ?> </div><p class="pa-roll-desc"><span>Warning: Please backup your database before making the rollback.</span></p></td>
360
  </tr>
361
  <tr>
362
  <th><h4 class="pa-beta-test">Become a Beta Tester</h4><span class="pa-beta-test-span">Turn-on Beta Tester, to get notified when a new beta version of Premium Addons for Elementor. The Beta version will not install automatically. You always have the option to ignore it.</span></th>
assets/js/premium-addons.js CHANGED
@@ -1,4 +1,5 @@
1
  (function($){
 
2
  //Premium Progress Bar Handler
3
  var PremiumProgressBarWidgetHandler = function ($scope,$){
4
  var progressbarElement = $scope.find('.premium-progressbar-progress-bar').each(function(){
@@ -10,6 +11,7 @@
10
  $(this).animate({width: length + '%'} , length * 25);
11
  });
12
  };
 
13
  //Premium Progress Bar on Scroll Handler
14
  var PremiumProgressBarScrollWidgetHandler = function ($scope,$){
15
  $scope.waypoint(function (direction) {
@@ -19,6 +21,7 @@
19
  triggerOnce: true
20
  });
21
  };
 
22
  //Premium Video Box Handler
23
  var PremiumVideoBoxWidgetHandler = function($scope,$){
24
  var videoBoxElement = $scope.find('.premium-video-box-container');
@@ -33,6 +36,7 @@
33
  },600);
34
  });
35
  };
 
36
  //Premium Grid Handler
37
  var PremiumGridWidgetHandler = function($scope,$){
38
  if ($().isotope === undefined) {
@@ -95,6 +99,7 @@
95
  social_tools: ''
96
  });
97
  };
 
98
  //Premium Counter Handler
99
  var PremiumCounterHandler = function($scope,$){
100
  var counterElement = $scope.find('.premium-counter').each(function(){
@@ -152,13 +157,26 @@
152
  });
153
  });
154
  };
155
- //Premium Fancy Text Handler
 
156
  var PremiumFancyTextHandler = function($scope,$){
157
  var fancyTextElement = $scope.find('.premium-fancy-text-wrapper');
158
  var fancyTextSettings = fancyTextElement.data('settings');
 
 
 
 
 
 
 
 
 
 
 
 
159
  if(fancyTextSettings['effect'] === 'typing'){
160
  fancyTextElement.find('.premium-fancy-text').typed( {
161
- strings: fancyTextSettings['strings'],
162
  typeSpeed: fancyTextSettings['typeSpeed'],
163
  backSpeed: fancyTextSettings['backSpeed'],
164
  startDelay:fancyTextSettings['startDelay'],
@@ -176,8 +194,8 @@
176
  direction: "up"
177
  });
178
  }
179
- };
180
- //Premium Countdown Handler
181
  var PremiumCountDownHandler = function ($scope,$){
182
  var countDownElement = $scope.find('.premium-countdown').each(function(){
183
  var countDownSettings = $(this).data('settings');
@@ -227,6 +245,7 @@
227
  }
228
  });
229
  };
 
230
  //Premium Carousel Handler
231
  var PremiumCarouselHandler = function ($scope,$){
232
  var carouselElement = $scope.find('.premium-carousel-wrapper').each(function(){
@@ -333,6 +352,7 @@
333
  marginFix.setWidth('horizontal');
334
  });
335
  };
 
336
  //Premium Banner Handler
337
  var PremiumBannerHandler = function ($scope,$){
338
  var bannerElement = $scope.find('.premium_banner');
@@ -344,6 +364,7 @@
344
  $(this).find('.premium_addons-banner-ib-img').removeClass('active');
345
  });
346
  };
 
347
  //Premium Modal Box Handler
348
  var PremiumModalBoxHandler = function ($scope,$){
349
  var modalBoxElement = $scope.find('.premium-modal-box-container');
1
  (function($){
2
+
3
  //Premium Progress Bar Handler
4
  var PremiumProgressBarWidgetHandler = function ($scope,$){
5
  var progressbarElement = $scope.find('.premium-progressbar-progress-bar').each(function(){
11
  $(this).animate({width: length + '%'} , length * 25);
12
  });
13
  };
14
+
15
  //Premium Progress Bar on Scroll Handler
16
  var PremiumProgressBarScrollWidgetHandler = function ($scope,$){
17
  $scope.waypoint(function (direction) {
21
  triggerOnce: true
22
  });
23
  };
24
+
25
  //Premium Video Box Handler
26
  var PremiumVideoBoxWidgetHandler = function($scope,$){
27
  var videoBoxElement = $scope.find('.premium-video-box-container');
36
  },600);
37
  });
38
  };
39
+
40
  //Premium Grid Handler
41
  var PremiumGridWidgetHandler = function($scope,$){
42
  if ($().isotope === undefined) {
99
  social_tools: ''
100
  });
101
  };
102
+
103
  //Premium Counter Handler
104
  var PremiumCounterHandler = function($scope,$){
105
  var counterElement = $scope.find('.premium-counter').each(function(){
157
  });
158
  });
159
  };
160
+
161
+ //Premium Fancy Text Handler
162
  var PremiumFancyTextHandler = function($scope,$){
163
  var fancyTextElement = $scope.find('.premium-fancy-text-wrapper');
164
  var fancyTextSettings = fancyTextElement.data('settings');
165
+ var fancyStrings = [];
166
+ fancyTextSettings['strings'].forEach(function(item){
167
+ fancyStrings.push(escapeHtml(item));
168
+ });
169
+ function escapeHtml(unsafe) {
170
+ return unsafe
171
+ .replace(/&/g, "&amp;")
172
+ .replace(/</g, "&lt;")
173
+ .replace(/>/g, "&gt;")
174
+ .replace(/"/g, "&quot;")
175
+ .replace(/'/g, "&#039;");
176
+ }
177
  if(fancyTextSettings['effect'] === 'typing'){
178
  fancyTextElement.find('.premium-fancy-text').typed( {
179
+ strings: fancyStrings,
180
  typeSpeed: fancyTextSettings['typeSpeed'],
181
  backSpeed: fancyTextSettings['backSpeed'],
182
  startDelay:fancyTextSettings['startDelay'],
194
  direction: "up"
195
  });
196
  }
197
+ };
198
+ //Premium Countdown Handler
199
  var PremiumCountDownHandler = function ($scope,$){
200
  var countDownElement = $scope.find('.premium-countdown').each(function(){
201
  var countDownSettings = $(this).data('settings');
245
  }
246
  });
247
  };
248
+
249
  //Premium Carousel Handler
250
  var PremiumCarouselHandler = function ($scope,$){
251
  var carouselElement = $scope.find('.premium-carousel-wrapper').each(function(){
352
  marginFix.setWidth('horizontal');
353
  });
354
  };
355
+
356
  //Premium Banner Handler
357
  var PremiumBannerHandler = function ($scope,$){
358
  var bannerElement = $scope.find('.premium_banner');
364
  $(this).find('.premium_addons-banner-ib-img').removeClass('active');
365
  });
366
  };
367
+
368
  //Premium Modal Box Handler
369
  var PremiumModalBoxHandler = function ($scope,$){
370
  var modalBoxElement = $scope.find('.premium-modal-box-container');
premium-addons-for-elementor.php CHANGED
@@ -3,7 +3,7 @@
3
  Plugin Name: Premium Addons for Elementor
4
  Description: Premium Addons Plugin Includes 20 premium widgets for Elementor Page Builder.
5
  Plugin URI: https://premiumaddons.com
6
- Version: 2.1.8
7
  Author: Leap13
8
  Author URI: http://leap13.com/
9
  Text Domain: premium-addons-for-elementor
@@ -22,12 +22,12 @@ if( !function_exists('add_action') ) {
22
 
23
  if( !defined( 'ABSPATH' ) ) exit; // No access of directly access
24
 
25
- define( 'PREMIUM_ADDONS_VERSION', '2.1.8' );
26
  define( 'PREMIUM_ADDONS_URL', plugins_url('/', __FILE__ ) );
27
  define( 'PREMIUM_ADDONS_PATH', plugin_dir_path( __FILE__ ) );
28
  define( 'PREMIUM_ADDONS_FILE', __FILE__ );
29
  define( 'PREMIUM_ADDONS_BASENAME', plugin_basename(__FILE__));
30
- define( 'PREMIUM_ADDONS_STABLE_VERSION', '2.1.7');
31
 
32
 
33
  /**
@@ -185,80 +185,17 @@ define( 'PREMIUM_ADDONS_STABLE_VERSION', '2.1.7');
185
 
186
  $check_component_active = get_option( 'pa_save_settings', $pa_default_settings );
187
 
188
- if( $check_component_active['premium-banner'] ) {
189
- require_once( PREMIUM_ADDONS_PATH. 'widgets/premium-banner.php' );
190
- }
191
- if( $check_component_active['premium-carousel'] ) {
192
- require_once( PREMIUM_ADDONS_PATH. 'widgets/premium-carousel.php' );
193
- }
194
-
195
- if( $check_component_active['premium-countdown'] ) {
196
- require_once( PREMIUM_ADDONS_PATH. 'widgets/premium-countdown.php' );
197
- }
198
-
199
- if( $check_component_active['premium-counter'] ) {
200
- require_once( PREMIUM_ADDONS_PATH. 'widgets/premium-counter.php' );
201
- }
202
-
203
- if( $check_component_active['premium-image-separator'] ) {
204
- require_once( PREMIUM_ADDONS_PATH. 'widgets/premium-imageseparator.php' );
205
- }
206
-
207
- if( $check_component_active['premium-modalbox'] ) {
208
- require_once( PREMIUM_ADDONS_PATH. 'widgets/premium-modalbox.php' );
209
- }
210
- if( $check_component_active['premium-progressbar'] ) {
211
- require_once( PREMIUM_ADDONS_PATH. 'widgets/premium-progressbar.php' );
212
- }
213
-
214
- if( $check_component_active['premium-testimonials'] ) {
215
- require_once( PREMIUM_ADDONS_PATH. 'widgets/premium-testimonials.php' );
216
- }
217
-
218
- if( $check_component_active['premium-title'] ) {
219
- require_once( PREMIUM_ADDONS_PATH. 'widgets/premium-title.php' );
220
- }
221
-
222
- if( $check_component_active['premium-fancytext'] ) {
223
- require_once( PREMIUM_ADDONS_PATH. 'widgets/premium-fancytext.php' );
224
- }
225
-
226
- if( $check_component_active['premium-videobox'] ) {
227
- require_once( PREMIUM_ADDONS_PATH. 'widgets/premium-videobox.php' );
228
- }
229
-
230
- if( $check_component_active['premium-pricing-table'] ) {
231
- require_once( PREMIUM_ADDONS_PATH. 'widgets/premium-pricing-table.php' );
232
- }
233
-
234
- if( $check_component_active['premium-blog'] ) {
235
- require_once( PREMIUM_ADDONS_PATH.'queries.php' );
236
- require_once( PREMIUM_ADDONS_PATH. 'widgets/premium-blog.php' );
237
- }
238
-
239
- if( $check_component_active['premium-person'] ) {
240
- require_once( PREMIUM_ADDONS_PATH. 'widgets/premium-person.php' );
241
- }
242
-
243
- if( $check_component_active['premium-maps'] ) {
244
- require_once( PREMIUM_ADDONS_PATH. 'widgets/premium-maps.php' );
245
- }
246
-
247
- if( $check_component_active['premium-dual-header'] ) {
248
- require_once( PREMIUM_ADDONS_PATH. 'widgets/premium-dual-header.php' );
249
- }
250
- if( $check_component_active['premium-button'] ) {
251
- require_once( PREMIUM_ADDONS_PATH. 'widgets/premium-button.php' );
252
- }
253
- if( function_exists('wpcf7') && $check_component_active['premium-contactform'] ) {
254
- require_once( PREMIUM_ADDONS_PATH. 'widgets/premium-contactform.php' );
255
- }
256
- if( $check_component_active['premium-image-button'] ) {
257
- require_once( PREMIUM_ADDONS_PATH. 'widgets/premium-image-button.php' );
258
- }
259
- if( $check_component_active['premium-grid'] ) {
260
- require_once( PREMIUM_ADDONS_PATH. 'widgets/premium-grid.php' );
261
  }
 
262
  }
263
 
264
  public function initiate_elementor_addons() {
3
  Plugin Name: Premium Addons for Elementor
4
  Description: Premium Addons Plugin Includes 20 premium widgets for Elementor Page Builder.
5
  Plugin URI: https://premiumaddons.com
6
+ Version: 2.1.9
7
  Author: Leap13
8
  Author URI: http://leap13.com/
9
  Text Domain: premium-addons-for-elementor
22
 
23
  if( !defined( 'ABSPATH' ) ) exit; // No access of directly access
24
 
25
+ define( 'PREMIUM_ADDONS_VERSION', '2.1.9' );
26
  define( 'PREMIUM_ADDONS_URL', plugins_url('/', __FILE__ ) );
27
  define( 'PREMIUM_ADDONS_PATH', plugin_dir_path( __FILE__ ) );
28
  define( 'PREMIUM_ADDONS_FILE', __FILE__ );
29
  define( 'PREMIUM_ADDONS_BASENAME', plugin_basename(__FILE__));
30
+ define( 'PREMIUM_ADDONS_STABLE_VERSION', '2.1.8');
31
 
32
 
33
  /**
185
 
186
  $check_component_active = get_option( 'pa_save_settings', $pa_default_settings );
187
 
188
+ foreach($check_component_active as $element_name => $element_active){
189
+ if($element_active && $element_name != 'premium-contactform' && $element_name != 'premium-map-api' && $element_name != 'premium-map-disable-api' && $element_name != 'is-beta-tester' ){
190
+ if($element_name == 'premium-blog'){
191
+ require_once (PREMIUM_ADDONS_PATH . 'queries.php');
192
+ }
193
+ require_once (PREMIUM_ADDONS_PATH . 'widgets/' . $element_name . '.php');
194
+ } elseif ($element_active && $element_name == 'premium-contactform' && function_exists('wpcf7')){
195
+ require_once (PREMIUM_ADDONS_PATH . 'widgets/' . $element_name . '.php');
196
+ }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
197
  }
198
+
199
  }
200
 
201
  public function initiate_elementor_addons() {
readme.txt CHANGED
@@ -5,11 +5,11 @@ Donate link: http://premiumaddons.com
5
  Requires at least: 4.5
6
  Tested up to: 4.9.5
7
  Requires PHP: 5.4
8
- Stable tag: 2.1.8
9
  License: GPL v3.0
10
  License URI: https://opensource.org/licenses/GPL-3.0
11
 
12
- 20 Premium Elementor Addons & Widgets like Grid, Modal Box, Carousel, Google Maps, Pricing Tables, Countdown, Testimonials, Blog, and much more.
13
 
14
  == Description ==
15
  20 Premium Elementor addons & widgets with numerous customization options that extends Elementor Page Builder capabilities to help you build impressive websites with no coding required. Click [Here](https://www.premiumaddons.com/) to check addon elements’ demos.
@@ -30,26 +30,26 @@ Premium Addons for Elementor can be used only as a complement of Elementor page
30
 
31
  ### Available Elements
32
 
33
- 1. [Premium Grid](https://www.premiumaddons.com/premium-grid-element-for-elementor-page-builder/) Highly customizable grid widget that can be used for creating attractive looking image galleries and portfolios.
34
- 2. [Premium Carousel](https://premiumaddons.com/premium-carousel-element-for-elementor-page-builder/) The best all purpose carousel widget for Elementor, It can be used to create testimonials carousel, client logos carousel, or any kind of content.
35
- 3. [Premium Banner](https://premiumaddons.com/premium-banner-element-for-elementor-page-builder/) Animated and interactive banner widget with multiple styles.
36
- 4. [Premium Google Maps](https://premiumaddons.com/premium-google-maps-element-elementor-page-builder/) Advanced Google Maps widget with multiple markers, custom styling and much more options.
37
- 5. [Premium Pricing Table](https://premiumaddons.com/premium-pricing-table-element-elementor-page-builder/) The most customizable Elementor Pricing Table Widget with tons of customization options.
38
- 6. [Premium Image Separator](https://premiumaddons.com/premium-image-separator-element-elementor-page-builder/) This element adds image separator between sections.
39
- 7. [Premium Fancy Text](https://premiumaddons.com/premium-fancy-text-element-elementor-page-builder/) Animated fancy text with many animation styles.
40
- 8. [Premium Heading](https://premiumaddons.com/premium-heading-element-elementor-page-builder/) This widget has many customizable ready made styles for headings.
41
- 9. [Premium Dual Header](https://premiumaddons.com/premium-dual-header-element-elementor-page-builder/) Create a header with 2 styles with numerous customization options.
42
- 10. [Premium Testimonials](https://premiumaddons.com/premium-testimonials-element-elementor-page-builder/) Modern testimonials widget with many customization options.
43
- 11. [Premium Persons](https://premiumaddons.com/premium-persons-element-elementor-page-builder/) Very good element for listing team members.
44
- 12. [Premium Countdown](https://premiumaddons.com/premium-countdown-element-elementor-page-builder/) Advanced countdown addon for elementor.
45
- 13. [Premium Blog](https://premiumaddons.com/premium-blog-element-elementor-page-builder/) Blog posts widget with modern style.
46
- 14. [Premium Counter](https://premiumaddons.com/premium-counter-element-elementor-page-builder/) Advanced counter elements with lots of options.
47
- 15. [Premium Video Box](https://premiumaddons.com/premium-video-box-element-elementor-page-builder/) Video box element with many customization features.
48
- 16. [Premium Modal Box](https://premiumaddons.com/premium-modal-box-element-elementor-page-builder/) All purpose Elementor modal box with many options.
49
- 17. [Premium Progress Bar](https://premiumaddons.com/premium-progress-bar-element-elementor-page-builder/) The most advanced progress bar available for Elementor.
50
- 19. [Premium Button](https://premiumaddons.com/premium-button-element-elementor-page-builder/) Advanced button with lots of interactive animation and styling options and onClick event option.
51
- 19. [Premium Contact Form 7](https://premiumaddons.com/premium-contact-form-7-element-elementor-page-builder/) Elementor contact form 7 add-on with 2 readymade styles.
52
- 20. [Premium Image Button](https://premiumaddons.com/premium-image-button-element-for-elementor-page-builder/) A unique element that can be used for innovative call to action ideas.
53
 
54
 
55
  == Installation ==
@@ -99,6 +99,12 @@ Premium Addons for Elementor is light weight and we also gave you the control to
99
 
100
  == Changelog ==
101
 
 
 
 
 
 
 
102
  = 2.1.8 =
103
 
104
  - Tweak: Added Ripple effect option for navigation dots in Premium Carousel widget.
5
  Requires at least: 4.5
6
  Tested up to: 4.9.5
7
  Requires PHP: 5.4
8
+ Stable tag: 2.1.9
9
  License: GPL v3.0
10
  License URI: https://opensource.org/licenses/GPL-3.0
11
 
12
+ 20 Elementor Widgets and Addons like Grid, Modal Box, Carousel, Google Maps, Pricing Tables, Countdown, Testimonials, Blog, and much more.
13
 
14
  == Description ==
15
  20 Premium Elementor addons & widgets with numerous customization options that extends Elementor Page Builder capabilities to help you build impressive websites with no coding required. Click [Here](https://www.premiumaddons.com/) to check addon elements’ demos.
30
 
31
  ### Available Elements
32
 
33
+ 1. [Grid Elementor Widget](https://www.premiumaddons.com/premium-grid-element-for-elementor-page-builder/) Highly customizable grid widget that can be used for creating attractive looking image galleries and portfolios.
34
+ 2. [Carousel Elementor Widget](https://premiumaddons.com/premium-carousel-element-for-elementor-page-builder/) The best all purpose carousel widget for Elementor, It can be used to create testimonials carousel, client logos carousel, or any kind of content.
35
+ 3. [Banner Elementor Widget](https://premiumaddons.com/premium-banner-element-for-elementor-page-builder/) Animated and interactive banner widget with multiple styles.
36
+ 4. [Google Maps Elementor Widget](https://premiumaddons.com/premium-google-maps-element-elementor-page-builder/) Advanced Google Maps widget with multiple markers, custom styling and much more options.
37
+ 5. [Pricing Table Elementor Widget](https://premiumaddons.com/premium-pricing-table-element-elementor-page-builder/) The most customizable Elementor Pricing Table Widget with tons of customization options.
38
+ 6. [Image Separator Elementor Widget](https://premiumaddons.com/premium-image-separator-element-elementor-page-builder/) This element adds image separator between sections.
39
+ 7. [Fancy Text Elementor Widget](https://premiumaddons.com/premium-fancy-text-element-elementor-page-builder/) Animated fancy text with many animation styles.
40
+ 8. [Heading Elementor Widget](https://premiumaddons.com/premium-heading-element-elementor-page-builder/) This widget has many customizable ready made styles for headings.
41
+ 9. [Dual Header Elementor Widget](https://premiumaddons.com/premium-dual-header-element-elementor-page-builder/) Create a header with 2 styles with numerous customization options.
42
+ 10. [Testimonials Elementor Widget](https://premiumaddons.com/premium-testimonials-element-elementor-page-builder/) Modern testimonials widget with many customization options.
43
+ 11. [Persons Elementor Widget](https://premiumaddons.com/premium-persons-element-elementor-page-builder/) Very good element for listing team members.
44
+ 12. [Countdown Elementor Widget](https://premiumaddons.com/premium-countdown-element-elementor-page-builder/) Advanced countdown addon for elementor.
45
+ 13. [Blog Elementor Widget](https://premiumaddons.com/premium-blog-element-elementor-page-builder/) Blog posts widget with modern style.
46
+ 14. [Counter Elementor Widget](https://premiumaddons.com/premium-counter-element-elementor-page-builder/) Advanced counter elements with lots of options.
47
+ 15. [Video Box Elementor Widget](https://premiumaddons.com/premium-video-box-element-elementor-page-builder/) Video box element with many customization features.
48
+ 16. [Modal Box Elementor Widget](https://premiumaddons.com/premium-modal-box-element-elementor-page-builder/) All purpose Elementor modal box with many options.
49
+ 17. [Progress Bar Elementor Widget](https://premiumaddons.com/premium-progress-bar-element-elementor-page-builder/) The most advanced progress bar available for Elementor.
50
+ 19. [Button Elementor Widget](https://premiumaddons.com/premium-button-element-elementor-page-builder/) Advanced button with lots of interactive animation and styling options and onClick event option.
51
+ 19. [Contact Form 7 Elementor Widget](https://premiumaddons.com/premium-contact-form-7-element-elementor-page-builder/) Elementor contact form 7 add-on with 2 readymade styles.
52
+ 20. [Image Button Elementor Widget](https://premiumaddons.com/premium-image-button-element-for-elementor-page-builder/) A unique element that can be used for innovative call to action ideas.
53
 
54
 
55
  == Installation ==
99
 
100
  == Changelog ==
101
 
102
+ = 2.1.9 =
103
+
104
+ - Tweak: Added open links in new tab option in Premium Blog widget.
105
+ - Tweak: Enhanced files loading speed.
106
+ - Fix: Special characters bug in Premium Fancy Text Widget.
107
+
108
  = 2.1.8 =
109
 
110
  - Tweak: Added Ripple effect option for navigation dots in Premium Carousel widget.
widgets/premium-blog.php CHANGED
@@ -184,13 +184,21 @@ class Premium_Blog_Widget extends Widget_Base
184
  ]
185
  );
186
 
187
- /*Paging*/
188
  $this->add_control('premium_blog_paging',
189
  [
190
  'label' => esc_html__('Pagination', 'premium-addons-for-elementor'),
191
  'type' => Controls_Manager::SWITCHER,
192
  'description' => esc_html__('Pagination is the process of dividing the posts into discrete pages','premium-addons-for-elementor'),
193
- 'default' => 'no',
 
 
 
 
 
 
 
 
194
  ]
195
  );
196
 
@@ -683,6 +691,12 @@ class Premium_Blog_Widget extends Widget_Base
683
  // get our input from the widget settings.
684
  $settings = $this->get_settings();
685
 
 
 
 
 
 
 
686
  $image_effect = $settings['premium_blog_hover_image_effect'];
687
 
688
  $post_effect = $settings['premium_blog_hover_color_effect'];
@@ -708,10 +722,10 @@ if(count($posts)){
708
  <div class="premium-blog-post-container">
709
  <div class="premium-blog-thumb-effect-wrapper">
710
  <div class="premium-blog-thumbnail-container <?php echo 'premium-blog-' . $image_effect . '-effect';?>">
711
- <a href="<?php the_permalink(); ?>" target="_blank"><?php the_post_thumbnail('full'); ?></a>
712
  </div>
713
  <div class="premium-blog-effect-container <?php echo 'premium-blog-'. $post_effect . '-effect'; ?>">
714
- <a class="premium-blog-post-link" href="<?php the_permalink(); ?>" target="_blank"></a>
715
  <?php if( $settings['premium_blog_hover_color_effect'] === 'bordered' ) : ?>
716
  <div class="premium-blog-bordered-border-container"></div>
717
  <?php elseif( $settings['premium_blog_hover_color_effect'] === 'squares' ) : ?>
@@ -723,7 +737,7 @@ if(count($posts)){
723
  <div class="premium-blog-inner-container">
724
  <?php if( $settings['premium_blog_post_format_icon'] === 'yes' ) : ?>
725
  <div class="premium-blog-format-container">
726
- <a class="premium-blog-format-link" href="<?php the_permalink(); ?>" title="<?php if( get_post_format() === ' ') : echo 'standard' ; else : echo get_post_format(); endif; ?>" target="_blank"><i class="premium-blog-format-icon fa fa-<?php if ( get_post_format() === 'aside' ) : echo 'file-text-o'; ?>
727
  <?php elseif ( get_post_format() === 'audio' ) : echo 'music'; ?>
728
  <?php elseif ( get_post_format() === 'gallery' ) : echo 'file-image-o'; ?>
729
  <?php elseif ( get_post_format() === 'image' ) : echo 'picture-o'; ?>
@@ -735,19 +749,19 @@ if(count($posts)){
735
  </div>
736
  <?php endif; ?>
737
  <div class="premium-blog-entry-container">
738
- <h2 class="premium-blog-entry-title"><a href="<?php the_permalink(); ?>" target="_blank"><?php the_title(); ?></a></h2>
739
  <div class="premium-blog-entry-meta" style="<?php if( $settings['premium_blog_post_format_icon'] !== 'yes' ) : echo 'margin-left:0px'; endif; ?>">
740
  <?php if( $settings['premium_blog_author_meta'] === 'yes' ) : ?>
741
  <span class="premium-blog-post-author premium-blog-meta-data"><i class="fa fa-user fa-fw"></i><?php the_author_posts_link();?></span>
742
  <?php endif; ?>
743
  <?php if( $settings['premium_blog_date_meta'] === 'yes' ) : ?>
744
- <span class="premium-blog-post-time premium-blog-meta-data"><i class="fa fa-calendar fa-fw"></i><a href="<?php the_permalink(); ?>" target="_blank"><?php the_time('F j, Y'); ?></a></span>
745
  <?php endif; ?>
746
  <?php if( $settings['premium_blog_categories_meta'] === 'yes' ) : ?>
747
  <span class="premium-blog-post-categories premium-blog-meta-data"><i class="fa fa-align-left fa-fw"></i><?php the_category(', '); ?></span>
748
  <?php endif; ?>
749
  <?php if( $settings['premium_blog_comments_meta'] === 'yes' ) : ?>
750
- <span class="premium-blog-post-comments premium-blog-meta-data"><i class="fa fa-comments-o fa-fw"></i><a href="<?php the_permalink(); ?>" target="_blank"><?php comments_number('0 Comments', '1', '%'); ?> </a></span>
751
  <?php endif; ?>
752
  <?php if( $settings['premium_blog_edit_post'] === 'yes' ) : ?>
753
  <span class="premium-blog-post-edit premium-blog-meta-data"><i class="fa fa-pencil fa-fw"></i><?php edit_post_link(); ?></span>
184
  ]
185
  );
186
 
187
+ /*Pagination*/
188
  $this->add_control('premium_blog_paging',
189
  [
190
  'label' => esc_html__('Pagination', 'premium-addons-for-elementor'),
191
  'type' => Controls_Manager::SWITCHER,
192
  'description' => esc_html__('Pagination is the process of dividing the posts into discrete pages','premium-addons-for-elementor'),
193
+ ]
194
+ );
195
+
196
+ $this->add_control('premium_blog_new_tab',
197
+ [
198
+ 'label' => esc_html__('Links in New Tab', 'premium-addons-for-elementor'),
199
+ 'type' => Controls_Manager::SWITCHER,
200
+ 'description' => esc_html__('Enable links to be opened in a new tab','premium-addons-for-elementor'),
201
+ 'default' => 'yes',
202
  ]
203
  );
204
 
691
  // get our input from the widget settings.
692
  $settings = $this->get_settings();
693
 
694
+ if($settings['premium_blog_new_tab'] == 'yes'){
695
+ $target = '_blank';
696
+ } else {
697
+ $target = '_self';
698
+ }
699
+
700
  $image_effect = $settings['premium_blog_hover_image_effect'];
701
 
702
  $post_effect = $settings['premium_blog_hover_color_effect'];
722
  <div class="premium-blog-post-container">
723
  <div class="premium-blog-thumb-effect-wrapper">
724
  <div class="premium-blog-thumbnail-container <?php echo 'premium-blog-' . $image_effect . '-effect';?>">
725
+ <a href="<?php the_permalink(); ?>" target="<?php echo esc_attr($target); ?>"><?php the_post_thumbnail('full'); ?></a>
726
  </div>
727
  <div class="premium-blog-effect-container <?php echo 'premium-blog-'. $post_effect . '-effect'; ?>">
728
+ <a class="premium-blog-post-link" href="<?php the_permalink(); ?>" target="<?php echo esc_attr($target); ?>"></a>
729
  <?php if( $settings['premium_blog_hover_color_effect'] === 'bordered' ) : ?>
730
  <div class="premium-blog-bordered-border-container"></div>
731
  <?php elseif( $settings['premium_blog_hover_color_effect'] === 'squares' ) : ?>
737
  <div class="premium-blog-inner-container">
738
  <?php if( $settings['premium_blog_post_format_icon'] === 'yes' ) : ?>
739
  <div class="premium-blog-format-container">
740
+ <a class="premium-blog-format-link" href="<?php the_permalink(); ?>" title="<?php if( get_post_format() === ' ') : echo 'standard' ; else : echo get_post_format(); endif; ?>" target="<?php echo esc_attr($target); ?>"><i class="premium-blog-format-icon fa fa-<?php if ( get_post_format() === 'aside' ) : echo 'file-text-o'; ?>
741
  <?php elseif ( get_post_format() === 'audio' ) : echo 'music'; ?>
742
  <?php elseif ( get_post_format() === 'gallery' ) : echo 'file-image-o'; ?>
743
  <?php elseif ( get_post_format() === 'image' ) : echo 'picture-o'; ?>
749
  </div>
750
  <?php endif; ?>
751
  <div class="premium-blog-entry-container">
752
+ <h2 class="premium-blog-entry-title"><a href="<?php the_permalink(); ?>" target="<?php echo esc_attr($target); ?>"><?php the_title(); ?></a></h2>
753
  <div class="premium-blog-entry-meta" style="<?php if( $settings['premium_blog_post_format_icon'] !== 'yes' ) : echo 'margin-left:0px'; endif; ?>">
754
  <?php if( $settings['premium_blog_author_meta'] === 'yes' ) : ?>
755
  <span class="premium-blog-post-author premium-blog-meta-data"><i class="fa fa-user fa-fw"></i><?php the_author_posts_link();?></span>
756
  <?php endif; ?>
757
  <?php if( $settings['premium_blog_date_meta'] === 'yes' ) : ?>
758
+ <span class="premium-blog-post-time premium-blog-meta-data"><i class="fa fa-calendar fa-fw"></i><a href="<?php the_permalink(); ?>" target="<?php echo esc_attr($target); ?>"><?php the_time('F j, Y'); ?></a></span>
759
  <?php endif; ?>
760
  <?php if( $settings['premium_blog_categories_meta'] === 'yes' ) : ?>
761
  <span class="premium-blog-post-categories premium-blog-meta-data"><i class="fa fa-align-left fa-fw"></i><?php the_category(', '); ?></span>
762
  <?php endif; ?>
763
  <?php if( $settings['premium_blog_comments_meta'] === 'yes' ) : ?>
764
+ <span class="premium-blog-post-comments premium-blog-meta-data"><i class="fa fa-comments-o fa-fw"></i><a href="<?php the_permalink(); ?>" target="<?php echo esc_attr($target); ?>"><?php comments_number('0 Comments', '1', '%'); ?> </a></span>
765
  <?php endif; ?>
766
  <?php if( $settings['premium_blog_edit_post'] === 'yes' ) : ?>
767
  <span class="premium-blog-post-edit premium-blog-meta-data"><i class="fa fa-pencil fa-fw"></i><?php edit_post_link(); ?></span>
widgets/{premium-imageseparator.php → premium-image-separator.php} RENAMED
File without changes