Premium Addons for Elementor - Version 2.5.6

Version Description

  • Tweak: Added marker clustering and latitude/longitude finder options to Premium Maps widget.
  • Tweak: Added button option to Premium Banner widget.
  • Fixed: 'Undefined index: premium_dual_header_second_header_tag' in Premium Dual Heading widget.
Download this release

Release Info

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

Code changes from version 2.5.5 to 2.5.6

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.5.4</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.5.5</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/css/premium-addons.css CHANGED
@@ -28,6 +28,9 @@
28
-moz-box-sizing: border-box;
29
box-sizing: border-box;
30
}
31
.premium_addons-banner-ib,
32
.wpb_column>.wpb_wrapper .premium_addons-banner-ib {
33
margin-bottom: 0px
@@ -55,14 +58,14 @@
55
box-sizing: border-box;
56
}
57
.premium_addons-banner-ib .premium_addons-banner-ib-desc,
58
- .premium_addons-banner-ib a {
59
position: absolute;
60
top: 0;
61
left: 0;
62
width: 100%;
63
height: 100%;
64
}
65
- .premium_addons-banner-ib a {
66
z-index: 1000;
67
text-indent: 200%;
68
white-space: nowrap;
@@ -97,7 +100,8 @@
97
text-align: left;
98
}
99
.premium_banner_animation1 .premium_addons-banner-ib-content,
100
- .premium_banner_animation1 .premium_addons-banner-ib-title {
101
-webkit-transform: translate3d(0, 40px, 0);
102
transform: translate3d(0, 40px, 0);
103
-webkit-transition-delay: .05s;
@@ -111,7 +115,8 @@
111
transition: transform .35s;
112
transition: transform .35s, -webkit-transform .35s;
113
}
114
- .premium_banner_animation1 .premium_addons-banner-ib-content {
115
margin-top: 10px;
116
opacity: 0;
117
-webkit-transition: opacity .2s, -webkit-transform .35s;
@@ -120,7 +125,9 @@
120
transition: opacity .2s, transform .35s, -webkit-transform .35s;
121
}
122
.premium_banner_animation1:hover .premium_addons-banner-ib-content,
123
- .premium_banner_animation1.active .premium_addons-banner-ib-content {
124
opacity: 1;
125
-webkit-transition-delay: .05s;
126
transition-delay: .05s;
@@ -129,6 +136,8 @@
129
}
130
.premium_banner_animation1:hover .premium_addons-banner-ib-content,
131
.premium_banner_animation1.active .premium_addons-banner-ib-content,
132
.premium_banner_animation1:hover .premium_addons-banner-ib-title,
133
.premium_banner_animation1.active .premium_addons-banner-ib-title,
134
.premium_banner_animation1:hover img,
@@ -197,13 +206,15 @@
197
transform: translate3d(0, -50%, 0);
198
}
199
.premium_banner_animation2 .premium_addons-banner-ib-content,
200
.premium_banner_animation2 .premium_addons-banner-ib-desc::before {
201
-webkit-transition: opacity .35s, -webkit-transform .35s;
202
transition: opacity .35s, -webkit-transform .35s;
203
transition: opacity .35s, transform .35s;
204
transition: opacity .35s, transform .35s, -webkit-transform .35s;
205
}
206
- .premium_banner_animation2 .premium_addons-banner-ib-content {
207
position: absolute;
208
bottom: 0;
209
left: 0;
@@ -222,11 +233,18 @@
222
}
223
.premium_banner_animation2:hover .premium_addons-banner-ib-content,
224
.premium_banner_animation2.active .premium_addons-banner-ib-content,
225
.premium_banner_animation2:hover .premium_addons-banner-ib-desc::before,
226
.premium_banner_animation2.active .premium_addons-banner-ib-desc::before {
227
opacity: 1;
228
-webkit-transform: translate3d(0, 0, 0);
229
- transform: translate3d(0, 0, 0);;
230
}
231
.premium_banner_animation3 .premium_addons-banner-ib-title {
232
position: absolute;
@@ -308,7 +326,8 @@
308
transition: transform .35s;
309
transition: transform .35s, -webkit-transform .35s;
310
}
311
- .premium_banner_animation4 .premium_addons-banner-ib-content {
312
padding: 10px 30px;
313
opacity: 0;
314
overflow: hidden;
@@ -326,6 +345,7 @@
326
transform: translate3d(-30px, 0, 0) scale(1.1);
327
}
328
.premium_banner_animation4 .premium_addons-banner-ib-content,
329
.premium_banner_animation4 .premium_addons-banner-ib-desc::after,
330
.premium_banner_animation4 .premium_addons-banner-ib-desc::before,
331
.premium_banner_animation4 img {
@@ -350,6 +370,8 @@
350
}
351
.premium_banner_animation4:hover .premium_addons-banner-ib-content,
352
.premium_banner_animation4.active .premium_addons-banner-ib-content,
353
.premium_banner_animation4:hover .premium_addons-banner-ib-title,
354
.premium_banner_animation4.active .premium_addons-banner-ib-title {
355
opacity: 1;
@@ -388,7 +410,8 @@
388
-webkit-transition: opacity .35s;
389
transition: opacity .35s;
390
}
391
- .premium_banner_animation5 .premium_addons-banner-ib-title {
392
-webkit-transition: -webkit-transform .35s;
393
transition: -webkit-transform .35s;
394
transition: transform .35s;
@@ -404,15 +427,17 @@
404
.premium_banner_animation5.active .premium_addons-banner-ib-content,
405
.premium_banner_animation5:hover .premium_addons-banner-ib-content *,
406
.premium_banner_animation5.active .premium_addons-banner-ib-content * {
407
- opacity: 1!important;
408
- z-index: 99!important;
409
- -webkit-backface-visibility: hidden!important;
410
- backface-visibility: hidden!important;
411
}
412
.premium_banner_animation5:hover .premium_addons-banner-ib-desc,
413
.premium_banner_animation5.active .premium_addons-banner-ib-desc,
414
.premium_banner_animation5:hover .premium_addons-banner-ib-title,
415
- .premium_banner_animation5.active .premium_addons-banner-ib-title {
416
-webkit-transform: translateY(0);
417
-ms-transform: translateY(0);
418
transform: translateY(0);
@@ -491,6 +516,7 @@
491
transform: translate3d(0, 100%, 0);
492
}
493
.premium_banner_animation6 .premium_addons-banner-ib-content,
494
.premium_banner_animation6 .premium_addons-banner-ib-desc::before {
495
opacity: 0;
496
-webkit-transition: opacity .35s, -webkit-transform .35s;
@@ -501,6 +527,9 @@
501
-ms-transform: scale(0);
502
transform: scale(0);
503
}
504
.premium_banner_animation6:hover .premium_addons-banner-ib-title,
505
.premium_banner_animation6.active .premium_addons-banner-ib-title {
506
-webkit-transform: translate3d(0, 0, 0);
@@ -508,6 +537,8 @@
508
}
509
.premium_banner_animation6:hover .premium_addons-banner-ib-content,
510
.premium_banner_animation6.active .premium_addons-banner-ib-content,
511
.premium_banner_animation6:hover .premium_addons-banner-ib-desc::before,
512
.premium_banner_animation6.active .premium_addons-banner-ib-desc::before {
513
opacity: 1;
@@ -693,7 +724,8 @@
693
-webkit-transform: translate3d(0, 0, 0);
694
transform: translate3d(0, 0, 0);
695
}
696
- .premium_banner_animation13 .premium_addons-banner-ib-content {
697
padding: 15px 0;
698
opacity: 0;
699
-webkit-transition: opacity .35s, -webkit-transform .35s;
@@ -704,7 +736,9 @@
704
transform: translate3d(100%, 0, 0);
705
}
706
.premium_banner_animation13:hover .premium_addons-banner-ib-content,
707
- .premium_banner_animation13.active .premium_addons-banner-ib-content {
708
opacity: 1;
709
-webkit-transform: translate3d(0, 0, 0);
710
transform: translate3d(0, 0, 0);
28
-moz-box-sizing: border-box;
29
box-sizing: border-box;
30
}
31
+ .premium_addons-banner-ib-desc .premium-banner-read-more {
32
+ z-index: 100;
33
+ }
34
.premium_addons-banner-ib,
35
.wpb_column>.wpb_wrapper .premium_addons-banner-ib {
36
margin-bottom: 0px
58
box-sizing: border-box;
59
}
60
.premium_addons-banner-ib .premium_addons-banner-ib-desc,
61
+ .premium_addons-banner-ib .premium_addons-banner-ib-link {
62
position: absolute;
63
top: 0;
64
left: 0;
65
width: 100%;
66
height: 100%;
67
}
68
+ .premium_addons-banner-ib .premium_addons-banner-ib-link {
69
z-index: 1000;
70
text-indent: 200%;
71
white-space: nowrap;
100
text-align: left;
101
}
102
.premium_banner_animation1 .premium_addons-banner-ib-content,
103
+ .premium_banner_animation1 .premium_addons-banner-ib-title,
104
+ .premium_banner_animation1 .premium-banner-read-more {
105
-webkit-transform: translate3d(0, 40px, 0);
106
transform: translate3d(0, 40px, 0);
107
-webkit-transition-delay: .05s;
115
transition: transform .35s;
116
transition: transform .35s, -webkit-transform .35s;
117
}
118
+ .premium_banner_animation1 .premium_addons-banner-ib-content,
119
+ .premium_banner_animation1 .premium-banner-read-more {
120
margin-top: 10px;
121
opacity: 0;
122
-webkit-transition: opacity .2s, -webkit-transform .35s;
125
transition: opacity .2s, transform .35s, -webkit-transform .35s;
126
}
127
.premium_banner_animation1:hover .premium_addons-banner-ib-content,
128
+ .premium_banner_animation1.active .premium_addons-banner-ib-content,
129
+ .premium_banner_animation1:hover .premium-banner-read-more,
130
+ .premium_banner_animation1.active .premium-banner-read-more {
131
opacity: 1;
132
-webkit-transition-delay: .05s;
133
transition-delay: .05s;
136
}
137
.premium_banner_animation1:hover .premium_addons-banner-ib-content,
138
.premium_banner_animation1.active .premium_addons-banner-ib-content,
139
+ .premium_banner_animation1:hover .premium-banner-read-more,
140
+ .premium_banner_animation1.active .premium-banner-read-more,
141
.premium_banner_animation1:hover .premium_addons-banner-ib-title,
142
.premium_banner_animation1.active .premium_addons-banner-ib-title,
143
.premium_banner_animation1:hover img,
206
transform: translate3d(0, -50%, 0);
207
}
208
.premium_banner_animation2 .premium_addons-banner-ib-content,
209
+ .premium_banner_animation2 .premium-banner-read-more,
210
.premium_banner_animation2 .premium_addons-banner-ib-desc::before {
211
-webkit-transition: opacity .35s, -webkit-transform .35s;
212
transition: opacity .35s, -webkit-transform .35s;
213
transition: opacity .35s, transform .35s;
214
transition: opacity .35s, transform .35s, -webkit-transform .35s;
215
}
216
+ .premium_banner_animation2 .premium_addons-banner-ib-content,
217
+ .premium_banner_animation2 .premium-banner-read-more {
218
position: absolute;
219
bottom: 0;
220
left: 0;
233
}
234
.premium_banner_animation2:hover .premium_addons-banner-ib-content,
235
.premium_banner_animation2.active .premium_addons-banner-ib-content,
236
+ .premium_banner_animation2:hover .premium-banner-read-more,
237
+ .premium_banner_animation2.active .premium-banner-read-more,
238
.premium_banner_animation2:hover .premium_addons-banner-ib-desc::before,
239
.premium_banner_animation2.active .premium_addons-banner-ib-desc::before {
240
opacity: 1;
241
-webkit-transform: translate3d(0, 0, 0);
242
+ transform: translate3d(0, 0, 0);
243
+ }
244
+ .premium_banner_animation2:hover .premium_addons-banner-ib-content,
245
+ .premium_banner_animation2.active .premium_addons-banner-ib-content {
246
+ -webkit-transform: translate3d(0, -30px, 0);
247
+ transform: translate3d(0, -30px, 0);
248
}
249
.premium_banner_animation3 .premium_addons-banner-ib-title {
250
position: absolute;
326
transition: transform .35s;
327
transition: transform .35s, -webkit-transform .35s;
328
}
329
+ .premium_banner_animation4 .premium_addons-banner-ib-content,
330
+ .premium_banner_animation4 .premium-banner-read-more {
331
padding: 10px 30px;
332
opacity: 0;
333
overflow: hidden;
345
transform: translate3d(-30px, 0, 0) scale(1.1);
346
}
347
.premium_banner_animation4 .premium_addons-banner-ib-content,
348
+ .premium_banner_animation4 .premium-banner-read-more,
349
.premium_banner_animation4 .premium_addons-banner-ib-desc::after,
350
.premium_banner_animation4 .premium_addons-banner-ib-desc::before,
351
.premium_banner_animation4 img {
370
}
371
.premium_banner_animation4:hover .premium_addons-banner-ib-content,
372
.premium_banner_animation4.active .premium_addons-banner-ib-content,
373
+ .premium_banner_animation4:hover .premium-banner-read-more,
374
+ .premium_banner_animation4.active .premium-banner-read-more,
375
.premium_banner_animation4:hover .premium_addons-banner-ib-title,
376
.premium_banner_animation4.active .premium_addons-banner-ib-title {
377
opacity: 1;
410
-webkit-transition: opacity .35s;
411
transition: opacity .35s;
412
}
413
+ .premium_banner_animation5 .premium_addons-banner-ib-title,
414
+ .premium_banner_animation5 .premium-banner-read-more {
415
-webkit-transition: -webkit-transform .35s;
416
transition: -webkit-transform .35s;
417
transition: transform .35s;
427
.premium_banner_animation5.active .premium_addons-banner-ib-content,
428
.premium_banner_animation5:hover .premium_addons-banner-ib-content *,
429
.premium_banner_animation5.active .premium_addons-banner-ib-content * {
430
+ opacity: 1 !important;
431
+ z-index: 99 !important;
432
+ -webkit-backface-visibility: hidden !important;
433
+ backface-visibility: hidden !important;
434
}
435
.premium_banner_animation5:hover .premium_addons-banner-ib-desc,
436
.premium_banner_animation5.active .premium_addons-banner-ib-desc,
437
.premium_banner_animation5:hover .premium_addons-banner-ib-title,
438
+ .premium_banner_animation5.active .premium_addons-banner-ib-title,
439
+ .premium_banner_animation5:hover .premium-banner-read-more,
440
+ .premium_banner_animation5.active .premium-banner-read-more {
441
-webkit-transform: translateY(0);
442
-ms-transform: translateY(0);
443
transform: translateY(0);
516
transform: translate3d(0, 100%, 0);
517
}
518
.premium_banner_animation6 .premium_addons-banner-ib-content,
519
+ .premium_banner_animation6 .premium-banner-read-more,
520
.premium_banner_animation6 .premium_addons-banner-ib-desc::before {
521
opacity: 0;
522
-webkit-transition: opacity .35s, -webkit-transform .35s;
527
-ms-transform: scale(0);
528
transform: scale(0);
529
}
530
+ .premium_banner_animation6 .premium-banner-read-more {
531
+ margin-top: 10px;
532
+ }
533
.premium_banner_animation6:hover .premium_addons-banner-ib-title,
534
.premium_banner_animation6.active .premium_addons-banner-ib-title {
535
-webkit-transform: translate3d(0, 0, 0);
537
}
538
.premium_banner_animation6:hover .premium_addons-banner-ib-content,
539
.premium_banner_animation6.active .premium_addons-banner-ib-content,
540
+ .premium_banner_animation6:hover .premium-banner-read-more,
541
+ .premium_banner_animation6.active .premium-banner-read-more,
542
.premium_banner_animation6:hover .premium_addons-banner-ib-desc::before,
543
.premium_banner_animation6.active .premium_addons-banner-ib-desc::before {
544
opacity: 1;
724
-webkit-transform: translate3d(0, 0, 0);
725
transform: translate3d(0, 0, 0);
726
}
727
+ .premium_banner_animation13 .premium_addons-banner-ib-content,
728
+ .premium_banner_animation13 .premium-banner-read-more {
729
padding: 15px 0;
730
opacity: 0;
731
-webkit-transition: opacity .35s, -webkit-transform .35s;
736
transform: translate3d(100%, 0, 0);
737
}
738
.premium_banner_animation13:hover .premium_addons-banner-ib-content,
739
+ .premium_banner_animation13.active .premium_addons-banner-ib-content,
740
+ .premium_banner_animation13:hover .premium-banner-read-more,
741
+ .premium_banner_animation13.active .premium-banner-read-more {
742
opacity: 1;
743
-webkit-transform: translate3d(0, 0, 0);
744
transform: translate3d(0, 0, 0);
assets/js/premium-maps-address.js ADDED
@@ -0,0 +1,39 @@
1
+ function getAddress(ob) {
2
+ var address = $(ob).parent().find('input').attr('value');
3
+ if(address!=''){
4
+ geocoder = new google.maps.Geocoder();
5
+ geocoder.geocode({ 'address': address }, function(results, status) {
6
+ if (status == google.maps.GeocoderStatus.OK) {
7
+ var output = $(ob).parent().find('.premium-address-result'),
8
+ latiude = results[0].geometry.location.lat(),
9
+ longitude = results[0].geometry.location.lng();
10
+
11
+ $(output).html("Latitude: " + latiude + "<br>Longitude: " + longitude + "<br>(Copy and Paste your Latitude & Longitude value below)");
12
+ $(ob).parents('.elementor-control-premium_map_notice').nextAll('.elementor-control-premium_maps_center_lat').find("input").val(latiude).trigger("input");
13
+ $(ob).parents('.elementor-control-premium_map_notice').nextAll('.elementor-control-premium_maps_center_long').find("input").val(longitude).trigger("input");
14
+ } else {
15
+ alert("Geocode was not successful for the following reason: " + status);
16
+ }
17
+ });
18
+ }
19
+ }
20
+
21
+ function getPinAddress(ob) {
22
+ var address = $(ob).parent().find('input').attr('value');
23
+ if(address!=''){
24
+ geocoder = new google.maps.Geocoder();
25
+ geocoder.geocode({ 'address': address }, function(results, status) {
26
+ if (status == google.maps.GeocoderStatus.OK) {
27
+ var output = $(ob).parent().find('.premium-address-result'),
28
+ latiude = results[0].geometry.location.lat(),
29
+ longitude = results[0].geometry.location.lng();
30
+
31
+ $(output).html("Latitude: " + latiude + "<br>Longitude: " + longitude + "<br>(Copy and Paste your Latitude & Longitude value below)");
32
+ $(ob).parents('.elementor-control-premium_map_pin_notice').nextAll('.elementor-control-map_latitude').find("input").val(latiude).trigger("input");
33
+ $(ob).parents('.elementor-control-premium_map_pin_notice').nextAll('.elementor-control-map_longitude').find("input").val(longitude).trigger("input");
34
+ } else {
35
+ alert("Geocode was not successful for the following reason: " + status);
36
+ }
37
+ });
38
+ }
39
+ }
assets/js/premium-maps.js CHANGED
@@ -8,7 +8,11 @@ jQuery(window).on('elementor/frontend/init',function(){
8
9
var mapStyle = mapElement.data('style');
10
11
premiumMap = newMap(mapElement,mapSettings,mapStyle);
12
13
function newMap(map,settings,mapStyle){
14
@@ -36,8 +40,6 @@ jQuery(window).on('elementor/frontend/init',function(){
36
37
var markers = map.find(".premium-pin");
38
39
- // var labels = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
40
-
41
var map = new google.maps.Map( map[0], args);
42
43
map.markers = [];
@@ -45,13 +47,13 @@ jQuery(window).on('elementor/frontend/init',function(){
45
markers.each(function(){
46
add_marker( jQuery(this), map, autoOpen, hoverOpen, hoverClose );
47
});
48
- // var markerCluster = new MarkerClusterer(map, markers,
49
- // {imagePath: 'https://developers.google.com/maps/documentation/javascript/examples/markerclusterer/m'});
50
return map;
51
}
52
53
function add_marker( pin, map ,autoOpen, hoverOpen, hoverClose ) {
54
-
55
var latlng = new google.maps.LatLng( pin.attr('data-lat'), pin.attr('data-lng') );
56
57
icon_img = pin.attr('data-icon');
@@ -68,10 +70,11 @@ jQuery(window).on('elementor/frontend/init',function(){
68
icon : icon
69
});
70
71
-
72
// add to array
73
map.markers.push( marker );
74
-
75
// if marker contains HTML, add it to an infoWindow
76
77
if( pin.find('.premium-maps-info-title').html() || pin.find('.premium-maps-info-desc').html() )
@@ -98,6 +101,14 @@ jQuery(window).on('elementor/frontend/init',function(){
98
infowindow.open( map, marker );
99
});
100
}
101
}
102
});
103
});
8
9
var mapStyle = mapElement.data('style');
10
11
+ var premiumMapMarkers = [];
12
+
13
premiumMap = newMap(mapElement,mapSettings,mapStyle);
14
+
15
+ var markerCluster = JSON.parse(mapSettings['cluster']);
16
17
function newMap(map,settings,mapStyle){
18
40
41
var markers = map.find(".premium-pin");
42
43
var map = new google.maps.Map( map[0], args);
44
45
map.markers = [];
47
markers.each(function(){
48
add_marker( jQuery(this), map, autoOpen, hoverOpen, hoverClose );
49
});
50
+
51
return map;
52
}
53
54
+
55
function add_marker( pin, map ,autoOpen, hoverOpen, hoverClose ) {
56
+
57
var latlng = new google.maps.LatLng( pin.attr('data-lat'), pin.attr('data-lng') );
58
59
icon_img = pin.attr('data-icon');
70
icon : icon
71
});
72
73
// add to array
74
map.markers.push( marker );
75
+
76
+ premiumMapMarkers.push( marker );
77
+
78
// if marker contains HTML, add it to an infoWindow
79
80
if( pin.find('.premium-maps-info-title').html() || pin.find('.premium-maps-info-desc').html() )
101
infowindow.open( map, marker );
102
});
103
}
104
+
105
}
106
+
107
+ if(markerCluster){
108
+ var markerCluster = new MarkerClusterer(premiumMap, premiumMapMarkers,
109
+ {imagePath: 'https://developers.google.com/maps/documentation/javascript/examples/markerclusterer/m'});
110
+ }
111
+
112
});
113
+
114
});
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.5.5
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.5.5');
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.5.4');
31
32
/**
33
* Loading text domain, Including required files
@@ -113,6 +113,7 @@ class premium_Addon_Elementor {
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'));
115
add_action('elementor/frontend/after_register_styles', array($this, 'premium_addons_register_styles'));
116
add_action('elementor/frontend/after_enqueue_styles', array($this, 'premium_addons_enqueue_styles'));
117
add_action('wp_enqueue_scripts', array($this, 'premium_maps_required_script'));
118
add_action('admin_post_premium_addons_rollback', 'post_premium_addons_rollback');
@@ -275,6 +276,18 @@ class premium_Addon_Elementor {
275
}
276
}
277
278
/**
279
* Load only the required javascript files
280
*/
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.5.6
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.5.6');
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.5.5');
31
32
/**
33
* Loading text domain, Including required files
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'));
115
add_action('elementor/frontend/after_register_styles', array($this, 'premium_addons_register_styles'));
116
+ add_action('elementor/editor/before_enqueue_scripts', array($this,'premium_maps_get_address'));
117
add_action('elementor/frontend/after_enqueue_styles', array($this, 'premium_addons_enqueue_styles'));
118
add_action('wp_enqueue_scripts', array($this, 'premium_maps_required_script'));
119
add_action('admin_post_premium_addons_rollback', 'post_premium_addons_rollback');
276
}
277
}
278
279
+ public function premium_maps_get_address() {
280
+
281
+ $map_enabled = get_option('pa_save_settings')['premium-maps'];
282
+
283
+ $premium_maps_enabled = isset( $map_enabled ) ? $map_enabled : 1;
284
+
285
+ if( $premium_maps_enabled ) {
286
+ wp_enqueue_script('premium-maps-address', PREMIUM_ADDONS_URL . 'assets/js/premium-maps-address.js', array('jquery'), PREMIUM_ADDONS_VERSION, true);
287
+ }
288
+
289
+ }
290
+
291
/**
292
* Load only the required javascript files
293
*/
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.5.5
9
License: GPL v3.0
10
License URI: https://opensource.org/licenses/GPL-3.0
11
@@ -137,6 +137,12 @@ Premium Addons for Elementor is 100% Ads Free, Ads can only be detected from You
137
138
== Changelog ==
139
140
= 2.5.5 =
141
142
- Tweak: Enhanced HTML structure for Dual Heading widget.
5
Requires at least: 4.5
6
Tested up to: 4.9.8
7
Requires PHP: 5.4
8
+ Stable tag: 2.5.6
9
License: GPL v3.0
10
License URI: https://opensource.org/licenses/GPL-3.0
11
137
138
== Changelog ==
139
140
+ = 2.5.6 =
141
+
142
+ - Tweak: Added marker clustering and latitude/longitude finder options to Premium Maps widget.
143
+ - Tweak: Added button option to Premium Banner widget.
144
+ - Fixed: 'Undefined index: premium_dual_header_second_header_tag' in Premium Dual Heading widget.
145
+
146
= 2.5.5 =
147
148
- Tweak: Enhanced HTML structure for Dual Heading widget.
widgets/premium-banner.php CHANGED
@@ -301,6 +301,85 @@ class Premium_Banner_Widget extends Widget_Base {
301
]
302
);
303
304
$this->add_control('premium_banner_title_text_align',
305
[
306
'label' => esc_html__('Alignment', 'premium-addons-for-elementor'),
@@ -319,8 +398,10 @@ class Premium_Banner_Widget extends Widget_Base {
319
'icon' => 'fa fa-align-right'
320
],
321
],
322
'selectors' => [
323
- '{{WRAPPER}} .premium_addons-banner-ib-title, {{WRAPPER}} .premium_addons-banner-ib-content' => 'text-align: {{VALUE}};',
324
]
325
]
326
);
@@ -528,6 +609,119 @@ class Premium_Banner_Widget extends Widget_Base {
528
);
529
530
$this->end_controls_section();
531
532
}
533
@@ -555,7 +749,10 @@ class Premium_Banner_Widget extends Widget_Base {
555
$full_class = $animation_class.$hover_class.$extra_class.$active;
556
$min_size = $settings['premium_banner_min_range'].'px';
557
$max_size = $settings['premium_banner_max_range'].'px';
558
-
559
ob_start();
560
?>
561
<div class="premium_banner" id="premium-banner-<?php echo esc_attr($this->get_id()); ?>">
@@ -569,11 +766,18 @@ class Premium_Banner_Widget extends Widget_Base {
569
</div>
570
<?php endif; ?>
571
<?php endif; ?>
572
- <div class="premium_addons-banner-ib-desc" style="">
573
<?php echo $full_title; ?>
574
<div class="premium_addons-banner-ib-content premium_banner_content">
575
<div <?php echo $this->get_render_attribute_string('premium_banner_description'); ?>><?php echo $settings[ 'premium_banner_description' ]; ?></div>
576
</div>
577
</div>
578
<?php
579
if( $settings['premium_banner_link_url_switch'] == 'yes' && (!empty( $settings['premium_banner_image_custom_link']['url'] ) || !empty($settings['premium_banner_image_existing_page_link'] )) ) {
301
]
302
);
303
304
+ $this->add_control(
305
+ 'premium_banner_link_switcher',
306
+ [
307
+ 'label' => esc_html__('Button', 'premium-addons-for-elementor'),
308
+ 'type' => Controls_Manager::SWITCHER,
309
+ 'condition' => [
310
+ 'premium_banner_link_url_switch!' => 'yes'
311
+ ]
312
+ ]
313
+ );
314
+
315
+
316
+ $this->add_control(
317
+ 'premium_banner_more_text',
318
+ [
319
+ 'label' => esc_html__('Text','premium-addons-for-elementor'),
320
+ 'type' => Controls_Manager::TEXT,
321
+ 'dynamic' => [ 'active' => true ],
322
+ 'default' => 'Click Here',
323
+ 'condition' => [
324
+ 'premium_banner_link_switcher' => 'yes',
325
+ 'premium_banner_link_url_switch!' => 'yes'
326
+ ]
327
+ ]
328
+ );
329
+
330
+ $this->add_control(
331
+ 'premium_banner_link_selection',
332
+ [
333
+ 'label' => esc_html__('Link Type', 'premium-addons-for-elementor'),
334
+ 'type' => Controls_Manager::SELECT,
335
+ 'options' => [
336
+ 'url' => esc_html__('URL', 'premium-addons-for-elementor'),
337
+ 'link' => esc_html__('Existing Page', 'premium-addons-for-elementor'),
338
+ ],
339
+ 'default' => 'url',
340
+ 'label_block' => true,
341
+ 'condition' => [
342
+ 'premium_banner_link_switcher' => 'yes',
343
+ 'premium_banner_link_url_switch!' => 'yes'
344
+ ]
345
+ ]
346
+ );
347
+
348
+ $this->add_control(
349
+ 'premium_banner_link',
350
+ [
351
+ 'label' => esc_html__('Link', 'premium-addons-for-elementor'),
352
+ 'type' => Controls_Manager::URL,
353
+ 'default' => [
354
+ 'url' => '#',
355
+ ],
356
+ 'placeholder' => 'https://premiumaddons.com/',
357
+ 'label_block' => true,
358
+ 'condition' => [
359
+ 'premium_banner_link_selection' => 'url',
360
+ 'premium_banner_link_switcher' => 'yes',
361
+ 'premium_banner_link_url_switch!' => 'yes'
362
+ ]
363
+ ]
364
+ );
365
+
366
+ $this->add_control(
367
+ 'premium_banner_existing_link',
368
+ [
369
+ 'label' => esc_html__('Existing Page', 'premium-addons-for-elementor'),
370
+ 'type' => Controls_Manager::SELECT2,
371
+ 'options' => $this->getTemplateInstance()->get_all_post(),
372
+ 'multiple' => false,
373
+ 'condition' => [
374
+ 'premium_banner_link_selection' => 'link',
375
+ 'premium_banner_link_switcher' => 'yes',
376
+ 'premium_banner_link_url_switch!' => 'yes'
377
+ ],
378
+ 'label_block' => true,
379
+ ]
380
+ );
381
+
382
+
383
$this->add_control('premium_banner_title_text_align',
384
[
385
'label' => esc_html__('Alignment', 'premium-addons-for-elementor'),
398
'icon' => 'fa fa-align-right'
399
],
400
],
401
+ 'default' => 'left',
402
+ 'toggle' => false,
403
'selectors' => [
404
+ '{{WRAPPER}} .premium_addons-banner-ib-title, {{WRAPPER}} .premium_addons-banner-ib-content, {{WRAPPER}} .premium-banner-read-more' => 'text-align: {{VALUE}};',
405
]
406
]
407
);
609
);
610
611
$this->end_controls_section();
612
+
613
+ $this->start_controls_section(
614
+ 'premium_banner_styles_of_button',
615
+ [
616
+ 'label' => esc_html__( 'Button', 'premium-addons-for-elementor' ),
617
+ 'tab' => Controls_Manager::TAB_STYLE,
618
+ 'condition' => [
619
+ 'premium_banner_link_switcher' => 'yes',
620
+ 'premium_banner_link_url_switch!' => 'yes'
621
+ ]
622
+ ]
623
+ );
624
+
625
+ $this->add_control(
626
+ 'premium_banner_color_of_button',
627
+ [
628
+ 'label' => esc_html__( 'Color', 'premium-addons-for-elementor' ),
629
+ 'type' => Controls_Manager::COLOR,
630
+ 'scheme' => [
631
+ 'type' => Scheme_Color::get_type(),
632
+ 'value' => Scheme_Color::COLOR_3,
633
+ ],
634
+ 'selectors' => [
635
+ '{{WRAPPER}} .premium_banner .premium-banner-link' => 'color: {{VALUE}};'
636
+ ],
637
+ ]
638
+ );
639
+
640
+ $this->add_control(
641
+ 'premium_banner_hover_color_of_button',
642
+ [
643
+ 'label' => esc_html__( 'Hover Color', 'premium-addons-for-elementor' ),
644
+ 'type' => Controls_Manager::COLOR,
645
+ 'scheme' => [
646
+ 'type' => Scheme_Color::get_type(),
647
+ 'value' => Scheme_Color::COLOR_3,
648
+ ],
649
+ 'selectors' => [
650
+ '{{WRAPPER}} .premium_banner .premium-banner-link:hover' => 'color: {{VALUE}};'
651
+ ],
652
+ ]
653
+ );
654
+
655
+ $this->add_group_control(
656
+ Group_Control_Typography::get_type(),
657
+ [
658
+ 'name' => 'premium_banner_button_typhography',
659
+ 'scheme' => Scheme_Typography::TYPOGRAPHY_3,
660
+ 'selector' => '{{WRAPPER}} .premium_banner .premium-banner-link',
661
+ ]
662
+ );
663
+
664
+ $this->add_control(
665
+ 'premium_banner_backcolor_of_button',
666
+ [
667
+ 'label' => esc_html__( 'Background Color', 'premium-addons-for-elementor' ),
668
+ 'type' => Controls_Manager::COLOR,
669
+ 'selectors' => [
670
+ '{{WRAPPER}} .premium_banner .premium-banner-link' => 'background-color: {{VALUE}};'
671
+ ],
672
+ ]
673
+ );
674
+
675
+ $this->add_control(
676
+ 'premium_banner_hover_backcolor_of_buttin',
677
+ [
678
+ 'label' => esc_html__( 'Hover Background Color', 'premium-addons-for-elementor' ),
679
+ 'type' => Controls_Manager::COLOR,
680
+ 'selectors' => [
681
+ '{{WRAPPER}} .premium_banner .premium-banner-link:hover' => 'background-color: {{VALUE}};'
682
+ ],
683
+ ]
684
+ );
685
+
686
+ $this->add_group_control(
687
+ Group_Control_Border::get_type(),
688
+ [
689
+ 'name' => 'premium_banner_button_border',
690
+ 'selector' => '{{WRAPPER}} .premium_banner .premium-banner-link',
691
+ ]
692
+ );
693
+
694
+ $this->add_control('premium_banner_button_border_radius',
695
+ [
696
+ 'label' => esc_html__('Border Radius', 'premium-addons-for-elementor'),
697
+ 'type' => Controls_Manager::SLIDER,
698
+ 'size_units' => ['px', '%' ,'em'],
699
+ 'selectors' => [
700
+ '{{WRAPPER}} .premium_banner .premium-banner-link' => 'border-radius: {{SIZE}}{{UNIT}};'
701
+ ]
702
+ ]
703
+ );
704
+
705
+ $this->add_group_control(
706
+ Group_Control_Text_Shadow::get_type(),
707
+ [
708
+ 'label' => esc_html__('Shadow','premium-addons-for-elementor'),
709
+ 'name' => 'premium_banner_button_shadow',
710
+ 'selector' => '{{WRAPPER}} .premium_banner .premium-banner-link',
711
+ ]
712
+ );
713
+
714
+ $this->add_responsive_control('premium_banner_button_padding',
715
+ [
716
+ 'label' => esc_html__('Padding', 'premium-addons-for-elementor'),
717
+ 'type' => Controls_Manager::DIMENSIONS,
718
+ 'size_units' => ['px', 'em', '%'],
719
+ 'selectors' => [
720
+ '{{WRAPPER}} .premium_banner .premium-banner-link' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}};'
721
+ ]
722
+ ]);
723
+
724
+ $this->end_controls_section();
725
726
}
727
749
$full_class = $animation_class.$hover_class.$extra_class.$active;
750
$min_size = $settings['premium_banner_min_range'].'px';
751
$max_size = $settings['premium_banner_max_range'].'px';
752
+
753
+
754
+ $banner_url = 'url' == $settings['premium_banner_link_selection'] ? $settings['premium_banner_link']['url'] : get_permalink($settings['premium_banner_existing_link']);
755
+
756
ob_start();
757
?>
758
<div class="premium_banner" id="premium-banner-<?php echo esc_attr($this->get_id()); ?>">
766
</div>
767
<?php endif; ?>
768
<?php endif; ?>
769
+ <div class="premium_addons-banner-ib-desc">
770
<?php echo $full_title; ?>
771
<div class="premium_addons-banner-ib-content premium_banner_content">
772
<div <?php echo $this->get_render_attribute_string('premium_banner_description'); ?>><?php echo $settings[ 'premium_banner_description' ]; ?></div>
773
</div>
774
+ <?php if( 'yes' == $settings['premium_banner_link_switcher'] && !empty( $settings['premium_banner_more_text'] ) ) : ?>
775
+
776
+ <div class ="premium-banner-read-more">
777
+ <a class = "premium-banner-link" <?php if( !empty( $banner_url ) ) : ?> href="<?php echo esc_url( $banner_url ); ?>"<?php endif;?><?php if( !empty( $settings['premium_banner_link']['is_external'] ) ) : ?> target="_blank" <?php endif; ?><?php if( !empty($settings['premium_banner_link']['nofollow'] ) ) : ?> rel="nofollow" <?php endif; ?>><?php echo esc_html( $settings['premium_banner_more_text'] ); ?></a>
778
+ </div>
779
+
780
+ <?php endif; ?>
781
</div>
782
<?php
783
if( $settings['premium_banner_link_url_switch'] == 'yes' && (!empty( $settings['premium_banner_image_custom_link']['url'] ) || !empty($settings['premium_banner_image_existing_page_link'] )) ) {
widgets/premium-dual-header.php CHANGED
@@ -487,18 +487,27 @@ class Premium_Dual_Header_Widget extends Widget_Base
487
{
488
// get our input from the widget settings.
489
$settings = $this->get_settings_for_display();
490
$this->add_inline_editing_attributes('premium_dual_header_first_header_text');
491
$this->add_inline_editing_attributes('premium_dual_header_second_header_text');
492
$first_title_tag = $settings['premium_dual_header_first_header_tag'];
493
- $second_title_tag = $settings['premium_dual_header_second_header_tag'];
494
$first_title_text = $settings['premium_dual_header_first_header_text'] . ' ';
495
$second_title_text = $settings['premium_dual_header_second_header_text'];
496
$first_clip = '';
497
$second_clip = '';
498
if( $settings['premium_dual_header_first_back_clip'] === 'clipped' ) : $first_clip = "premium-dual-header-first-clip"; endif;
499
if( $settings['premium_dual_header_second_back_clip'] === 'clipped' ) : $second_clip = "premium-dual-header-second-clip"; endif;
500
501
$first_grad = $settings['premium_dual_header_first_animated'] === 'yes' ? ' gradient' : '';
502
$second_grad = $settings['premium_dual_header_second_animated'] === 'yes' ? ' gradient' : '';
503
504
$full_first_title_tag = '<' . $first_title_tag . ' class="premium-dual-header-first-header ' . $first_clip . $first_grad . '"><span class="premium-dual-header-first-span">'. $first_title_text . '</span><span class="premium-dual-header-second-header ' . $second_clip . $second_grad . '">'. $second_title_text . '</span></' . $settings['premium_dual_header_first_header_tag'] . '> ';
487
{
488
// get our input from the widget settings.
489
$settings = $this->get_settings_for_display();
490
+
491
$this->add_inline_editing_attributes('premium_dual_header_first_header_text');
492
+
493
$this->add_inline_editing_attributes('premium_dual_header_second_header_text');
494
+
495
$first_title_tag = $settings['premium_dual_header_first_header_tag'];
496
+
497
$first_title_text = $settings['premium_dual_header_first_header_text'] . ' ';
498
+
499
$second_title_text = $settings['premium_dual_header_second_header_text'];
500
+
501
$first_clip = '';
502
+
503
$second_clip = '';
504
+
505
if( $settings['premium_dual_header_first_back_clip'] === 'clipped' ) : $first_clip = "premium-dual-header-first-clip"; endif;
506
+
507
if( $settings['premium_dual_header_second_back_clip'] === 'clipped' ) : $second_clip = "premium-dual-header-second-clip"; endif;
508
509
$first_grad = $settings['premium_dual_header_first_animated'] === 'yes' ? ' gradient' : '';
510
+
511
$second_grad = $settings['premium_dual_header_second_animated'] === 'yes' ? ' gradient' : '';
512
513
$full_first_title_tag = '<' . $first_title_tag . ' class="premium-dual-header-first-header ' . $first_clip . $first_grad . '"><span class="premium-dual-header-first-span">'. $first_title_text . '</span><span class="premium-dual-header-second-header ' . $second_clip . $second_grad . '">'. $second_title_text . '</span></' . $settings['premium_dual_header_first_header_tag'] . '> ';
widgets/premium-maps.php CHANGED
@@ -52,6 +52,15 @@ class Premium_Maps_Widget extends Widget_Base
52
);
53
}
54
55
56
$this->add_control('premium_maps_center_lat',
57
[
@@ -83,6 +92,15 @@ class Premium_Maps_Widget extends Widget_Base
83
84
$repeater = new REPEATER();
85
86
$repeater->add_control('map_latitude',
87
[
88
'label' => esc_html__('Latitude', 'premium-addons-for-elementor'),
@@ -256,6 +274,13 @@ class Premium_Maps_Widget extends Widget_Base
256
]
257
]
258
);
259
260
$this->end_controls_section();
261
@@ -571,6 +596,12 @@ class Premium_Maps_Widget extends Widget_Base
571
} else {
572
$hover_close = 'false';
573
}
574
575
$centerlat = !empty($settings['premium_maps_center_lat']) ? $settings['premium_maps_center_lat'] : 18.591212;
576
$centerlong = !empty($settings['premium_maps_center_long']) ? $settings['premium_maps_center_long'] : 73.741261;
@@ -588,6 +619,7 @@ class Premium_Maps_Widget extends Widget_Base
588
'automaticOpen' => $automatic_open,
589
'hoverOpen' => $hover_open,
590
'hoverClose' => $hover_close,
591
];
592
593
$this->add_render_attribute('style_wrapper', 'data-style', $settings['premium_maps_custom_styling']);
52
);
53
}
54
55
+ $this->add_control('premium_map_notice',
56
+ [
57
+ 'label' => __( 'Find Latitude & Longitude', 'elementor' ),
58
+ 'type' => Controls_Manager::RAW_HTML,
59
+ 'raw' => '<form onsubmit="getAddress(this);" action="javascript:void(0);"><input type="text" id="premium-map-get-address" class="premium-map-get-address" style="margin-top:10px; margin-bottom:10px;"><input type="submit" value="Search" class="elementor-button elementor-button-default" onclick="getAddress(this)"></form><div class="premium-address-result" style="margin-top:10px; line-height: 1.3; font-size: 12px;"></div>',
60
+ 'label_block' => true,
61
+ ]
62
+ );
63
+
64
65
$this->add_control('premium_maps_center_lat',
66
[
92
93
$repeater = new REPEATER();
94
95
+ $repeater->add_control('premium_map_pin_notice',
96
+ [
97
+ 'label' => __( 'Find Latitude & Longitude', 'elementor' ),
98
+ 'type' => Controls_Manager::RAW_HTML,
99
+ 'raw' => '<form onsubmit="getPinAddress(this);" action="javascript:void(0);"><input type="text" id="premium-map-get-address" class="premium-map-get-address" style="margin-top:10px; margin-bottom:10px;"><input type="submit" value="Search" class="elementor-button elementor-button-default" onclick="getPinAddress(this)"></form><div class="premium-address-result" style="margin-top:10px; line-height: 1.3; font-size: 12px;"></div>',
100
+ 'label_block' => true,
101
+ ]
102
+ );
103
+
104
$repeater->add_control('map_latitude',
105
[
106
'label' => esc_html__('Latitude', 'premium-addons-for-elementor'),
274
]
275
]
276
);
277
+
278
+ $this->add_control('premium_maps_map_option_cluster',
279
+ [
280
+ 'label' => esc_html__( 'Marker Clustering', 'premium-addons-for-elementor' ),
281
+ 'type' => Controls_Manager::SWITCHER,
282
+ ]
283
+ );
284
285
$this->end_controls_section();
286
596
} else {
597
$hover_close = 'false';
598
}
599
+
600
+ if($settings['premium_maps_map_option_cluster'] == 'yes') {
601
+ $marker_cluster = 'true';
602
+ } else {
603
+ $marker_cluster = 'false';
604
+ }
605
606
$centerlat = !empty($settings['premium_maps_center_lat']) ? $settings['premium_maps_center_lat'] : 18.591212;
607
$centerlong = !empty($settings['premium_maps_center_long']) ? $settings['premium_maps_center_long'] : 73.741261;
619
'automaticOpen' => $automatic_open,
620
'hoverOpen' => $hover_open,
621
'hoverClose' => $hover_close,
622
+ 'cluster' => $marker_cluster
623
];
624
625
$this->add_render_attribute('style_wrapper', 'data-style', $settings['premium_maps_custom_styling']);