Premium Addons for Elementor - Version 3.1.8

Version Description

  • Tweak: Added Tablet/Mobile Breakpoint options in Carousel widget.
  • Fixed: Overlay Gallery Images option not working with multiple Grid widgets.
  • Fixed: Duplicated Grid widget images in lightbox when Whole Image Lightbox option is enabled.
Download this release

Release Info

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

Code changes from version 3.1.7 to 3.1.8

admin/settings/version-control.php CHANGED
@@ -79,7 +79,7 @@ class PA_Version_Control {
79
  <tr class="pa-roll-row">
80
  <th>Rollback Version</th>
81
  <td>
82
- <div><?php echo sprintf( '<a target="_blank" href="%s" class="button pa-btn pa-rollback-button elementor-button-spinner">Reinstall Version 3.1.6</a>', wp_nonce_url( admin_url( 'admin-post.php?action=premium_addons_rollback' ), 'premium_addons_rollback' ) ); ?> </div>
83
  <p class="pa-roll-desc"><span>Warning: Please backup your database before making the rollback.</span></p>
84
  </td>
85
  </tr>
79
  <tr class="pa-roll-row">
80
  <th>Rollback Version</th>
81
  <td>
82
+ <div><?php echo sprintf( '<a target="_blank" href="%s" class="button pa-btn pa-rollback-button elementor-button-spinner">Reinstall Version 3.1.7</a>', wp_nonce_url( admin_url( 'admin-post.php?action=premium_addons_rollback' ), 'premium_addons_rollback' ) ); ?> </div>
83
  <p class="pa-roll-desc"><span>Warning: Please backup your database before making the rollback.</span></p>
84
  </td>
85
  </tr>
assets/js/premium-addons.js CHANGED
@@ -147,10 +147,8 @@
147
  });
148
  }
149
  }
150
-
151
-
152
-
153
- $scope.find(".premium-gallery-cats-container li a").click(function(e) {
154
  e.preventDefault();
155
  $scope
156
  .find(".premium-gallery-cats-container li .active")
@@ -161,7 +159,7 @@
161
  return false;
162
  });
163
 
