Premium Addons for Elementor - Version 3.5.5

Version Description

  • Tweak: Even layout enhanced for more usability in Grid widget.
  • Fixed: Load More button loads images from All category even when not on All filter tab in Grid widget.
  • Fixed: Transparent Stroke Fill Color option issue in Dual Heading widget.
Download this release

Release Info

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

Code changes from version 3.5.4 to 3.5.5

admin/includes/version-control.php CHANGED
@@ -91,7 +91,7 @@ class Version_Control {
91
<tr class="pa-roll-row">
92
<th><?php echo __('Rollback Version', 'premium-addons-for-elementor'); ?></th>
93
<td>
94
- <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.5.3', 'premium-addons-for-elementor') ); ?></div>
95
<p class="pa-roll-desc">
96
<span><?php echo __('Warning: Please backup your database before making the rollback.', 'premium-addons-for-elementor'); ?></span>
97
</p>
91
<tr class="pa-roll-row">
92
<th><?php echo __('Rollback Version', 'premium-addons-for-elementor'); ?></th>
93
<td>
94
+ <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.5.4', 'premium-addons-for-elementor') ); ?></div>
95
<p class="pa-roll-desc">
96
<span><?php echo __('Warning: Please backup your database before making the rollback.', 'premium-addons-for-elementor'); ?></span>
97
</p>
assets/frontend/css/premium-addons.css CHANGED
@@ -2303,8 +2303,8 @@ button.premium-modal-box-modal-close {
2303
.premium-dual-header-first-clip.stroke .premium-dual-header-first-span,
2304
.premium-dual-header-second-clip.stroke {
2305
-webkit-text-stroke-color: transparent;
2306
- -webkit-text-fill-color: #fff;
2307
- -webkit-text-stroke-width: 4px;
2308
}
2309
2310
@media (max-width: 500px) {
@@ -3243,6 +3243,7 @@ button.premium-modal-box-modal-close {
3243
}
3244
.pa-gallery-img-container img {
3245
display: block;
3246
-webkit-transition: all 0.3s ease-in-out;
3247
-moz-transition: all 0.3s ease-in-out;
3248
-ms-transition: all 0.3s ease-in-out;
2303
.premium-dual-header-first-clip.stroke .premium-dual-header-first-span,
2304
.premium-dual-header-second-clip.stroke {
2305
-webkit-text-stroke-color: transparent;
2306
+ -webkit-text-fill-color: #fafafa;
2307
+ -webkit-text-stroke-width: 2px;
2308
}
2309
2310
@media (max-width: 500px) {
3243
}
3244
.pa-gallery-img-container img {
3245
display: block;
3246
+ width: 100%;
3247
-webkit-transition: all 0.3s ease-in-out;
3248
-moz-transition: all 0.3s ease-in-out;
3249
-ms-transition: all 0.3s ease-in-out;
assets/frontend/js/premium-addons.js CHANGED
@@ -119,28 +119,32 @@
119
120
if ( loadMore ) {
121
122
- var minimum = gridSettings['minimum'],
123
- imageToShow = gridSettings['click_images'];
124
125
galleryElement.parent().find('.premium-gallery-load-more div').hide();
126
if ( galleryElement.find(".premium-gallery-item").length > minimum ) {
127
galleryElement.parent().find('.premium-gallery-load-more').removeClass('premium-gallery-btn-hidden');
128
galleryElement.find(".premium-gallery-item:gt(" + ( minimum - 1 ) + ")").hide();
129
- function appendItems() {
130
- var itemsToShow = galleryElement.find(".premium-gallery-item").filter(':hidden').slice( 0, imageToShow );
131
if ( itemsToShow.length > 0 ) {
132
itemsToShow.show();
133
galleryElement.isotope('layout');
134
}
135
}
136
galleryElement.parent().on('click', '.premium-gallery-load-more-btn', function() {
137
$.ajax({
138
- url: appendItems(),
139
beforeSend: function() {
140
galleryElement.parent().find('.premium-gallery-load-more div').show();
141
},
142
success: function() {
143
- var itemsLeft = galleryElement.find(".premium-gallery-item").filter(':hidden').slice( 0, imageToShow );
144
if ( itemsLeft.length > 0 ) {
145
galleryElement.parent().find('.premium-gallery-load-more div').hide();
146
} else {
@@ -154,9 +158,8 @@
154
155
$scope.find(".premium-gallery-cats-container li a").click(function(e) {
156
e.preventDefault();
157
- $scope
158
- .find(".premium-gallery-cats-container li .active")
159
- .removeClass("active");
160
$(this).addClass("active");
161
var selector = $(this).attr("data-filter");
162
galleryElement.isotope({ filter: selector });
119
120
if ( loadMore ) {
121
122
+ var minimum = gridSettings['minimum'],
123
+ imageToShow = gridSettings['click_images'];
124
125
galleryElement.parent().find('.premium-gallery-load-more div').hide();
126
if ( galleryElement.find(".premium-gallery-item").length > minimum ) {
127
galleryElement.parent().find('.premium-gallery-load-more').removeClass('premium-gallery-btn-hidden');
128
galleryElement.find(".premium-gallery-item:gt(" + ( minimum - 1 ) + ")").hide();
129
+ function appendItems( currentItems ) {
130
+
131
+ var itemsToShow = $( currentItems ).filter(':hidden').slice( 0, imageToShow );
132
+
133
if ( itemsToShow.length > 0 ) {
134
itemsToShow.show();
135
galleryElement.isotope('layout');
136
}
137
+
138
}
139
galleryElement.parent().on('click', '.premium-gallery-load-more-btn', function() {
140
+ var currentFilterItems = galleryElement.isotope('getFilteredItemElements');
141
$.ajax({
142
+ url: appendItems( currentFilterItems ),
143
beforeSend: function() {
144
galleryElement.parent().find('.premium-gallery-load-more div').show();
145
},
146
success: function() {
147
+ var itemsLeft = $( currentFilterItems ).filter(':hidden').slice( 0, imageToShow );
148
if ( itemsLeft.length > 0 ) {
149
galleryElement.parent().find('.premium-gallery-load-more div').hide();
150
} else {
158
159
$scope.find(".premium-gallery-cats-container li a").click(function(e) {
160
e.preventDefault();
161
+ //Showing all images of category
162
+ $scope.find(".premium-gallery-cats-container li .active").removeClass("active");
163
$(this).addClass("active");
164
var selector = $(this).attr("data-filter");
165
galleryElement.isotope({ filter: selector });
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.5.4
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.5.4');
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.5.3');
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.5.5
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.5.5');
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.5.4');
23
24
if( ! class_exists('Premium_Addons_Elementor') ) {
25
readme.txt CHANGED
@@ -5,7 +5,7 @@ Donate link: http://premiumaddons.com
5
Requires at least: 4.5
6
Tested up to: 5.2.2
7
Requires PHP: 5.4
8
- Stable tag: 3.5.4
9
License: GPL v3.0
10
License URI: https://opensource.org/licenses/GPL-3.0
11
@@ -141,6 +141,12 @@ Premium Addons for Elementor is 100% Ads Free, Ads can only be detected from You
141
142
== Changelog ==
143
144
= 3.5.4 =
145
146
- Tweak: Added `Stroke` option for First/Second heading in Dual Heading widget.
5
Requires at least: 4.5
6
Tested up to: 5.2.2
7
Requires PHP: 5.4
8
+ Stable tag: 3.5.5
9
License: GPL v3.0
10
License URI: https://opensource.org/licenses/GPL-3.0
11
141
142
== Changelog ==
143
144
+ = 3.5.5 =
145
+
146
+ - Tweak: `Even` layout enhanced for more usability in Grid widget.
147
+ - Fixed: `Load More` button loads images from `All` category even when not on `All` filter tab in Grid widget.
148
+ - Fixed: Transparent `Stroke Fill Color` option issue in Dual Heading widget.
149
+
150
= 3.5.4 =
151
152
- Tweak: Added `Stroke` option for First/Second heading in Dual Heading widget.
widgets/premium-dual-header.php CHANGED
@@ -271,26 +271,27 @@ class Premium_Dual_Header extends Widget_Base {
271
]
272
);
273
274
- /*First Clip*/
275
- $this->add_group_control(
276
- Group_Control_Background::get_type(),
277
[
278
- 'name' => 'premium_dual_header_first_clipped_background',
279
- 'types' => [ 'classic' , 'gradient' ],
280
'condition' => [
281
'premium_dual_header_first_back_clip' => 'clipped'
282
],
283
- 'selector' => '{{WRAPPER}} .premium-dual-header-first-span'
284
]
285
);
286
287
- $this->add_control('premium_dual_header_first_stroke',
288
[
289
- 'label' => __('Stroke', 'premium-addons-for-elementor'),
290
- 'type' => Controls_Manager::SWITCHER,
291
- 'condition' => [
292
- 'premium_dual_header_first_back_clip' => 'clipped'
293
],
294
]
295
);
296
@@ -322,6 +323,20 @@ class Premium_Dual_Header extends Widget_Base {
322
]
323
);
324
325
/*First Border*/
326
$this->add_group_control(
327
Group_Control_Border::get_type(),
@@ -453,26 +468,27 @@ class Premium_Dual_Header extends Widget_Base {
453
]
454
);
455
456
- /*Second Clip*/
457
- $this->add_group_control(
458
- Group_Control_Background::get_type(),
459
[
460
- 'name' => 'premium_dual_header_second_clipped_background',
461
- 'types' => [ 'classic' , 'gradient' ],
462
'condition' => [
463
'premium_dual_header_second_back_clip' => 'clipped'
464
],
465
- 'selector' => '{{WRAPPER}} .premium-dual-header-second-header'
466
]
467
);
468
469
- $this->add_control('premium_dual_header_second_stroke',
470
[
471
- 'label' => __('Stroke', 'premium-addons-for-elementor'),
472
- 'type' => Controls_Manager::SWITCHER,
473
- 'condition' => [
474
- 'premium_dual_header_second_back_clip' => 'clipped'
475
],
476
]
477
);
478
@@ -504,6 +520,20 @@ class Premium_Dual_Header extends Widget_Base {
504
]
505
);
506
507
/*Second Border*/
508
$this->add_group_control(
509
Group_Control_Border::get_type(),
271
]
272
);
273
274
+ $this->add_control('premium_dual_header_first_stroke',
275
[
276
+ 'label' => __('Stroke', 'premium-addons-for-elementor'),
277
+ 'type' => Controls_Manager::SWITCHER,
278
'condition' => [
279
'premium_dual_header_first_back_clip' => 'clipped'
280
],
281
]
282
);
283
284
+ $this->add_control('premium_dual_header_first_stroke_text_color',
285
[
286
+ 'label' => __('Stroke Text Color', 'premium-addons-for-elementor'),
287
+ 'type' => Controls_Manager::COLOR,
288
+ 'condition' => [
289
+ 'premium_dual_header_first_back_clip' => 'clipped',
290
+ 'premium_dual_header_first_stroke' => 'yes'
291
],
292
+ 'selectors' => [
293
+ '{{WRAPPER}} .premium-dual-header-first-clip.stroke .premium-dual-header-first-span' => '-webkit-text-stroke-color: {{VALUE}};'
294
+ ]
295
]
296
);
297
323
]
324
);
325
326
+ /*First Clip*/
327
+ $this->add_group_control(
328
+ Group_Control_Background::get_type(),
329
+ [
330
+ 'name' => 'premium_dual_header_first_clipped_background',
331
+ 'types' => [ 'classic' , 'gradient' ],
332
+ 'condition' => [
333
+ 'premium_dual_header_first_back_clip' => 'clipped',
334
+ 'premium_dual_header_first_stroke!' => 'yes'
335
+ ],
336
+ 'selector' => '{{WRAPPER}} .premium-dual-header-first-span'
337
+ ]
338
+ );
339
+
340
/*First Border*/
341
$this->add_group_control(
342
Group_Control_Border::get_type(),
468
]
469
);
470
471
+ $this->add_control('premium_dual_header_second_stroke',
472
[
473
+ 'label' => __('Stroke', 'premium-addons-for-elementor'),
474
+ 'type' => Controls_Manager::SWITCHER,
475
'condition' => [
476
'premium_dual_header_second_back_clip' => 'clipped'
477
],
478
]
479
);
480
481
+ $this->add_control('premium_dual_header_second_stroke_text_color',
482
[
483
+ 'label' => __('Stroke Text Color', 'premium-addons-for-elementor'),
484
+ 'type' => Controls_Manager::COLOR,
485
+ 'condition' => [
486
+ 'premium_dual_header_second_back_clip' => 'clipped',
487
+ 'premium_dual_header_second_stroke' => 'yes'
488
],
489
+ 'selectors' => [
490
+ '{{WRAPPER}} .premium-dual-header-second-clip.stroke' => '-webkit-text-stroke-color: {{VALUE}};'
491
+ ]
492
]
493
);
494
520
]
521
);
522
523
+ /*Second Clip*/
524
+ $this->add_group_control(
525
+ Group_Control_Background::get_type(),
526
+ [
527
+ 'name' => 'premium_dual_header_second_clipped_background',
528
+ 'types' => [ 'classic' , 'gradient' ],
529
+ 'condition' => [
530
+ 'premium_dual_header_second_back_clip' => 'clipped',
531
+ 'premium_dual_header_second_stroke!' => 'yes'
532
+ ],
533
+ 'selector' => '{{WRAPPER}} .premium-dual-header-second-header'
534
+ ]
535
+ );
536
+
537
/*Second Border*/
538
$this->add_group_control(
539
Group_Control_Border::get_type(),
widgets/premium-grid.php CHANGED
@@ -82,8 +82,35 @@ class Premium_Grid extends Widget_Base {
82
'default' => 'fitRows',
83
]
84
);
85
86
- $this->add_control('premium_gallery_metro_fit',
87
[
88
'label' => __('Images Fit', 'premium-addons-for-elementor'),
89
'type' => Controls_Manager::SELECT,
@@ -93,10 +120,10 @@ class Premium_Grid extends Widget_Base {
93
],
94
'default' => 'fill',
95
'selectors' => [
96
- '{{WRAPPER}} .premium-img-gallery-metro .pa-gallery-image' => 'object-fit: {{VALUE}}'
97
],
98
'condition' => [
99
- 'premium_gallery_img_size_select' => 'metro'
100
]
101
]
102
);
82
'default' => 'fitRows',
83
]
84
);
85
+
86
+ $this->add_responsive_control('pemium_gallery_even_img_height',
87
+ [
88
+ 'label' => __( 'Maximum Height', 'premium-addons-for-elementor' ),
89
+ 'label_block' => true,
90
+ 'size_units' => ['px', 'em', 'vh'],
91
+ 'description' => __('You may need to click `Apply` button after settings this option', 'premium-addons-for-elementor'),
92
+ 'type' => Controls_Manager::SLIDER,
93
+ 'range' => [
94
+ 'px' => [
95
+ 'min' => 1,
96
+ 'max' => 500,
97
+ ],
98
+ 'em' => [
99
+ 'min' => 1,
100
+ 'max' => 50,
101
+ ],
102
+ ],
103
+ 'render_type' => 'template',
104
+ 'condition' => [
105
+ 'premium_gallery_img_size_select' => 'fitRows'
106
+ ],
107
+ 'selectors' => [
108
+ '{{WRAPPER}} .premium-gallery-item .pa-gallery-image' => 'max-height: {{SIZE}}{{UNIT}}'
109
+ ]
110
+ ]
111
+ );
112
113
+ $this->add_control('premium_gallery_images_fit',
114
[
115
'label' => __('Images Fit', 'premium-addons-for-elementor'),
116
'type' => Controls_Manager::SELECT,
120
],
121
'default' => 'fill',
122
'selectors' => [
123
+ '{{WRAPPER}} .premium-gallery-item .pa-gallery-image' => 'object-fit: {{VALUE}}'
124
],
125
'condition' => [
126
+ 'premium_gallery_img_size_select' => [ 'metro', 'fitRows' ]
127
]
128
]
129
);