Premium Addons for Elementor - Version 2.6.3

Version Description

  • Tweak: Premium Person widget performance enhanced.
  • Tweak: Premium Pricing Table widget performance enhanced.
  • Fixed: Videos continue playing after Premium Modal is closed.
Download this release

Release Info

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

Code changes from version 2.6.2 to 2.6.3

admin/settings/version-control.php CHANGED
@@ -80,7 +80,7 @@ class PA_Version_Control {
80
<tr class="pa-roll-row">
81
<th>Rollback Version</th>
82
<td>
83
- <div><?php echo sprintf( '<a target="_blank" href="%s" class="button pa-btn pa-rollback-button elementor-button-spinner">Reinstall Version 2.6.1</a>', wp_nonce_url( admin_url( 'admin-post.php?action=premium_addons_rollback' ), 'premium_addons_rollback' ) ); ?> </div>
84
<p class="pa-roll-desc"><span>Warning: Please backup your database before making the rollback.</span></p>
85
</td>
86
</tr>
80
<tr class="pa-roll-row">
81
<th>Rollback Version</th>
82
<td>
83
+ <div><?php echo sprintf( '<a target="_blank" href="%s" class="button pa-btn pa-rollback-button elementor-button-spinner">Reinstall Version 2.6.2</a>', wp_nonce_url( admin_url( 'admin-post.php?action=premium_addons_rollback' ), 'premium_addons_rollback' ) ); ?> </div>
84
<p class="pa-roll-desc"><span>Warning: Please backup your database before making the rollback.</span></p>
85
</td>
86
</tr>
assets/js/lib/modal.js CHANGED
@@ -351,6 +351,7 @@ if (typeof jQuery === 'undefined') {
351
$target.one('show.bs.modal', function (showEvent) {
352
if (showEvent.isDefaultPrevented()) return // only register focus restorer if modal will actually get shown
353
$target.one('hidden.bs.modal', function () {
354
$this.is(':visible') && $this.trigger('focus')
355
})
356
})
351
$target.one('show.bs.modal', function (showEvent) {
352
if (showEvent.isDefaultPrevented()) return // only register focus restorer if modal will actually get shown
353
$target.one('hidden.bs.modal', function () {
354
+ $(this).find('iframe').attr("src", $(this).find("iframe").attr("src")); //Stop videos after modal close
355
$this.is(':visible') && $this.trigger('focus')
356
})
357
})
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.6.2
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
if (!defined('ABSPATH')) exit; // No access of directly access
23
24
25
- define('PREMIUM_ADDONS_VERSION', '2.6.2');
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.6.1');
31
32
/**
33
* Loading text domain, Including required files
@@ -107,8 +107,9 @@ class premium_Addon_Elementor {
107
*/
108
public function __construct() {
109
add_action('admin_init', array( $this, 'handle_get_pro_notice'));
110
add_action('admin_notices', array( $this, 'required_plugins_check' ));
111
- add_action('admin_notices', array( $this, 'get_premium_pro_notice')) ;
112
add_action('elementor/init', array($this, 'initiate_elementor_addons'));
113
add_action('elementor/widgets/widgets_registered', array($this, 'premium_addons_widget_register'));
114
add_action('elementor/frontend/after_register_scripts', array($this, 'premium_addons_register_scripts'));
@@ -158,6 +159,26 @@ class premium_Addon_Elementor {
158
}
159
}
160
161
/*
162
* Checks if get pro version message is dismissed
163
*/
@@ -181,7 +202,24 @@ class premium_Addon_Elementor {
181
/**
182
* Shows a dismissible admin notice to get Premium PRO version
183
*/
184
- public function get_premium_pro_notice() {
185
186
$pro_path = 'premium-addons-pro/premium-addons-pro-for-elementor.php';
187
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.6.3
7
Author: Leap13
8
Author URI: http://leap13.com/
9
Text Domain: premium-addons-for-elementor
22
if (!defined('ABSPATH')) exit; // No access of directly access
23
24
25
+ define('PREMIUM_ADDONS_VERSION', '2.6.3');
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.6.2');
31
32
/**
33
* Loading text domain, Including required files
107
*/
108
public function __construct() {
109
add_action('admin_init', array( $this, 'handle_get_pro_notice'));
110
+ add_action('admin_init', array( $this, 'handle_review_notice'));
111
add_action('admin_notices', array( $this, 'required_plugins_check' ));
112
+ add_action('admin_notices', array( $this, 'premium_admin_notices'));
113
add_action('elementor/init', array($this, 'initiate_elementor_addons'));
114
add_action('elementor/widgets/widgets_registered', array($this, 'premium_addons_widget_register'));
115
add_action('elementor/frontend/after_register_scripts', array($this, 'premium_addons_register_scripts'));
159
}
160
}
161
162
+ /*
163
+ * Checks if review message is dismissed
164
+ */
165
+ public function handle_review_notice() {
166
+
167
+ if ( ! isset( $_GET['pa_review'] ) ) {
168
+ return;
169
+ }
170
+
171
+ if ( 'opt_out' === $_GET['pa_review'] ) {
172
+ check_admin_referer( 'opt_out' );
173
+
174
+ update_option( 'pa_review_notice', '1' );
175
+ }
176
+
177
+ wp_redirect( remove_query_arg( 'pa_review' ) );
178
+ exit;
179
+
180
+ }
181
+
182
/*
183
* Checks if get pro version message is dismissed
184
*/
202
/**
203
* Shows a dismissible admin notice to get Premium PRO version
204
*/
205
+ public function premium_admin_notices() {
206
+
207
+ $review = get_option( 'pa_review_notice' );
208
+
209
+ $review_url = 'https://wordpress.org/support/plugin/premium-addons-for-elementor/reviews/?filter=5';
210
+
211
+ if ( '1' === $review ) {
212
+ return;
213
+ } else if ( '1' !== $review ) {
214
+ $optout_url = wp_nonce_url( add_query_arg( 'pa_review', 'opt_out' ), 'opt_out' );
215
+
216
+ $review_message = sprintf( __('<p style="display: flex; align-items: center; padding:10px 10px 10px 0;"><img src="%s" style="margin-right: 0.8em; width: 40px;">Did you like<strong>&nbspPremium Addons for Elementor&nbsp</strong>Plugin?<span>&nbspplease help us by leaving a five star review on WordPress.org.&nbsp</span><a href="%s" target="_blank" style="flex-grow: 2;">Leave a Review.</a>', 'premium-addons-for-elementor' ), PREMIUM_ADDONS_URL .'admin/images/premium-addons-logo.png' ,$review_url );
217
+
218
+ }
219
+
220
+ $review_message .= sprintf(__('<a href="%s" style="text-decoration: none; margin-left: 1em; float:right; "><span class="dashicons dashicons-dismiss"></span></a></p>', 'premium-addons-for-elementor'), $optout_url );
221
+
222
+ $this->render_admin_notices( $review_message );
223
224
$pro_path = 'premium-addons-pro/premium-addons-pro-for-elementor.php';
225
readme.txt CHANGED
@@ -5,7 +5,7 @@ Donate link: http://premiumaddons.com
5
Requires at least: 4.5
6
Tested up to: 4.9.8
7
Requires PHP: 5.4
8
- Stable tag: 2.6.2
9
License: GPL v3.0
10
License URI: https://opensource.org/licenses/GPL-3.0
11
@@ -135,6 +135,12 @@ Premium Addons for Elementor is 100% Ads Free, Ads can only be detected from You
135
136
== Changelog ==
137
138
= 2.6.2 =
139
140
- Tweak: Premium Title widget performance enhanced.
5
Requires at least: 4.5
6
Tested up to: 4.9.8
7
Requires PHP: 5.4
8
+ Stable tag: 2.6.3
9
License: GPL v3.0
10
License URI: https://opensource.org/licenses/GPL-3.0
11
135
136
== Changelog ==
137
138
+ = 2.6.3 =
139
+
140
+ - Tweak: Premium Person widget performance enhanced.
141
+ - Tweak: Premium Pricing Table widget performance enhanced.
142
+ - Fixed: Videos continue playing after Premium Modal is closed.
143
+
144
= 2.6.2 =
145
146
- Tweak: Premium Title widget performance enhanced.
widgets/premium-person.php CHANGED
@@ -515,8 +515,7 @@ class Premium_Person_Widget extends Widget_Base
515
516
}
517
518
- protected function render($instance = [])
519
- {
520
// get our input from the widget settings.
521
$settings = $this->get_settings_for_display();
522
@@ -561,5 +560,88 @@ class Premium_Person_Widget extends Widget_Base
561
</div>
562
<?php
563
}
564
}
565
Plugin::instance()->widgets_manager->register_widget_type(new Premium_Person_Widget());
515
516
}
517
518
+ protected function render() {
519
// get our input from the widget settings.
520
$settings = $this->get_settings_for_display();
521
560
</div>
561
<?php
562
}
563
+
564
+ protected function _content_template() {
565
+ ?>
566
+ <#
567
+
568
+ view.addInlineEditingAttributes('premium_person_name');
569
+
570
+ view.addInlineEditingAttributes('premium_person_title');
571
+
572
+ view.addInlineEditingAttributes('premium_person_content', 'advanced');
573
+
574
+ var nameHeading = settings.premium_person_name_heading,
575
+
576
+ titleHeading = settings.premium_person_title_heading,
577
+
578
+ imageEffect = 'premium-person-' + settings.premium_person_hover_image_effect + '-effect' ;
579
+
580
+ view.addRenderAttribute('container', 'class', [ 'premium-person-container', imageEffect ] );
581
+
582
+ #>
583
+
584
+ <div {{{ view.getRenderAttributeString('container') }}} >
585
+ <div class="premium-person-image-container">
586
+ <img src="{{ settings.premium_person_image.url}}" alt="{{ settings.premium_person_name }}">
587
+ </div>
588
+ <div class="premium-person-info">
589
+ <div class="premium-person-info-container">
590
+ <# if( '' != settings.premium_person_name ) { #>
591
+ <{{{nameHeading}}} class="premium-person-name">
592
+ <span {{{ view.getRenderAttributeString('premium_person_name') }}}>
593
+ {{{ settings.premium_person_name }}}
594
+ </span></{{{nameHeading}}}>
595
+ <# } #>
596
+ <# if( '' != settings.premium_person_title ) { #>
597
+ <{{{titleHeading}}} class="premium-person-title">
598
+ <span {{{ view.getRenderAttributeString('premium_person_title') }}}>
599
+ {{{ settings.premium_person_title }}}
600
+ </span></{{{titleHeading}}}>
601
+ <# } #>
602
+ <div class="premium-person-content">
603
+ <div {{{ view.getRenderAttributeString('premium_person_content') }}}>
604
+ {{{ settings.premium_person_content }}}
605
+ </div>
606
+ </div>
607
+ <ul class="premium-person-social-list">
608
+ <# if( '' != settings.premium_person_facebook ) { #>
609
+ <li class="premium-person-list-item premium-person-facebook"><a href="{{ settings.premium_person_facebook }}" target="_blank"><i class="fa fa-facebook"></i></a></li>
610
+ <# } #>
611
+
612
+ <# if( '' != settings.premium_person_twitter ) { #>
613
+ <li class="premium-person-list-item premium-person-twitter"><a href="{{ settings.premium_person_twitter }}" target="_blank"><i class="fa fa-twitter"></i></a></li>
614
+ <# } #>
615
+
616
+ <# if( '' != settings.premium_person_linkedin ) { #>
617
+ <li class="premium-person-list-item premium-person-linkedin"><a href="{{ settings.premium_person_linkedin }}" target="_blank"><i class="fa fa-linkedin"></i></a></li>
618
+ <# } #>
619
+
620
+ <# if( '' != settings.premium_person_google ) { #>
621
+ <li class="premium-person-list-item premium-person-google"><a href="{{ settings.premium_person_google }}" target="_blank"><i class="fa fa-google-plus"></i></a></li>
622
+ <# } #>
623
+
624
+ <# if( '' != settings.premium_person_pinterest ) { #>
625
+ <li class="premium-person-list-item premium-person-pinterest"><a href="{{ settings.premium_person_pinterest }}" target="_blank"><i class="fa fa-pinterest"></i></a></li>
626
+ <# } #>
627
+
628
+ <# if( '' != settings.premium_person_dribbble ) { #>
629
+ <li class="premium-person-list-item premium-person-dribbble"><a href="{{ settings.premium_person_dribbble }}" target="_blank"><i class="fa fa-dribbble"></i></a></li>
630
+ <# } #>
631
+
632
+ <# if( '' != settings.premium_person_behance ) { #>
633
+ <li class="premium-person-list-item premium-person-behance"><a href="{{ settings.premium_person_behance }}" target="_blank"><i class="fa fa-behance"></i></a></li>
634
+ <# } #>
635
+
636
+ <# if( '' != settings.premium_person_mail ) { #>
637
+ <li class="premium-person-list-item premium-person-mail"><a href="{{ settings.premium_person_mail }}" target="_blank"><i class="fa fa-envelope"></i></a></li>
638
+ <# } #>
639
+
640
+ </ul>
641
+ </div>
642
+ </div>
643
+ </div>
644
+ <?php
645
+ }
646
}
647
Plugin::instance()->widgets_manager->register_widget_type(new Premium_Person_Widget());
widgets/premium-pricing-table.php CHANGED
@@ -1818,8 +1818,7 @@ class Premium_Pricing_Table_Widget extends Widget_Base
1818
1819
}
1820
1821
- protected function render($instance = [])
1822
- {
1823
// get our input from the widget settings.
1824
$settings = $this->get_settings_for_display();
1825
$this->add_inline_editing_attributes('premium_pricing_table_title_text');
@@ -1891,5 +1890,74 @@ class Premium_Pricing_Table_Widget extends Widget_Base
1891
1892
<?php
1893
}
1894
}
1895
Plugin::instance()->widgets_manager->register_widget_type(new Premium_Pricing_Table_Widget());
1818
1819
}
1820
1821
+ protected function render() {
1822
// get our input from the widget settings.
1823
$settings = $this->get_settings_for_display();
1824
$this->add_inline_editing_attributes('premium_pricing_table_title_text');
1890
1891
<?php
1892
}
1893
+
1894
+ protected function _content_template() {
1895
+ ?>
1896
+ <#
1897
+
1898
+ view.addInlineEditingAttributes('premium_pricing_table_title_text');
1899
+
1900
+ view.addInlineEditingAttributes('premium_pricing_table_description_text', 'advanced');
1901
+
1902
+ view.addInlineEditingAttributes('premium_pricing_table_button_text');
1903
+
1904
+ var titleTag = settings.premium_pricing_table_title_size,
1905
+ linkType = settings.premium_pricing_table_button_url_type,
1906
+ badgePosition = 'premium-badge-' + settings.premium_pricing_table_badge_position,
1907
+ linkURL = 'link' === linkType ? settings.premium_pricing_table_button_link_existing_content : settings.premium_pricing_table_button_link;
1908
+
1909
+ #>
1910
+
1911
+ <div class="premium-pricing-table-container">
1912
+ <# if('yes' === settings.premium_pricing_table_badge_switcher ) { #>
1913
+ <div class="premium-pricing-badge-container {{ badgePosition }}">
1914
+ <div class="corner"><span>{{{ settings.premium_pricing_table_badge_text }}}</span></div>
1915
+ </div>
1916
+ <# } #>
1917
+ <# if('yes' === settings.premium_pricing_table_icon_switcher ) { #>
1918
+ <div class="premium-pricing-icon-container"><i class="{{ settings.premium_pricing_table_icon_selection }}"></i></div>
1919
+ <# } #>
1920
+ <# if('yes' === settings.premium_pricing_table_title_switcher ) { #>
1921
+ <{{{titleTag}}} class="premium-pricing-table-title"><span {{{ view.getRenderAttributeString('premium_pricing_table_title_text') }}}>{{{ settings.premium_pricing_table_title_text }}}</span></{{{titleTag}}}>
1922
+ <# } #>
1923
+
1924
+ <# if('yes' === settings.premium_pricing_table_price_switcher ) { #>
1925
+ <div class="premium-pricing-price-container">
1926
+ <strike class="premium-pricing-slashed-price-value">{{{ settings.premium_pricing_table_slashed_price_value }}}</strike>
1927
+ <span class="premium-pricing-price-currency">{{{ settings.premium_pricing_table_price_currency }}}</span>
1928
+ <span class="premium-pricing-price-value">{{{ settings.premium_pricing_table_price_value }}}</span>
1929
+ <span class="premium-pricing-price-separator">{{{ settings.premium_pricing_table_price_separator }}}</span>
1930
+ <span class="premium-pricing-price-duration">{{{ settings.premium_pricing_table_price_duration }}}</span>
1931
+ </div>
1932
+ <# } #>
1933
+ <# if('yes' === settings.premium_pricing_table_list_switcher ) { #>
1934
+ <div class="premium-pricing-list-container">
1935
+ <ul class="premium-pricing-list">
1936
+ <# _.each( settings.premium_fancy_text_list_items, function( item ) { #>
1937
+ <li>
1938
+ <i class="{{ item.premium_pricing_list_item_icon }}"></i>
1939
+ <span class="premium-pricing-list-span">{{{ item.premium_pricing_list_item_text }}}</span>
1940
+ </li>
1941
+ <# } ); #>
1942
+ </ul>
1943
+ </div>
1944
+ <# } #>
1945
+ <# if('yes' === settings.premium_pricing_table_description_switcher ) { #>
1946
+ <div class="premium-pricing-description-container">
1947
+ <div {{{ view.getRenderAttributeString('premium_pricing_table_description_text') }}}>
1948
+ {{{ settings.premium_pricing_table_description_text }}}
1949
+ </div>
1950
+ </div>
1951
+ <# } #>
1952
+ <# if('yes' === settings.premium_pricing_table_button_switcher ) { #>
1953
+ <div class="premium-pricing-button-container">
1954
+ <a class="premium-pricing-price-button" target="_{{ settings.premium_pricing_table_button_link_target }}" href="{{ linkURL }}">
1955
+ <span {{{ view.getRenderAttributeString('premium_pricing_table_button_text') }}}>{{{ settings.premium_pricing_table_button_text }}}</span>
1956
+ </a>
1957
+ </div>
1958
+ <# } #>
1959
+ </div>
1960
+ <?php
1961
+ }
1962
}
1963
Plugin::instance()->widgets_manager->register_widget_type(new Premium_Pricing_Table_Widget());