164
- $(".premium-img-gallery a[data-rel^='prettyPhoto']").prettyPhoto({
165
  theme: "pp_default",
166
  hook: "data-rel",
167
  opacity: 0.7,
@@ -302,13 +300,13 @@
302
  slidesToShow = slick.options.slidesToShow;
303
 
304
  windowWidth = jQuery(window).width();
305
- if (windowWidth < 1025) {
306
  slidesToShow = carouselSettings["slidesDesk"];
307
  }
308
- if (windowWidth < 769) {
309
  slidesToShow = carouselSettings["slidesTab"];
310
  }
311
- if (windowWidth < 481) {
312
  slidesToShow = carouselSettings["slidesMob"];
313
  }
314
  return slidesToShow;
@@ -331,21 +329,14 @@
331
  slidesToShow: carouselSettings["slidesToShow"],
332
  responsive: [
333
  {
334
- breakpoint: 1025,
335
- settings: {
336
- slidesToShow: carouselSettings["slidesDesk"],
337
- slidesToScroll: carouselSettings["slidesToScroll"]
338
- }
339
- },
340
- {
341
- breakpoint: 769,
342
  settings: {
343
  slidesToShow: carouselSettings["slidesTab"],
344
  slidesToScroll: carouselSettings["slidesTab"]
345
  }
346
  },
347
  {
348
- breakpoint: 481,
349
  settings: {
350
  slidesToShow: carouselSettings["slidesMob"],
351
  slidesToScroll: carouselSettings["slidesMob"]
147
  });
148
  }
149
  }
150
+
151
+ $scope.find(".premium-gallery-cats-container li a").click(function(e) {
 
 
152
  e.preventDefault();
153
  $scope
154
  .find(".premium-gallery-cats-container li .active")
159
  return false;
160
  });
161
 
162
+ $scope.find(".premium-img-gallery a[data-rel^='prettyPhoto']").prettyPhoto({
163
  theme: "pp_default",
164
  hook: "data-rel",
165
  opacity: 0.7,
300
  slidesToShow = slick.options.slidesToShow;
301
 
302
  windowWidth = jQuery(window).width();
303
+ if ( windowWidth > carouselSettings["tabletBreak"] ) {
304
  slidesToShow = carouselSettings["slidesDesk"];
305
  }
306
+ if ( windowWidth <= carouselSettings["tabletBreak"] ) {
307
  slidesToShow = carouselSettings["slidesTab"];
308
  }
309
+ if ( windowWidth <= carouselSettings["mobileBreak"] ) {
310
  slidesToShow = carouselSettings["slidesMob"];
311
  }
312
  return slidesToShow;
329
  slidesToShow: carouselSettings["slidesToShow"],
330
  responsive: [
331
  {
332
+ breakpoint: carouselSettings["tabletBreak"],
 
 
 
 
 
 
 
333
  settings: {
334
  slidesToShow: carouselSettings["slidesTab"],
335
  slidesToScroll: carouselSettings["slidesTab"]
336
  }
337
  },
338
  {
339
+ breakpoint: carouselSettings["mobileBreak"],
340
  settings: {
341
  slidesToShow: carouselSettings["slidesMob"],
342
  slidesToScroll: carouselSettings["slidesMob"]
includes/class-addons-integration.php CHANGED
@@ -19,7 +19,7 @@ class Premium_Addons_Integration {
19
 
20
  add_action( 'elementor/widgets/widgets_registered', array( $this, 'premium_widgets_area' ) );
21
 
22
- add_action('elementor/editor/before_enqueue_scripts', array( $this,'premium_maps_get_address') );
23
 
24
  add_action( 'elementor/preview/enqueue_styles', array( $this, 'premium_enqueue_preview_styles' ) );
25
 
@@ -230,7 +230,7 @@ class Premium_Addons_Integration {
230
 
231
  }
232
 
233
- public function premium_maps_get_address() {
234
 
235
  $premium_maps_api = PA_Gomaps::get_enabled_keys()['premium-map-api'];
236
 
19
 
20
  add_action( 'elementor/widgets/widgets_registered', array( $this, 'premium_widgets_area' ) );
21
 
22
+ add_action('elementor/editor/before_enqueue_scripts', array( $this,'enqueue_editor_scripts') );
23
 
24
  add_action( 'elementor/preview/enqueue_styles', array( $this, 'premium_enqueue_preview_styles' ) );
25
 
230
 
231
  }
232
 
233
+ public function enqueue_editor_scripts() {
234
 
235
  $premium_maps_api = PA_Gomaps::get_enabled_keys()['premium-map-api'];
236
 
premium-addons-for-elementor.php CHANGED
@@ -3,7 +3,7 @@
3
  Plugin Name: Premium Addons for Elementor
4
  Description: Premium Addons Plugin Includes 22+ premium widgets for Elementor Page Builder.
5
  Plugin URI: https://premiumaddons.com
6
- Version: 3.1.7
7
  Author: Leap13
8
  Author URI: http://leap13.com/
9
  Text Domain: premium-addons-for-elementor
@@ -14,12 +14,12 @@ License: GNU General Public License v3.0
14
  if ( ! defined('ABSPATH') ) exit; // No access of directly access
15
 
16
  // Define Constants
17
- define('PREMIUM_ADDONS_VERSION', '3.1.7');
18
  define('PREMIUM_ADDONS_URL', plugins_url('/', __FILE__));
19
  define('PREMIUM_ADDONS_PATH', plugin_dir_path(__FILE__));
20
  define('PREMIUM_ADDONS_FILE', __FILE__);
21
  define('PREMIUM_ADDONS_BASENAME', plugin_basename(PREMIUM_ADDONS_FILE));
22
- define('PREMIUM_ADDONS_STABLE_VERSION', '3.1.6');
23
 
24
  if( ! class_exists('Premium_Addons_Elementor') ) {
25
  /*
3
  Plugin Name: Premium Addons for Elementor
4
  Description: Premium Addons Plugin Includes 22+ premium widgets for Elementor Page Builder.
5
  Plugin URI: https://premiumaddons.com
6
+ Version: 3.1.8
7
  Author: Leap13
8
  Author URI: http://leap13.com/
9
  Text Domain: premium-addons-for-elementor
14
  if ( ! defined('ABSPATH') ) exit; // No access of directly access
15
 
16
  // Define Constants
17
+ define('PREMIUM_ADDONS_VERSION', '3.1.8');
18
  define('PREMIUM_ADDONS_URL', plugins_url('/', __FILE__));
19
  define('PREMIUM_ADDONS_PATH', plugin_dir_path(__FILE__));
20
  define('PREMIUM_ADDONS_FILE', __FILE__);
21
  define('PREMIUM_ADDONS_BASENAME', plugin_basename(PREMIUM_ADDONS_FILE));
22
+ define('PREMIUM_ADDONS_STABLE_VERSION', '3.1.7');
23
 
24
  if( ! class_exists('Premium_Addons_Elementor') ) {
25
  /*
readme.txt CHANGED
@@ -3,9 +3,9 @@ Contributors: leap13
3
  Tags: Elementor, Elementor Page Builder, Elements, Elementor Addons, Add-ons, page builder, widgets, Elementor widgets
4
  Donate link: http://premiumaddons.com
5
  Requires at least: 4.5
6
- Tested up to: 5.1
7
  Requires PHP: 5.4
8
- Stable tag: 3.1.7
9
  License: GPL v3.0
10
  License URI: https://opensource.org/licenses/GPL-3.0
11
 
@@ -139,6 +139,12 @@ Premium Addons for Elementor is 100% Ads Free, Ads can only be detected from You
139
 
140
  == Changelog ==
141
 
 
 
 
 
 
 
142
  = 3.1.7 =
143
 
144
  - Tweak: Added `Load More` button option in Grid widget.
3
  Tags: Elementor, Elementor Page Builder, Elements, Elementor Addons, Add-ons, page builder, widgets, Elementor widgets
4
  Donate link: http://premiumaddons.com
5
  Requires at least: 4.5
6
+ Tested up to: 5.1.1
7
  Requires PHP: 5.4
8
+ Stable tag: 3.1.8
9
  License: GPL v3.0
10
  License URI: https://opensource.org/licenses/GPL-3.0
11
 
139
 
140
  == Changelog ==
141
 
142
+ = 3.1.8 =
143
+
144
+ - Tweak: Added `Tablet/Mobile Breakpoint` options in Carousel widget.
145
+ - Fixed: `Overlay Gallery Images` option not working with multiple Grid widgets.
146
+ - Fixed: Duplicated Grid widget images in lightbox when `Whole Image Lightbox` option is enabled.
147
+
148
  = 3.1.7 =
149
 
150
  - Tweak: Added `Load More` button option in Grid widget.
widgets/premium-carousel.php CHANGED
@@ -371,6 +371,24 @@ class Premium_Carousel extends Widget_Base {
371
  ]
372
  );
373
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
374
  $this->end_controls_section();
375
 
376
  $this->start_controls_section('premium_carousel_navigation_arrows',
@@ -770,7 +788,7 @@ class Premium_Carousel extends Widget_Base {
770
 
771
  $slides_on_desk = $settings['premium_carousel_responsive_desktop'];
772
  if( $settings['premium_carousel_slides_to_show'] == 'all' ) {
773
- $slidesToScroll = !empty($slides_on_desk) ? $slides_on_desk : 1;
774
  } else {
775
  $slidesToScroll = 1;
776
  }
@@ -788,8 +806,6 @@ class Premium_Carousel extends Widget_Base {
788
  $slides_on_mob = $slides_on_desk;
789
  }
790
 
791
- $responsive = '[{breakpoint: 1025,settings: {slidesToShow: ' . $slides_on_desk . ',slidesToScroll: ' . $slidesToScroll . '}},{breakpoint: 769,settings: {slidesToShow: ' . $slides_on_tabs . ',slidesToScroll: ' . $slides_on_tabs . '}},{breakpoint: 481,settings: {slidesToShow: ' . $slides_on_mob . ',slidesToScroll: ' . $slides_on_mob . '}}]';
792
-
793
  $infinite = $settings['premium_carousel_loop'] == 'yes' ? true : false;
794
 
795
  $fade = $settings['premium_carousel_fade'] == 'yes' ? true : false;
@@ -955,11 +971,14 @@ class Premium_Carousel extends Widget_Base {
955
 
956
  $dot_anim = $settings['premium_carousel_navigation_effect'] == 'yes' ? 'hvr-ripple-out' : '';
957
 
 
 
 
 
958
  $carousel_settings = [
959
  'vertical' => $vertical,
960
  'slidesToScroll'=> $slidesToScroll,
961
  'slidesToShow' => $slidesToShow,
962
- 'responsive' => $responsive,
963
  'infinite' => $infinite,
964
  'speed' => $speed,
965
  'fade' => $fade,
@@ -980,7 +999,9 @@ class Premium_Carousel extends Widget_Base {
980
  'slidesDesk' => $slides_on_desk,
981
  'slidesTab' => $slides_on_tabs,
982
  'slidesMob' => $slides_on_mob,
983
- 'animation' => $animation
 
 
984
  ];
985
 
986
  $premium_elements_page_id = array();
371
  ]
372
  );
373
 
374
+ $this->add_control('premium_carousel_tablet_breakpoint',
375
+ [
376
+ 'label' => __( 'Tablet Breakpoint', 'premium-addons-for-elementor' ),
377
+ 'description' => __('Sets the breakpoint between desktop and tablet devices. Below this breakpoint tablet layout will appear (Default: 1025px).', 'premium-addons-for-elementor'),
378
+ 'type' => Controls_Manager::NUMBER,
379
+ 'default' => 1025
380
+ ]
381
+ );
382
+
383
+ $this->add_control('premium_carousel_mobile_breakpoint',
384
+ [
385
+ 'label' => __( 'Mobile Breakpoint', 'premium-addons-for-elementor' ),
386
+ 'description' => __('Sets the breakpoint between tablet and mobile devices. Below this breakpoint mobile layout will appear (Default: 768px).', 'premium-addons-for-elementor'),
387
+ 'type' => Controls_Manager::NUMBER,
388
+ 'default' => 768
389
+ ]
390
+ );
391
+
392
  $this->end_controls_section();
393
 
394
  $this->start_controls_section('premium_carousel_navigation_arrows',
788
 
789
  $slides_on_desk = $settings['premium_carousel_responsive_desktop'];
790
  if( $settings['premium_carousel_slides_to_show'] == 'all' ) {
791
+ $slidesToScroll = ! empty( $slides_on_desk ) ? $slides_on_desk : 1;
792
  } else {
793
  $slidesToScroll = 1;
794
  }
806
  $slides_on_mob = $slides_on_desk;
807
  }
808
 
 
 
809
  $infinite = $settings['premium_carousel_loop'] == 'yes' ? true : false;
810
 
811
  $fade = $settings['premium_carousel_fade'] == 'yes' ? true : false;
971
 
972
  $dot_anim = $settings['premium_carousel_navigation_effect'] == 'yes' ? 'hvr-ripple-out' : '';
973
 
974
+ $tablet_breakpoint = ! empty ( $settings['premium_carousel_tablet_breakpoint'] ) ? $settings['premium_carousel_tablet_breakpoint'] : 1025;
975
+
976
+ $mobile_breakpoint = ! empty ( $settings['premium_carousel_mobile_breakpoint'] ) ? $settings['premium_carousel_mobile_breakpoint'] : 768;
977
+
978
  $carousel_settings = [
979
  'vertical' => $vertical,
980
  'slidesToScroll'=> $slidesToScroll,
981
  'slidesToShow' => $slidesToShow,
 
982
  'infinite' => $infinite,
983
  'speed' => $speed,
984
  'fade' => $fade,
999
  'slidesDesk' => $slides_on_desk,
1000
  'slidesTab' => $slides_on_tabs,
1001
  'slidesMob' => $slides_on_mob,
1002
+ 'animation' => $animation,
1003
+ 'tabletBreak' => $tablet_breakpoint,
1004
+ 'mobileBreak' => $mobile_breakpoint
1005
  ];
1006
 
1007
  $premium_elements_page_id = array();
widgets/premium-grid.php CHANGED
@@ -28,7 +28,7 @@ class Premium_Grid extends Widget_Base {
28
  ];
29
  }
30
 
31
- public function get_script_depends(){
32
  return [
33
  'prettyPhoto-js',
34
  'isotope-js',
@@ -1564,9 +1564,7 @@ class Premium_Grid extends Widget_Base {
1564
  $icon_link = get_permalink($image['premium_gallery_img_existing']);
1565
  ?>
1566
  <a href="<?php echo esc_attr( $icon_link ); ?>" class="pa-gallery-img-link"><span><i class="fa fa-link"></i></span></a>
1567
- <?php elseif( $image['premium_gallery_lightbox_whole'] == 'yes' && $settings['premium_gallery_light_box'] == 'yes' ) : ?>
1568
- <a href="<?php echo esc_attr( $image['premium_gallery_img']['url'] ); ?>" class="pa-gallery-whole-link" data-rel="prettyPhoto[premium-grid-<?php echo esc_attr($this->get_id()); ?>]"></a>
1569
- <?php endif; ?>
1570
  </div>
1571
  </div>
1572
  <div class="premium-gallery-caption">
28
  ];
29
  }
30
 
31
+ public function get_script_depends() {
32
  return [
33
  'prettyPhoto-js',
34
  'isotope-js',
1564
  $icon_link = get_permalink($image['premium_gallery_img_existing']);
1565
  ?>
1566
  <a href="<?php echo esc_attr( $icon_link ); ?>" class="pa-gallery-img-link"><span><i class="fa fa-link"></i></span></a>
1567
+ <?php endif; ?>
 
 
1568
  </div>
1569
  </div>
1570
  <div class="premium-gallery-caption">