Premium Addons for Elementor - Version 3.8.3

Version Description

  • Tweak: Added more action buttons to the plugin on Plugins page.
  • Tweak: Added posts to Existing Page link option in all widgets.
  • Fixed: Google Chrome console erros with Vertical Scroll widget.
  • Fixed: Page scroll is disabled even after Vertical Scroll slides are fully scrolled.
Download this release

Release Info

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

Code changes from version 3.8.2 to 3.8.3

admin/includes/admin-notices.php CHANGED
@@ -21,14 +21,15 @@ class Admin_Notices {
21
*/
22
public function __construct() {
23
24
- add_action('admin_init', array( $this, 'init') );
25
26
- add_action('admin_notices', array( $this, 'admin_notices' ) );
27
28
add_action( 'admin_enqueue_scripts', array( $this, 'admin_enqueue_scripts' ) );
29
30
add_action( 'wp_ajax_pa_dismiss_admin_notice', array( $this, 'dismiss_admin_notice' ) );
31
32
}
33
34
/**
@@ -147,7 +148,7 @@ class Admin_Notices {
147
148
if( ! defined('ELEMENTOR_VERSION' ) ) {
149
150
- if ( ! self::is_plugin_installed( $elementor_path ) ) {
151
152
if( self::check_user_can( 'install_plugins' ) ) {
153
@@ -243,7 +244,7 @@ class Admin_Notices {
243
244
if( ! defined('PREMIUM_BLOCKS_VERSION' ) ) {
245
246
- if ( ! self::is_plugin_installed( $pbg_path ) && self::check_user_can( 'install_plugins' ) ) {
247
248
$pbg_notice = get_option( 'pbg_notice' );
249
@@ -309,19 +310,6 @@ class Admin_Notices {
309
}
310
311
312
- /**
313
- * Checks if a plugin is installed
314
- *
315
- * @since 1.0.0
316
- * @return boolean
317
- *
318
- */
319
- public static function is_plugin_installed( $plugin_path ){
320
- require_once ABSPATH . 'wp-admin/includes/plugin.php';
321
- $plugins = get_plugins();
322
- return isset( $plugins[ $plugin_path ] );
323
- }
324
-
325
/**
326
* Checks user credentials for specific action
327
*
21
*/
22
public function __construct() {
23
24
+ add_action( 'admin_init', array( $this, 'init') );
25
26
+ add_action( 'admin_notices', array( $this, 'admin_notices' ) );
27
28
add_action( 'admin_enqueue_scripts', array( $this, 'admin_enqueue_scripts' ) );
29
30
add_action( 'wp_ajax_pa_dismiss_admin_notice', array( $this, 'dismiss_admin_notice' ) );
31
32
+
33
}
34
35
/**
148
149
if( ! defined('ELEMENTOR_VERSION' ) ) {
150
151
+ if ( ! Helper_Functions::is_plugin_installed( $elementor_path ) ) {
152
153
if( self::check_user_can( 'install_plugins' ) ) {
154
244
245
if( ! defined('PREMIUM_BLOCKS_VERSION' ) ) {
246
247
+ if ( ! Helper_Functions::is_plugin_installed( $pbg_path ) && self::check_user_can( 'install_plugins' ) ) {
248
249
$pbg_notice = get_option( 'pbg_notice' );
250
310
}
311
312
313
/**
314
* Checks user credentials for specific action
315
*
admin/includes/version-control.php CHANGED
@@ -92,7 +92,7 @@ class Version_Control {
92
<tr class="pa-roll-row">
93
<th><?php echo __('Rollback Version', 'premium-addons-for-elementor'); ?></th>
94
<td>
95
- <div><?php echo sprintf( '<a target="_blank" href="%1$s" class="button pa-btn pa-rollback-button elementor-button-spinner">%2$s</a>', wp_nonce_url( admin_url( 'admin-post.php?action=premium_addons_rollback' ), 'premium_addons_rollback' ), __('Reinstall Version 3.8.1', 'premium-addons-for-elementor') ); ?></div>
96
<p class="pa-roll-desc">
97
<span><?php echo __('Warning: Please backup your database before making the rollback.', 'premium-addons-for-elementor'); ?></span>
98
</p>
92
<tr class="pa-roll-row">
93
<th><?php echo __('Rollback Version', 'premium-addons-for-elementor'); ?></th>
94
<td>
95
+ <div><?php echo sprintf( '<a target="_blank" href="%1$s" class="button pa-btn pa-rollback-button elementor-button-spinner">%2$s</a>', wp_nonce_url( admin_url( 'admin-post.php?action=premium_addons_rollback' ), 'premium_addons_rollback' ), __('Rollback to Version 3.8.2', 'premium-addons-for-elementor') ); ?></div>
96
<p class="pa-roll-desc">
97
<span><?php echo __('Warning: Please backup your database before making the rollback.', 'premium-addons-for-elementor'); ?></span>
98
</p>
admin/settings/modules-setting.php CHANGED
@@ -26,9 +26,9 @@ class Modules_Settings {
26
27
add_action( 'wp_ajax_pa_save_admin_addons_settings', array( $this, 'pa_save_settings' ) );
28
29
- add_action('admin_enqueue_scripts',array( $this, 'localize_js_script' ) );
30
31
- add_filter( 'plugin_action_links_' . PREMIUM_ADDONS_BASENAME, array( $this, 'plugin_settings_page' ) );
32
33
}
34
@@ -37,13 +37,26 @@ class Modules_Settings {
37
* @since 1.0.0
38
* @return void
39
*/
40
- public function plugin_settings_page( $links ) {
41
42
$settings_link = sprintf( '<a href="%1$s">%2$s</a>', admin_url( 'admin.php?page=' . $this->page_slug ), __( 'Settings', 'premium-addons-for-elementor' ) );
43
44
- array_unshift( $links, $settings_link );
45
-
46
- return $links;
47
}
48
49
public function localize_js_script(){
@@ -171,7 +184,7 @@ class Modules_Settings {
171
<h1 class="pa-title-main"><?php echo Helper_Functions::name(); ?></h1>
172
<h3 class="pa-title-sub"><?php echo sprintf(__('Thank you for using %s. This plugin has been developed by %s and we hope you enjoy using it.','premium-addons-for-elementor'), Helper_Functions::name(), Helper_Functions::author() ); ?></h3>
173
</div>
174
- <?php if( ! Helper_Functions::is_show_logo()) : ?>
175
<div class="pa-title-right">
176
<img class="pa-logo" src="<?php echo PREMIUM_ADDONS_URL . 'admin/images/premium-addons-logo.png';?>">
177
</div>
@@ -394,7 +407,7 @@ class Modules_Settings {
394
395
</tr>
396
397
- <?php if( ! defined('PREMIUM_PRO_ADDONS_VERSION') ) : ?>
398
<tr class="pa-sec-elems-tr"><th><h1>PRO Elements</h1></th></tr>
399
400
<tr>
26
27
add_action( 'wp_ajax_pa_save_admin_addons_settings', array( $this, 'pa_save_settings' ) );
28
29
+ add_action( 'admin_enqueue_scripts',array( $this, 'localize_js_script' ) );
30
31
+ add_filter( 'plugin_action_links_' . PREMIUM_ADDONS_BASENAME, array( $this, 'insert_action_links' ) );
32
33
}
34
37
* @since 1.0.0
38
* @return void
39
*/
40
+ public function insert_action_links( $links ) {
41
42
+ $papro_path = 'premium-addons-pro/premium-addons-pro-for-elementor.php';
43
+
44
+ $is_papro_installed = Helper_Functions::is_plugin_installed( $papro_path );
45
+
46
$settings_link = sprintf( '<a href="%1$s">%2$s</a>', admin_url( 'admin.php?page=' . $this->page_slug ), __( 'Settings', 'premium-addons-for-elementor' ) );
47
+
48
+ $rollback_link = sprintf( '<a href="%1$s">%2$s</a>', wp_nonce_url( admin_url( 'admin-post.php?action=premium_addons_rollback' ), 'premium_addons_rollback' ), __( 'Rollback to Version ' . PREMIUM_ADDONS_STABLE_VERSION, 'premium-addons-for-elementor' ) );
49
+
50
+ $new_links = array( $settings_link, $rollback_link );
51
+
52
+ if( ! $is_papro_installed ) {
53
+ $pro_link = sprintf( '<a href="https://premiumaddons.com/pro/" target="_blank" style="color: #39b54a; font-weight: bold;">%s</a>', __( 'Go Pro', 'premium-addons-for-elementor' ) );
54
+ array_push ( $new_links, $pro_link );
55
+ }
56
+
57
+ $new_links = array_merge( $links, $new_links );
58
59
+ return $new_links;
60
}
61
62
public function localize_js_script(){
184
<h1 class="pa-title-main"><?php echo Helper_Functions::name(); ?></h1>
185
<h3 class="pa-title-sub"><?php echo sprintf(__('Thank you for using %s. This plugin has been developed by %s and we hope you enjoy using it.','premium-addons-for-elementor'), Helper_Functions::name(), Helper_Functions::author() ); ?></h3>
186
</div>
187
+ <?php if( ! Helper_Functions::is_show_logo() ) : ?>
188
<div class="pa-title-right">
189
<img class="pa-logo" src="<?php echo PREMIUM_ADDONS_URL . 'admin/images/premium-addons-logo.png';?>">
190
</div>
407
408
</tr>
409
410
+ <?php if( ! defined( 'PREMIUM_PRO_ADDONS_VERSION' ) ) : ?>
411
<tr class="pa-sec-elems-tr"><th><h1>PRO Elements</h1></th></tr>
412
413
<tr>
assets/frontend/js/premium-vscroll.js CHANGED
@@ -23,7 +23,7 @@
23
$menuItems = $(".premium-vscroll-nav-item", $instance),
24
defaultSettings = {
25
speed: 700,
26
- offset: 1,
27
fullSection: true
28
},
29
settings = $.extend({}, defaultSettings, settings),
@@ -180,13 +180,13 @@
180
if ( checkTemps ) {
181
182
document.addEventListener
183
- ? vSection.addEventListener( "wheel", self.onWheel, !1 )
184
: vSection.attachEvent( "onmousewheel", self.onWheel );
185
186
} else {
187
188
document.addEventListener
189
- ? document.addEventListener( "wheel", self.onWheel, !1 )
190
: document.attachEvent( "onmousewheel", self.onWheel );
191
192
}
@@ -347,7 +347,7 @@
347
}
348
349
if ( sectionId && sections.hasOwnProperty( sectionId ) ) {
350
-
351
prevSectionId = self.checkPrevSection( sections, sectionId );
352
nextSectionId = self.checkNextSection( sections, sectionId );
353
@@ -407,6 +407,8 @@
407
}
408
}
409
410
}
411
412
};
@@ -706,7 +708,7 @@
706
).removeClass("premium-vscroll-dots-hide");
707
}
708
}
709
-
710
if ( beforeCheck() ) {
711
sectionId = getFirstSection(sections);
712
}
@@ -715,7 +717,7 @@
715
sectionId = getLastSection(sections);
716
}
717
718
- if ( sectionId && sections.hasOwnProperty( sectionId )) {
719
720
prevSectionId = self.checkPrevSection(sections, sectionId);
721
nextSectionId = self.checkNextSection(sections, sectionId);
@@ -750,7 +752,7 @@
750
inScope = false;
751
var $lastselector = checkTemps
752
? $instance
753
- : $("#" + sectionId);
754
if ("down" === direction) {
755
if (
756
$lastselector.offset().top +
@@ -774,6 +776,8 @@
774
}
775
}
776
}
777
}
778
};
779
23
$menuItems = $(".premium-vscroll-nav-item", $instance),
24
defaultSettings = {
25
speed: 700,
26
+ offset: 0,
27
fullSection: true
28
},
29
settings = $.extend({}, defaultSettings, settings),
180
if ( checkTemps ) {
181
182
document.addEventListener
183
+ ? vSection.addEventListener( "wheel", self.onWheel, { passive: false } )
184
: vSection.attachEvent( "onmousewheel", self.onWheel );
185
186
} else {
187
188
document.addEventListener
189
+ ? document.addEventListener( "wheel", self.onWheel, { passive: false } )
190
: document.attachEvent( "onmousewheel", self.onWheel );
191
192
}
347
}
348
349
if ( sectionId && sections.hasOwnProperty( sectionId ) ) {
350
+
351
prevSectionId = self.checkPrevSection( sections, sectionId );
352
nextSectionId = self.checkNextSection( sections, sectionId );
353
407
}
408
}
409
410
+ } else {
411
+ inScope = false;
412
}
413
414
};
708
).removeClass("premium-vscroll-dots-hide");
709
}
710
}
711
+
712
if ( beforeCheck() ) {
713
sectionId = getFirstSection(sections);
714
}
717
sectionId = getLastSection(sections);
718
}
719
720
+ if ( sectionId && sections.hasOwnProperty( sectionId ) ) {
721
722
prevSectionId = self.checkPrevSection(sections, sectionId);
723
nextSectionId = self.checkNextSection(sections, sectionId);
752
inScope = false;
753
var $lastselector = checkTemps
754
? $instance
755
+ : $( "#" + sectionId );
756
if ("down" === direction) {
757
if (
758
$lastselector.offset().top +
776
}
777
}
778
}
779
+ } else {
780
+ inScope = false;
781
}
782
};
783
includes/class-helper-functions.php CHANGED
@@ -173,6 +173,22 @@ class Helper_Functions {
173
174
}
175
176
/**
177
* Get Installed Theme
178
*
173
174
}
175
176
+ /**
177
+ * Checks if a plugin is installed
178
+ *
179
+ * @since 1.0.0
180
+ * @return boolean
181
+ *
182
+ */
183
+ public static function is_plugin_installed( $plugin_path ) {
184
+
185
+ require_once ABSPATH . 'wp-admin/includes/plugin.php';
186
+
187
+ $plugins = get_plugins();
188
+
189
+ return isset( $plugins[ $plugin_path ] );
190
+ }
191
+
192
/**
193
* Get Installed Theme
194
*
includes/elementor-helper.php CHANGED
@@ -47,18 +47,9 @@ class premium_Template_Tags {
47
48
public function get_all_post() {
49
50
- $post_types = get_post_types();
51
- $post_type_not__in = array('attachment', 'revision', 'nav_menu_item', 'custom_css', 'customize_changeset', 'elementor_library', 'post');
52
-
53
- foreach ( $post_type_not__in as $post_type_not ) {
54
- unset( $post_types[$post_type_not] );
55
- }
56
- $post_type = array_values( $post_types );
57
-
58
-
59
$all_posts = get_posts( array(
60
'posts_per_page' => -1,
61
- 'post_type' => 'page',
62
)
63
);
64
if( !empty( $all_posts ) && !is_wp_error( $all_posts ) ) {
47
48
public function get_all_post() {
49
50
$all_posts = get_posts( array(
51
'posts_per_page' => -1,
52
+ 'post_type' => array ( 'page', 'post' ),
53
)
54
);
55
if( !empty( $all_posts ) && !is_wp_error( $all_posts ) ) {
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.8.2
7
Author: Leap13
8
Author URI: https://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.8.2');
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.8.1');
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.8.3
7
Author: Leap13
8
Author URI: https://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.8.3');
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.8.2');
23
24
if( ! class_exists('Premium_Addons_Elementor') ) {
25
readme.txt CHANGED
@@ -1,11 +1,11 @@
1
- === Premium Addons for Elementor ===
2
Contributors: Leap13, Rimoun
3
Tags: Elementor, Elementor Page Builder, Elements, Elementor Addons, Add-ons, Page Builder, Widgets, Elementor Widgets
4
Donate Link: https://premiumaddons.com/?utm_source=wp-repo&utm_medium=link&utm_campaign=readme
5
Requires at Least: 4.5
6
Tested Up To: 5.2.4
7
Requires PHP: 5.4
8
- Stable Tag: 3.8.2
9
License: GPL v3.0
10
License URI: https://opensource.org/licenses/GPL-3.0
11
@@ -175,6 +175,13 @@ Premium Addons for Elementor is 100% Ads Free, Ads can only be detected from You
175
176
== Changelog ==
177
178
= 3.8.2 =
179
180
- Fixed: SVG icons size option not working in all widgets.
1
+ === Premium Addons for Elementor ===
2
Contributors: Leap13, Rimoun
3
Tags: Elementor, Elementor Page Builder, Elements, Elementor Addons, Add-ons, Page Builder, Widgets, Elementor Widgets
4
Donate Link: https://premiumaddons.com/?utm_source=wp-repo&utm_medium=link&utm_campaign=readme
5
Requires at Least: 4.5
6
Tested Up To: 5.2.4
7
Requires PHP: 5.4
8
+ Stable Tag: 3.8.3
9
License: GPL v3.0
10
License URI: https://opensource.org/licenses/GPL-3.0
11
175
176
== Changelog ==
177
178
+ = 3.8.3 =
179
+
180
+ - Tweak: Added more action buttons to the plugin on Plugins page.
181
+ - Tweak: Added posts to `Existing Page` link option in all widgets.
182
+ - Fixed: Google Chrome console erros with Vertical Scroll widget.
183
+ - Fixed: Page scroll is disabled even after Vertical Scroll slides are fully scrolled.
184
+
185
= 3.8.2 =
186
187
- Fixed: SVG icons size option not working in all widgets.
widgets/premium-grid.php CHANGED
@@ -554,7 +554,7 @@ class Premium_Grid extends Widget_Base {
554
'label_block' => true,
555
'condition' => [
556
'premium_gallery_img_link_type' => 'url',
557
- 'premium_gallery_video!' => 'true',
558
]
559
]);
560
@@ -570,7 +570,8 @@ class Premium_Grid extends Widget_Base {
570
'separator' => 'after',
571
'label_block' => true,
572
'condition' => [
573
- 'premium_gallery_video!' => 'true',
574
]
575
]);
576
@@ -2419,7 +2420,7 @@ class Premium_Grid extends Widget_Base {
2419
'rel' => $no_follow
2420
]);
2421
2422
- } elseif( 'link' === $item['premium_gallery_img_link_type'] && ! empty( $item['premium_gallery_img_existing']['url'] ) ) {
2423
2424
$icon_link = get_permalink( $item['premium_gallery_img_existing'] );
2425
554
'label_block' => true,
555
'condition' => [
556
'premium_gallery_img_link_type' => 'url',
557
+ 'premium_gallery_video!' => 'true',
558
]
559
]);
560
570
'separator' => 'after',
571
'label_block' => true,
572
'condition' => [
573
+ 'premium_gallery_img_link_type' => 'link',
574
+ 'premium_gallery_video!' => 'true',
575
]
576
]);
577
2420
'rel' => $no_follow
2421
]);
2422
2423
+ } elseif( 'link' === $item['premium_gallery_img_link_type'] && ! empty( $item['premium_gallery_img_existing'] ) ) {
2424
2425
$icon_link = get_permalink( $item['premium_gallery_img_existing'] );
2426
widgets/premium-vscroll.php CHANGED
@@ -78,8 +78,8 @@ class Premium_Vscroll extends Widget_Base {
78
'label' => __('Content Type', 'premium-addons-for-elementor'),
79
'type' => Controls_Manager::SELECT,
80
'options' => [
81
- 'ids' => __('Section ID', 'premium-addons-for-elementor'),
82
- 'templates' => __('Elementor Templates', 'premium-addons-for-elementor')
83
],
84
'default' => 'templates',
85
'description' => __('Choose which method you prefer to insert sections.', 'premium-addons-for-elementor')
78
'label' => __('Content Type', 'premium-addons-for-elementor'),
79
'type' => Controls_Manager::SELECT,
80
'options' => [
81
+ 'templates' => __('Elementor Templates', 'premium-addons-for-elementor'),
82
+ 'ids' => __('Section ID', 'premium-addons-for-elementor')
83
],
84
'default' => 'templates',
85
'description' => __('Choose which method you prefer to insert sections.', 'premium-addons-for-elementor')