Version Description
- Fixed: Fatal error Call to undefined function get_plugins()
- Fixed: View Details for other plugins in plugins page
Download this release
Release Info
Developer | re_enter_rupok |
Plugin | Elementor Essential Addons |
Version | 2.9.3 |
Comparing to | |
See all releases |
Code changes from version 2.9.2 to 2.9.3
- admin/assets/css/admin.css +0 -0
- assets/css/essential-addons-elementor.css +3 -0
- assets/sass/_particles.scss +2 -2
- essential_adons_elementor.php +6 -3
- extensions/eael-particle-section/eael-particle-section.php +0 -0
- extensions/eael-particle-section/particle-themes.php +0 -0
- includes/class-plugin-usage-tracker.php +1 -1
- includes/class-wpdev-core-install.php +0 -0
- includes/class-wpdev-notices.php +21 -29
- includes/eael-rollback.php +1 -0
- includes/extensions.php +0 -0
- readme.txt +6 -1
admin/assets/css/admin.css
CHANGED
File without changes
|
assets/css/essential-addons-elementor.css
CHANGED
@@ -7444,3 +7444,6 @@ a.eael-gallery-load-more, a.eael-gallery-load-more:hover {
|
|
7444 |
transform: none;
|
7445 |
}
|
7446 |
}
|
|
|
|
|
|
7444 |
transform: none;
|
7445 |
}
|
7446 |
}
|
7447 |
+
.elementor-section.eael-particles-section .elementor-container {
|
7448 |
+
z-index: 99;
|
7449 |
+
}
|
assets/sass/_particles.scss
CHANGED
@@ -1,3 +1,3 @@
|
|
1 |
-
.elementor-section .elementor-container {
|
2 |
z-index: 99;
|
3 |
-
}
|
1 |
+
.elementor-section.eael-particles-section .elementor-container {
|
2 |
z-index: 99;
|
3 |
+
}
|
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.
|
8 |
* Author URI: https://wpdeveloper.net/
|
9 |
*
|
10 |
* Text Domain: essential-addons-elementor
|
@@ -16,8 +16,8 @@ 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.
|
20 |
-
define( 'ESSENTIAL_ADDONS_STABLE_VERSION', '2.9.
|
21 |
define( 'ESSENTIAL_ADDONS_BASENAME', plugin_basename( __FILE__ ) );
|
22 |
|
23 |
|
@@ -336,6 +336,9 @@ function eael_init() {
|
|
336 |
if( ! function_exists( 'eael_is_elementor_active' ) ) :
|
337 |
function eael_is_elementor_active() {
|
338 |
$file_path = 'elementor/elementor.php';
|
|
|
|
|
|
|
339 |
$installed_plugins = get_plugins();
|
340 |
return isset( $installed_plugins[$file_path] );
|
341 |
}
|
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.3
|
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.3' );
|
20 |
+
define( 'ESSENTIAL_ADDONS_STABLE_VERSION', '2.9.3' );
|
21 |
define( 'ESSENTIAL_ADDONS_BASENAME', plugin_basename( __FILE__ ) );
|
22 |
|
23 |
|
336 |
if( ! function_exists( 'eael_is_elementor_active' ) ) :
|
337 |
function eael_is_elementor_active() {
|
338 |
$file_path = 'elementor/elementor.php';
|
339 |
+
if ( ! function_exists( 'get_plugins' ) ) {
|
340 |
+
include ABSPATH . '/wp-admin/includes/plugin.php';
|
341 |
+
}
|
342 |
$installed_plugins = get_plugins();
|
343 |
return isset( $installed_plugins[$file_path] );
|
344 |
}
|
extensions/eael-particle-section/eael-particle-section.php
CHANGED
File without changes
|
extensions/eael-particle-section/particle-themes.php
CHANGED
File without changes
|
includes/class-plugin-usage-tracker.php
CHANGED
@@ -85,7 +85,7 @@ if( ! class_exists( 'Eael_Plugin_Usage_Tracker') ) {
|
|
85 |
// add_action( 'admin_init', array( $this, 'do_tracking' ) );
|
86 |
|
87 |
// Display the admin notice on activation
|
88 |
-
add_action( '
|
89 |
add_action( 'admin_notices', array( $this, 'marketing_notice' ) );
|
90 |
|
91 |
// Deactivation
|
85 |
// add_action( 'admin_init', array( $this, 'do_tracking' ) );
|
86 |
|
87 |
// Display the admin notice on activation
|
88 |
+
add_action( 'wpdeveloper_optin_notice', array( $this, 'optin_notice' ) );
|
89 |
add_action( 'admin_notices', array( $this, 'marketing_notice' ) );
|
90 |
|
91 |
// Deactivation
|
includes/class-wpdev-core-install.php
CHANGED
File without changes
|
includes/class-wpdev-notices.php
CHANGED
@@ -107,7 +107,7 @@ class WPDeveloper_Notice {
|
|
107 |
*/
|
108 |
public function init(){
|
109 |
add_action( 'init', array( $this, 'first_install_track') );
|
110 |
-
add_action( 'deactivate_' . $this->
|
111 |
add_action( 'init', array( $this, 'hooks' ) );
|
112 |
}
|
113 |
/**
|
@@ -123,13 +123,15 @@ class WPDeveloper_Notice {
|
|
123 |
add_action( 'wpdeveloper_notices', array( $this, 'content' ) );
|
124 |
if( current_user_can( 'install_plugins' ) ) {
|
125 |
add_action( 'wpdeveloper_notice_clicked', array( $this, 'clicked' ) );
|
126 |
-
if( isset( $_GET['plugin'] ) ) {
|
127 |
/**
|
128 |
* Redirect User To the Current URL, but without set query arguments.
|
129 |
*/
|
130 |
wp_safe_redirect( $this->redirect_to() );
|
131 |
}
|
132 |
-
$
|
|
|
|
|
133 |
|
134 |
$deserve_notice = $this->deserve_notice( $current_notice );
|
135 |
$options_data = $this->get_options_data();
|
@@ -137,31 +139,26 @@ class WPDeveloper_Notice {
|
|
137 |
|
138 |
$notice_time = isset( $options_data[ $this->plugin_name ]['notice_will_show'][ $current_notice ] )
|
139 |
? $options_data[ $this->plugin_name ]['notice_will_show'][ $current_notice ] : $this->timestamp;
|
|
|
140 |
$current_notice_end = $this->makeTime( $notice_time, $this->cne_time );
|
141 |
|
142 |
if( $deserve_notice ) {
|
143 |
/**
|
144 |
* TODO: automatic maybe later setup with time.
|
145 |
-
*/
|
146 |
-
|
147 |
-
if( $this->timestamp >= $current_notice_end ) {
|
148 |
$this->maybe_later( $current_notice );
|
149 |
$notice_time = false;
|
150 |
}
|
151 |
-
|
152 |
-
if( isset( $options_data[ $this->plugin_name ]['current_notice_start'] ) ) {
|
153 |
-
$current_notice_start = $options_data[ $this->plugin_name ]['current_notice_start'];
|
154 |
-
} else {
|
155 |
-
$current_notice_start = $this->timestamp;
|
156 |
-
}
|
157 |
-
|
158 |
if( $notice_time != false ) {
|
159 |
if( $notice_time <= $this->timestamp ) {
|
160 |
if( $current_notice === 'upsale' ) {
|
161 |
$upsale_args = $this->get_upsale_args();
|
|
|
|
|
|
|
162 |
$plugins = get_plugins();
|
163 |
$pkey = $upsale_args['slug'] . '/' . $upsale_args['file'];
|
164 |
-
|
165 |
if( isset( $plugins[ $pkey ] ) ) {
|
166 |
return;
|
167 |
}
|
@@ -206,14 +203,11 @@ class WPDeveloper_Notice {
|
|
206 |
// }
|
207 |
if( isset( $_GET['plugin'] ) && $_GET['plugin'] === $this->plugin_name ) {
|
208 |
$options_data = $this->get_options_data();
|
209 |
-
$clicked_from = $this->next_notice();
|
210 |
extract($_GET);
|
211 |
|
212 |
$later_time = '';
|
213 |
|
214 |
-
// dump( $_GET );
|
215 |
-
// die;
|
216 |
-
|
217 |
switch( $clicked_from ) {
|
218 |
|
219 |
case 'opt_in' :
|
@@ -280,7 +274,7 @@ class WPDeveloper_Notice {
|
|
280 |
* @return void
|
281 |
*/
|
282 |
public function before(){
|
283 |
-
$current_notice = $this->next_notice();
|
284 |
$classes = 'notice notice-info put-dismiss-notice';
|
285 |
if( isset( $this->data['classes'] ) ) {
|
286 |
if( isset( $this->data['classes'][ $current_notice ] ) ) {
|
@@ -307,7 +301,7 @@ class WPDeveloper_Notice {
|
|
307 |
*/
|
308 |
public function content(){
|
309 |
$options_data = $this->get_options_data();
|
310 |
-
$notice = $this->next_notice();
|
311 |
|
312 |
switch( $notice ) {
|
313 |
case 'opt_in' :
|
@@ -431,15 +425,13 @@ class WPDeveloper_Notice {
|
|
431 |
} else {
|
432 |
$return_notice = $options_data[ $this->plugin_name ]['notice_will_show'];
|
433 |
}
|
434 |
-
|
435 |
-
$
|
436 |
-
|
437 |
-
|
438 |
-
$deserve_notice_timestamp = $timestamp;
|
439 |
-
$deserve_notice = $notice;
|
440 |
-
}
|
441 |
}
|
442 |
-
|
|
|
443 |
}
|
444 |
/**
|
445 |
* Which notice is deserve to show in next slot.
|
@@ -467,7 +459,7 @@ class WPDeveloper_Notice {
|
|
467 |
* @return void
|
468 |
*/
|
469 |
public function admin_notices(){
|
470 |
-
$current_notice = $this->next_notice();
|
471 |
do_action( 'wpdeveloper_notice_clicked' );
|
472 |
if( $current_notice == 'opt_in' ) {
|
473 |
do_action( 'wpdeveloper_notices' );
|
107 |
*/
|
108 |
public function init(){
|
109 |
add_action( 'init', array( $this, 'first_install_track') );
|
110 |
+
add_action( 'deactivate_' . $this->plugin_file, array( $this, 'first_install_end' ) );
|
111 |
add_action( 'init', array( $this, 'hooks' ) );
|
112 |
}
|
113 |
/**
|
123 |
add_action( 'wpdeveloper_notices', array( $this, 'content' ) );
|
124 |
if( current_user_can( 'install_plugins' ) ) {
|
125 |
add_action( 'wpdeveloper_notice_clicked', array( $this, 'clicked' ) );
|
126 |
+
if( isset( $_GET['plugin'] ) && $_GET['plugin'] == $this->plugin_name ) {
|
127 |
/**
|
128 |
* Redirect User To the Current URL, but without set query arguments.
|
129 |
*/
|
130 |
wp_safe_redirect( $this->redirect_to() );
|
131 |
}
|
132 |
+
$return_notice = $this->next_notice();
|
133 |
+
$current_notice = current( $return_notice );
|
134 |
+
$next_notice = next( $return_notice );
|
135 |
|
136 |
$deserve_notice = $this->deserve_notice( $current_notice );
|
137 |
$options_data = $this->get_options_data();
|
139 |
|
140 |
$notice_time = isset( $options_data[ $this->plugin_name ]['notice_will_show'][ $current_notice ] )
|
141 |
? $options_data[ $this->plugin_name ]['notice_will_show'][ $current_notice ] : $this->timestamp;
|
142 |
+
$next_notice_time = $options_data[ $this->plugin_name ]['notice_will_show'][ $next_notice ];
|
143 |
$current_notice_end = $this->makeTime( $notice_time, $this->cne_time );
|
144 |
|
145 |
if( $deserve_notice ) {
|
146 |
/**
|
147 |
* TODO: automatic maybe later setup with time.
|
148 |
+
*/
|
149 |
+
if( ( $this->timestamp >= $current_notice_end ) || ( $this->timestamp >= $next_notice_time ) ) {
|
|
|
150 |
$this->maybe_later( $current_notice );
|
151 |
$notice_time = false;
|
152 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
153 |
if( $notice_time != false ) {
|
154 |
if( $notice_time <= $this->timestamp ) {
|
155 |
if( $current_notice === 'upsale' ) {
|
156 |
$upsale_args = $this->get_upsale_args();
|
157 |
+
if ( ! function_exists( 'get_plugins' ) ) {
|
158 |
+
include ABSPATH . '/wp-admin/includes/plugin.php';
|
159 |
+
}
|
160 |
$plugins = get_plugins();
|
161 |
$pkey = $upsale_args['slug'] . '/' . $upsale_args['file'];
|
|
|
162 |
if( isset( $plugins[ $pkey ] ) ) {
|
163 |
return;
|
164 |
}
|
203 |
// }
|
204 |
if( isset( $_GET['plugin'] ) && $_GET['plugin'] === $this->plugin_name ) {
|
205 |
$options_data = $this->get_options_data();
|
206 |
+
$clicked_from = current( $this->next_notice() );
|
207 |
extract($_GET);
|
208 |
|
209 |
$later_time = '';
|
210 |
|
|
|
|
|
|
|
211 |
switch( $clicked_from ) {
|
212 |
|
213 |
case 'opt_in' :
|
274 |
* @return void
|
275 |
*/
|
276 |
public function before(){
|
277 |
+
$current_notice = current( $this->next_notice() );
|
278 |
$classes = 'notice notice-info put-dismiss-notice';
|
279 |
if( isset( $this->data['classes'] ) ) {
|
280 |
if( isset( $this->data['classes'][ $current_notice ] ) ) {
|
301 |
*/
|
302 |
public function content(){
|
303 |
$options_data = $this->get_options_data();
|
304 |
+
$notice = current( $this->next_notice() );
|
305 |
|
306 |
switch( $notice ) {
|
307 |
case 'opt_in' :
|
425 |
} else {
|
426 |
$return_notice = $options_data[ $this->plugin_name ]['notice_will_show'];
|
427 |
}
|
428 |
+
|
429 |
+
if( is_array( $return_notice ) ) {
|
430 |
+
$return_notice = array_flip( $return_notice );
|
431 |
+
ksort( $return_notice );
|
|
|
|
|
|
|
432 |
}
|
433 |
+
|
434 |
+
return $return_notice;
|
435 |
}
|
436 |
/**
|
437 |
* Which notice is deserve to show in next slot.
|
459 |
* @return void
|
460 |
*/
|
461 |
public function admin_notices(){
|
462 |
+
$current_notice = current( $this->next_notice() );
|
463 |
do_action( 'wpdeveloper_notice_clicked' );
|
464 |
if( $current_notice == 'opt_in' ) {
|
465 |
do_action( 'wpdeveloper_notices' );
|
includes/eael-rollback.php
CHANGED
@@ -40,6 +40,7 @@ if( ! class_exists('EAEL_Rollback') ) {
|
|
40 |
* @var array
|
41 |
*/
|
42 |
public $versions = [
|
|
|
43 |
'2.9.1',
|
44 |
'2.9.0',
|
45 |
'2.8.7',
|
40 |
* @var array
|
41 |
*/
|
42 |
public $versions = [
|
43 |
+
'2.9.2',
|
44 |
'2.9.1',
|
45 |
'2.9.0',
|
46 |
'2.8.7',
|
includes/extensions.php
CHANGED
File without changes
|
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.0.3
|
6 |
Requires PHP: 5.4
|
7 |
-
Stable tag: 2.9.
|
8 |
License: GPLv3
|
9 |
License URI: https://opensource.org/licenses/GPL-3.0
|
10 |
|
@@ -169,6 +169,11 @@ Your existing elements/content will work with premium version. So you won't lose
|
|
169 |
|
170 |
== Changelog ==
|
171 |
|
|
|
|
|
|
|
|
|
|
|
172 |
= 2.9.2 =
|
173 |
|
174 |
- Few minor bugfix and improvements
|
4 |
Requires at least: 4.0
|
5 |
Tested up to: 5.0.3
|
6 |
Requires PHP: 5.4
|
7 |
+
Stable tag: 2.9.3
|
8 |
License: GPLv3
|
9 |
License URI: https://opensource.org/licenses/GPL-3.0
|
10 |
|
169 |
|
170 |
== Changelog ==
|
171 |
|
172 |
+
= 2.9.3 =
|
173 |
+
|
174 |
+
- Fixed: Fatal error Call to undefined function get_plugins()
|
175 |
+
- Fixed: View Details for other plugins in plugins page
|
176 |
+
|
177 |
= 2.9.2 =
|
178 |
|
179 |
- Few minor bugfix and improvements
|