Premium Addons for Elementor - Version 2.1.6

Version Description

  • Tweak: Added Input Field & Text Area & Button width and height for Premium Contact Form 7 widget.
  • Fix: Premium Modal Box Bootstrap conflicts bug.
  • Fix: Premium Modal Box backend shifting bug.
Download this release

Release Info

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

Code changes from version 2.1.5 to 2.1.6

admin/settings-page.php CHANGED
@@ -41,7 +41,7 @@ class PA_admin_settings {
41
  wp_enqueue_style( 'premium_addons_elementor-css', plugins_url( '/', __FILE__ ).'assets/admin.css' );
42
  wp_enqueue_style( 'premium_addons-sweetalert2-css', plugins_url( '/', __FILE__ ).'assets/js/sweetalert2/css/sweetalert2.min.css' );
43
  wp_enqueue_script('pa-addons-elementor-admin-js', plugins_url( '/' , __FILE__ ).'assets/admin.js' , array('jquery','jquery-ui-tabs'), '1.0' , true );
44
- wp_enqueue_script('pa-dialog',PREMIUM_ADDONS_URL . 'admin/assets/js/dialog/dialog.js',array('jquery-ui-position'),'4.2.1',true);
45
  wp_enqueue_script( 'premium_addons_sweet-js', plugins_url( '/', __FILE__ ).'assets/js/sweetalert2/js/core.js', array( 'jquery' ), '1.0', true );
46
  wp_enqueue_script( 'premium_addons_sweetalert2-js', plugins_url( '/', __FILE__ ).'assets/js/sweetalert2/js/sweetalert2.min.js', array( 'jquery', 'premium_addons_sweet-js' ), '1.0', true );
47
  }
@@ -356,7 +356,7 @@ class PA_admin_settings {
356
 
357
  <tr class="pa-roll-row">
358
  <th>Rollback Version</th>
359
- <td><div><?php echo sprintf( '<a target="_blank" href="%s" class="button pa-btn pa-rollback-button elementor-button-spinner">Reinstall Version 2.1.4</a>', wp_nonce_url( admin_url( 'admin-post.php?action=premium_addons_rollback' ), 'premium_addons_rollback' ) ); ?> </div><p class="pa-roll-desc"><span>Warning: Please backup your database before making the rollback.</span></p></td>
360
  </tr>
361
  <tr>
362
  <th><h4 class="pa-beta-test">Become a Beta Tester</h4><span class="pa-beta-test-span">Turn-on Beta Tester, to get notified when a new beta version of Premium Addons for Elementor. The Beta version will not install automatically. You always have the option to ignore it.</span></th>
@@ -437,4 +437,4 @@ class PA_admin_settings {
437
  }
438
 
439
 
440
- new PA_admin_settings();
41
  wp_enqueue_style( 'premium_addons_elementor-css', plugins_url( '/', __FILE__ ).'assets/admin.css' );
42
  wp_enqueue_style( 'premium_addons-sweetalert2-css', plugins_url( '/', __FILE__ ).'assets/js/sweetalert2/css/sweetalert2.min.css' );
43
  wp_enqueue_script('pa-addons-elementor-admin-js', plugins_url( '/' , __FILE__ ).'assets/admin.js' , array('jquery','jquery-ui-tabs'), '1.0' , true );
44
+ wp_enqueue_script('pa-dialog',PREMIUM_ADDONS_URL . 'admin/assets/js/dialog/dialog.js',array('jquery-ui-position'),PREMIUM_ADDONS_VERSION ,true);
45
  wp_enqueue_script( 'premium_addons_sweet-js', plugins_url( '/', __FILE__ ).'assets/js/sweetalert2/js/core.js', array( 'jquery' ), '1.0', true );
46
  wp_enqueue_script( 'premium_addons_sweetalert2-js', plugins_url( '/', __FILE__ ).'assets/js/sweetalert2/js/sweetalert2.min.js', array( 'jquery', 'premium_addons_sweet-js' ), '1.0', true );
47
  }
356
 
357
  <tr class="pa-roll-row">
358
  <th>Rollback Version</th>
359
+ <td><div><?php echo sprintf( '<a target="_blank" href="%s" class="button pa-btn pa-rollback-button elementor-button-spinner">Reinstall Version 2.1.5</a>', wp_nonce_url( admin_url( 'admin-post.php?action=premium_addons_rollback' ), 'premium_addons_rollback' ) ); ?> </div><p class="pa-roll-desc"><span>Warning: Please backup your database before making the rollback.</span></p></td>
360
  </tr>
361
  <tr>
362
  <th><h4 class="pa-beta-test">Become a Beta Tester</h4><span class="pa-beta-test-span">Turn-on Beta Tester, to get notified when a new beta version of Premium Addons for Elementor. The Beta version will not install automatically. You always have the option to ignore it.</span></th>
437
  }
438
 
439
 
440
+ new PA_admin_settings();
assets/css/premium-addons.css CHANGED
@@ -809,43 +809,40 @@ a.premium-image-separator-link:active{
809
  background-image: none;
810
  border: 1px solid transparent;
811
  }
812
- .btn-md {
813
  padding: 8px 14px;
814
  font-size: 16px;
815
  line-height: 1.2;
816
  }
817
- .btn-lg {
818
  padding: 10px 16px;
819
  font-size: 18px;
820
  line-height: 1.3333333;
821
  }
822
- .btn-block {
823
  display: block;
824
  width: 100%;
825
  }
826
- .close {
827
  float: right;
828
  font-size: 21px;
829
  font-weight: bold;
830
  line-height: 1;
831
  color: #000;
832
  }
833
- .close:hover, .close:focus {
834
  color: #000;
835
  text-decoration: none;
836
  cursor: pointer;
837
  }
838
- button.close {
839
  -webkit-appearance: none;
840
  padding: 0;
841
  cursor: pointer;
842
  background: transparent;
843
  border: 0
844
  }
845
- .modal-open {
846
- overflow: hidden
847
- }
848
- .modal {
849
  position: fixed;
850
  top: 0;
851
  right: 0;
@@ -853,20 +850,16 @@ button.close {
853
  left: 0;
854
  z-index: 1050;
855
  display: none;
856
- overflow: hidden;
857
  -webkit-overflow-scrolling: touch;
858
- outline: 0
 
859
  }
860
- .premium-modal-box-modal .modal-dialog {
861
  -webkit-transition: -webkit-transform .3s ease-out !important;
862
  -o-transition: -o-transform .3s ease-out !important;
863
  transition: transform .3s ease-out !important;
864
  }
865
- .modal-open .modal {
866
- overflow-x: hidden;
867
- overflow-y: auto
868
- }
869
- .premium-modal-box-modal.fade .modal-dialog{
870
  position: absolute;
871
  top: 50%;
872
  left: 50%;
@@ -874,7 +867,7 @@ button.close {
874
  transform: translate(-50%,-50%) !important;
875
  margin: 0;
876
  }
877
- .modal-content {
878
  background-color: #fff;
879
  -webkit-background-clip: padding-box;
880
  background-clip: padding-box;
@@ -884,7 +877,7 @@ button.close {
884
  -webkit-box-shadow: 0 3px 9px rgba(0, 0, 0, .5);
885
  box-shadow: 0 3px 9px rgba(0, 0, 0, .5)
886
  }
887
- .modal-backdrop {
888
  position: fixed;
889
  top: 0;
890
  right: 0;
@@ -893,48 +886,43 @@ button.close {
893
  z-index: 1040;
894
  background-color: #000
895
  }
896
- .modal-backdrop.fade {
897
  filter: alpha(opacity=0);
898
  opacity: 0
899
  }
900
- .modal-backdrop.in {
901
  filter: alpha(opacity=50);
902
  opacity: .5
903
  }
904
- .modal-header {
905
  padding: 15px;
906
  border-bottom: 1px solid #e5e5e5
907
  }
908
- .modal-header .close {
909
  margin-top: -2px
910
  }
911
- .modal-title {
912
  margin: 0;
 
913
  line-height: 1.42857143;
914
  clear: none;
915
  padding: 0;
916
  margin: 0;
917
  }
918
- .modal-body {
919
  position: relative;
920
  padding: 15px
921
  }
922
- .modal-footer {
923
  padding: 15px;
924
  text-align: right;
925
  border-top: 1px solid #e5e5e5
926
  }
927
- .modal-footer .btn + .btn {
928
  margin-bottom: 0;
929
  margin-left: 5px
930
  }
931
- .modal-footer .btn-group .btn + .btn {
932
- margin-left: -1px
933
- }
934
- .modal-footer .btn-block + .btn-block {
935
- margin-left: 0
936
- }
937
- .modal-scrollbar-measure {
938
  position: absolute;
939
  top: -9999px;
940
  width: 50px;
@@ -945,10 +933,10 @@ button.close {
945
  background: none !important;
946
  }
947
  @media (min-width:768px) {
948
- .modal-dialog {
949
  width: 600px;
950
  }
951
- .modal-content {
952
  -webkit-box-shadow: 0 5px 15px rgba(0, 0, 0, .5);
953
  box-shadow: 0 5px 15px rgba(0, 0, 0, .5)
954
  }
@@ -2838,4 +2826,4 @@ button.close {
2838
  }
2839
  .premium-gallery-container .pa-gallery-item {
2840
  padding: 10px;
2841
- }
809
  background-image: none;
810
  border: 1px solid transparent;
811
  }
812
+ .premium-btn-md {
813
  padding: 8px 14px;
814
  font-size: 16px;
815
  line-height: 1.2;
816
  }
817
+ .premium-btn-lg {
818
  padding: 10px 16px;
819
  font-size: 18px;
820
  line-height: 1.3333333;
821
  }
822
+ .premium-btn-block {
823
  display: block;
824
  width: 100%;
825
  }
826
+ .premium-modal-box-modal-close {
827
  float: right;
828
  font-size: 21px;
829
  font-weight: bold;
830
  line-height: 1;
831
  color: #000;
832
  }
833
+ .premium-modal-box-modal-close:hover, .premium-modal-box-modal-close:focus {
834
  color: #000;
835
  text-decoration: none;
836
  cursor: pointer;
837
  }
838
+ button.premium-modal-box-modal-close {
839
  -webkit-appearance: none;
840
  padding: 0;
841
  cursor: pointer;
842
  background: transparent;
843
  border: 0
844
  }
845
+ .premium-modal-box-modal {
 
 
 
846
  position: fixed;
847
  top: 0;
848
  right: 0;
850
  left: 0;
851
  z-index: 1050;
852
  display: none;
 
853
  -webkit-overflow-scrolling: touch;
854
+ outline: 0;
855
+ padding: 0 !important;
856
  }
857
+ .premium-modal-box-modal .premium-modal-box-modal-dialog {
858
  -webkit-transition: -webkit-transform .3s ease-out !important;
859
  -o-transition: -o-transform .3s ease-out !important;
860
  transition: transform .3s ease-out !important;
861
  }
862
+ .premium-modal-box-modal .premium-modal-box-modal-dialog {
 
 
 
 
863
  position: absolute;
864
  top: 50%;
865
  left: 50%;
867
  transform: translate(-50%,-50%) !important;
868
  margin: 0;
869
  }
870
+ .premium-modal-box-modal-content {
871
  background-color: #fff;
872
  -webkit-background-clip: padding-box;
873
  background-clip: padding-box;
877
  -webkit-box-shadow: 0 3px 9px rgba(0, 0, 0, .5);
878
  box-shadow: 0 3px 9px rgba(0, 0, 0, .5)
879
  }
880
+ .premium-modal-backdrop {
881
  position: fixed;
882
  top: 0;
883
  right: 0;
886
  z-index: 1040;
887
  background-color: #000
888
  }
889
+ .premium-modal-backdrop.fade {
890
  filter: alpha(opacity=0);
891
  opacity: 0
892
  }
893
+ .premium-modal-backdrop.premium-in {
894
  filter: alpha(opacity=50);
895
  opacity: .5
896
  }
897
+ .premium-modal-box-modal-header {
898
  padding: 15px;
899
  border-bottom: 1px solid #e5e5e5
900
  }
901
+ .premium-modal-box-modal-header .premium-modal-box-modal-close {
902
  margin-top: -2px
903
  }
904
+ .premium-modal-box-modal-header .premium-modal-box-modal-title {
905
  margin: 0;
906
+ padding: 0;
907
  line-height: 1.42857143;
908
  clear: none;
909
  padding: 0;
910
  margin: 0;
911
  }
912
+ .premium-modal-box-modal-body {
913
  position: relative;
914
  padding: 15px
915
  }
916
+ .premium-modal-box-modal-footer {
917
  padding: 15px;
918
  text-align: right;
919
  border-top: 1px solid #e5e5e5
920
  }
921
+ .premium-modal-box-modal-footer .btn + .btn {
922
  margin-bottom: 0;
923
  margin-left: 5px
924
  }
925
+ .premium-modal-scrollbar-measure {
 
 
 
 
 
 
926
  position: absolute;
927
  top: -9999px;
928
  width: 50px;
933
  background: none !important;
934
  }
935
  @media (min-width:768px) {
936
+ .premium-modal-box-modal-dialog {
937
  width: 600px;
938
  }
939
+ .premium-modal-box-modal-content {
940
  -webkit-box-shadow: 0 5px 15px rgba(0, 0, 0, .5);
941
  box-shadow: 0 5px 15px rgba(0, 0, 0, .5)
942
  }
2826
  }
2827
  .premium-gallery-container .pa-gallery-item {
2828
  padding: 10px;
2829
+ }
assets/js/lib/modal.js CHANGED
@@ -38,7 +38,7 @@ if (typeof jQuery === 'undefined') {
38
  this.options = options
39
  this.$body = $(document.body)
40
  this.$element = $(element)
41
- this.$dialog = this.$element.find('.modal-dialog')
42
  this.$backdrop = null
43
  this.isShown = null
44
  this.originalBodyPad = null
@@ -47,7 +47,7 @@ if (typeof jQuery === 'undefined') {
47
 
48
  if (this.options.remote) {
49
  this.$element
50
- .find('.modal-content')
51
  .load(this.options.remote, $.proxy(function () {
52
  this.$element.trigger('loaded.bs.modal')
53
  }, this))
@@ -81,12 +81,12 @@ if (typeof jQuery === 'undefined') {
81
 
82
  this.checkScrollbar()
83
  this.setScrollbar()
84
- this.$body.addClass('modal-open')
85
 
86
  this.escape()
87
  this.resize()
88
 
89
- this.$element.on('click.dismiss.bs.modal', '[data-dismiss="modal"]', $.proxy(this.hide, this))
90
 
91
  this.$dialog.on('mousedown.dismiss.bs.modal', function () {
92
  that.$element.one('mouseup.dismiss.bs.modal', function (e) {
@@ -111,7 +111,7 @@ if (typeof jQuery === 'undefined') {
111
  that.$element[0].offsetWidth // force reflow
112
  }
113
 
114
- that.$element.addClass('in')
115
 
116
  that.enforceFocus()
117
 
@@ -144,7 +144,7 @@ if (typeof jQuery === 'undefined') {
144
  $(document).off('focusin.bs.modal')
145
 
146
  this.$element
147
- .removeClass('in')
148
  .off('click.dismiss.bs.modal')
149
  .off('mouseup.dismiss.bs.modal')
150
 
@@ -191,7 +191,7 @@ if (typeof jQuery === 'undefined') {
191
  var that = this
192
  this.$element.hide()
193
  this.backdrop(function () {
194
- that.$body.removeClass('modal-open')
195
  that.resetAdjustments()
196
  that.resetScrollbar()
197
  that.$element.trigger('hidden.bs.modal')
@@ -211,7 +211,7 @@ if (typeof jQuery === 'undefined') {
211
  var doAnimate = $.support.transition && animate
212
 
213
  this.$backdrop = $(document.createElement('div'))
214
- .addClass('modal-backdrop ' + animate)
215
  .appendTo(this.$body)
216
 
217
  this.$element.on('click.dismiss.bs.modal', $.proxy(function (e) {
@@ -227,7 +227,7 @@ if (typeof jQuery === 'undefined') {
227
 
228
  if (doAnimate) this.$backdrop[0].offsetWidth // force reflow
229
 
230
- this.$backdrop.addClass('in')
231
 
232
  if (!callback) return
233
 
@@ -238,7 +238,7 @@ if (typeof jQuery === 'undefined') {
238
  callback()
239
 
240
  } else if (!this.isShown && this.$backdrop) {
241
- this.$backdrop.removeClass('in')
242
 
243
  var callbackRemove = function () {
244
  that.removeBackdrop()
@@ -290,7 +290,7 @@ if (typeof jQuery === 'undefined') {
290
  Modal.prototype.setScrollbar = function () {
291
  var bodyPad = parseInt((this.$body.css('padding-right') || 0), 10)
292
  this.originalBodyPad = document.body.style.paddingRight || ''
293
- if (this.bodyIsOverflowing) this.$body.css('padding-right', bodyPad + this.scrollbarWidth)
294
  }
295
 
296
  Modal.prototype.resetScrollbar = function () {
@@ -299,7 +299,7 @@ if (typeof jQuery === 'undefined') {
299
 
300
  Modal.prototype.measureScrollbar = function () { // thx walsh
301
  var scrollDiv = document.createElement('div')
302
- scrollDiv.className = 'modal-scrollbar-measure'
303
  this.$body.append(scrollDiv)
304
  var scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth
305
  this.$body[0].removeChild(scrollDiv)
@@ -357,4 +357,4 @@ if (typeof jQuery === 'undefined') {
357
  Plugin.call($target, option, this)
358
  })
359
 
360
- }(jQuery);
38
  this.options = options
39
  this.$body = $(document.body)
40
  this.$element = $(element)
41
+ this.$dialog = this.$element.find('.premium-modal-box-modal-dialog')
42
  this.$backdrop = null
43
  this.isShown = null
44
  this.originalBodyPad = null
47
 
48
  if (this.options.remote) {
49
  this.$element
50
+ .find('.premium-modal-box-modal-content')
51
  .load(this.options.remote, $.proxy(function () {
52
  this.$element.trigger('loaded.bs.modal')
53
  }, this))
81
 
82
  this.checkScrollbar()
83
  this.setScrollbar()
84
+ this.$body.addClass('premium-modal-open')
85
 
86
  this.escape()
87
  this.resize()
88
 
89
+ this.$element.on('click.dismiss.bs.modal', '[data-dismiss="premium-modal"]', $.proxy(this.hide, this))
90
 
91
  this.$dialog.on('mousedown.dismiss.bs.modal', function () {
92
  that.$element.one('mouseup.dismiss.bs.modal', function (e) {
111
  that.$element[0].offsetWidth // force reflow
112
  }
113
 
114
+ that.$element.addClass('premium-in')
115
 
116
  that.enforceFocus()
117
 
144
  $(document).off('focusin.bs.modal')
145
 
146
  this.$element
147
+ .removeClass('premium-in')
148
  .off('click.dismiss.bs.modal')
149
  .off('mouseup.dismiss.bs.modal')
150
 
191
  var that = this
192
  this.$element.hide()
193
  this.backdrop(function () {
194
+ that.$body.removeClass('premium-modal-open')
195
  that.resetAdjustments()
196
  that.resetScrollbar()
197
  that.$element.trigger('hidden.bs.modal')
211
  var doAnimate = $.support.transition && animate
212
 
213
  this.$backdrop = $(document.createElement('div'))
214
+ .addClass('premium-modal-backdrop ' + animate)
215
  .appendTo(this.$body)
216
 
217
  this.$element.on('click.dismiss.bs.modal', $.proxy(function (e) {
227
 
228
  if (doAnimate) this.$backdrop[0].offsetWidth // force reflow
229
 
230
+ this.$backdrop.addClass('premium-in')
231
 
232
  if (!callback) return
233
 
238
  callback()
239
 
240
  } else if (!this.isShown && this.$backdrop) {
241
+ this.$backdrop.removeClass('premium-in')
242
 
243
  var callbackRemove = function () {
244
  that.removeBackdrop()
290
  Modal.prototype.setScrollbar = function () {
291
  var bodyPad = parseInt((this.$body.css('padding-right') || 0), 10)
292
  this.originalBodyPad = document.body.style.paddingRight || ''
293
+
294
  }
295
 
296
  Modal.prototype.resetScrollbar = function () {
299
 
300
  Modal.prototype.measureScrollbar = function () { // thx walsh
301
  var scrollDiv = document.createElement('div')
302
+ scrollDiv.className = 'premium-modal-scrollbar-measure'
303
  this.$body.append(scrollDiv)
304
  var scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth
305
  this.$body[0].removeChild(scrollDiv)
357
  Plugin.call($target, option, this)
358
  })
359
 
360
+ }(jQuery);
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.1.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
 
23
  if( !defined( 'ABSPATH' ) ) exit; // No access of directly access
24
 
25
- define( 'PREMIUM_ADDONS_VERSION', '2.1.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.1.4');
31
 
32
 
33
  /**
@@ -270,4 +270,4 @@ define( 'PREMIUM_ADDONS_STABLE_VERSION', '2.1.4');
270
  1
271
  );
272
  }
273
- }
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.1.6
7
  Author: Leap13
8
  Author URI: http://leap13.com/
9
  Text Domain: premium-addons-for-elementor
22
 
23
  if( !defined( 'ABSPATH' ) ) exit; // No access of directly access
24
 
25
+ define( 'PREMIUM_ADDONS_VERSION', '2.1.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.1.5');
31
 
32
 
33
  /**
270
  1
271
  );
272
  }
273
+ }
readme.txt CHANGED
@@ -3,9 +3,9 @@ Contributors: leap13
3
  Tags: Elementor, Elementor Page Builder, Elements, Elementor Addons, Add-ons, page builder
4
  Donate link: http://premiumaddons.com
5
  Requires at least: 4.5
6
- Tested up to: 4.9.4
7
  Requires PHP: 5.4
8
- Stable tag: 2.1.5
9
  License: GPL v3.0
10
  License URI: https://opensource.org/licenses/GPL-3.0
11
 
@@ -99,6 +99,12 @@ Premium Addons for Elementor is light weight and we also gave you the control to
99
 
100
  == Changelog ==
101
 
 
 
 
 
 
 
102
  = 2.1.5 =
103
 
104
  - Tweak: Added Icon option for Premium Modal Box widget’s button.
@@ -275,4 +281,4 @@ Premium Addons for Elementor is light weight and we also gave you the control to
275
 
276
  = 1.0 =
277
 
278
- - Initial stable release
3
  Tags: Elementor, Elementor Page Builder, Elements, Elementor Addons, Add-ons, page builder
4
  Donate link: http://premiumaddons.com
5
  Requires at least: 4.5
6
+ Tested up to: 4.9.5
7
  Requires PHP: 5.4
8
+ Stable tag: 2.1.6
9
  License: GPL v3.0
10
  License URI: https://opensource.org/licenses/GPL-3.0
11
 
99
 
100
  == Changelog ==
101
 
102
+ = 2.1.6 =
103
+
104
+ - Tweak: Added Input Field & Text Area & Button width and height for Premium Contact Form 7 widget.
105
+ - Fix: Premium Modal Box Bootstrap conflicts bug.
106
+ - Fix: Premium Modal Box backend shifting bug.
107
+
108
  = 2.1.5 =
109
 
110
  - Tweak: Added Icon option for Premium Modal Box widget’s button.
281
 
282
  = 1.0 =
283
 
284
+ - Initial stable release
widgets/premium-contactform.php CHANGED
@@ -45,30 +45,22 @@ class Premium_ContactForm7_Widget extends Widget_Base {
45
 
46
 
47
  $this->end_controls_section();
48
-
49
- $this->start_controls_section(
50
- 'section_contact_form_styles',
51
- [
52
- 'label' => esc_html__( 'Form', 'premium-addons-for-elementor' ),
53
- 'tab' => Controls_Manager::TAB_STYLE
54
- ]
55
- );
56
- $this->add_control(
57
- 'premium_elements_input_background',
58
- [
59
- 'label' => esc_html__( 'Input Field Background', 'premium-addons-for-elementor' ),
60
- 'type' => Controls_Manager::COLOR,
61
- 'selectors' => [
62
- '{{WRAPPER}} .premium-elements-contact-form-container input.wpcf7-text, {{WRAPPER}} .premium-elements-contact-form-container textarea.wpcf7-textarea' => 'background: {{VALUE}};',
63
- ],
64
- ]
65
- );
66
-
67
-
68
- $this->add_responsive_control(
69
  'premium_elements_input_width',
70
  [
71
- 'label' => esc_html__( 'Input Field Width', 'premium-addons-for-elementor' ),
72
  'type' => Controls_Manager::SLIDER,
73
  'size_units' => [ 'px', 'em', '%' ],
74
  'range' => [
@@ -81,17 +73,20 @@ class Premium_ContactForm7_Widget extends Widget_Base {
81
  'max' => 80,
82
  ],
83
  ],
 
 
 
 
84
  'selectors' => [
85
  '{{WRAPPER}} .premium-elements-contact-form-container input.wpcf7-text' => 'width: {{SIZE}}{{UNIT}};',
86
  ],
87
  ]
88
  );
89
-
90
-
91
- $this->add_responsive_control(
92
  'premium_elements_textarea_width',
93
  [
94
- 'label' => esc_html__( 'Text-box Width', 'premium-addons-for-elementor' ),
95
  'type' => Controls_Manager::SLIDER,
96
  'size_units' => [ 'px', 'em', '%' ],
97
  'range' => [
@@ -104,11 +99,144 @@ class Premium_ContactForm7_Widget extends Widget_Base {
104
  'max' => 80,
105
  ],
106
  ],
 
 
 
 
107
  'selectors' => [
108
  '{{WRAPPER}} .premium-elements-contact-form-container textarea.wpcf7-textarea' => 'width: {{SIZE}}{{UNIT}};',
109
  ],
110
  ]
111
- );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
112
 
113
  $this->add_responsive_control(
114
  'premium_elements_input_padding',
@@ -482,4 +610,4 @@ class Premium_ContactForm7_Widget extends Widget_Base {
482
  }
483
  }
484
 
485
- Plugin::instance()->widgets_manager->register_widget_type( new Premium_ContactForm7_Widget() );
45
 
46
 
47
  $this->end_controls_section();
48
+
49
+ $this->start_controls_section('premium_wpcf7_fields',
50
+ [
51
+ 'label' => esc_html__('Fields', 'premium-addons-for-elementor'),
52
+ ]);
53
+
54
+ $this->add_control('premium_wpcf7_fields_heading',
55
+ [
56
+ 'label' => esc_html__('Width', 'premium-addons-for-elementor'),
57
+ 'type' => Controls_Manager::HEADING
58
+ ]);
59
+
60
+ $this->add_responsive_control(
 
 
 
 
 
 
 
 
61
  'premium_elements_input_width',
62
  [
63
+ 'label' => esc_html__( 'Input Field', 'premium-addons-for-elementor' ),
64
  'type' => Controls_Manager::SLIDER,
65
  'size_units' => [ 'px', 'em', '%' ],
66
  'range' => [
73
  'max' => 80,
74
  ],
75
  ],
76
+ 'default' => [
77
+ 'size' => 100,
78
+ 'unit' => '%'
79
+ ],
80
  'selectors' => [
81
  '{{WRAPPER}} .premium-elements-contact-form-container input.wpcf7-text' => 'width: {{SIZE}}{{UNIT}};',
82
  ],
83
  ]
84
  );
85
+
86
+ $this->add_responsive_control(
 
87
  'premium_elements_textarea_width',
88
  [
89
+ 'label' => esc_html__( 'Text Area', 'premium-addons-for-elementor' ),
90
  'type' => Controls_Manager::SLIDER,
91
  'size_units' => [ 'px', 'em', '%' ],
92
  'range' => [
99
  'max' => 80,
100
  ],
101
  ],
102
+ 'default' => [
103
+ 'size' => 100,
104
+ 'unit' => '%'
105
+ ],
106
  'selectors' => [
107
  '{{WRAPPER}} .premium-elements-contact-form-container textarea.wpcf7-textarea' => 'width: {{SIZE}}{{UNIT}};',
108
  ],
109
  ]
110
+ );
111
+
112
+ $this->add_control('premium_wpcf7_fields_height_heading',
113
+ [
114
+ 'label' => esc_html__('Height', 'premium-addons-for-elementor'),
115
+ 'type' => Controls_Manager::HEADING
116
+ ]);
117
+
118
+ $this->add_responsive_control(
119
+ 'premium_elements_input_height',
120
+ [
121
+ 'label' => esc_html__( 'Input Field', 'premium-addons-for-elementor' ),
122
+ 'type' => Controls_Manager::SLIDER,
123
+ 'size_units' => [ 'px', 'em' ],
124
+ 'range' => [
125
+ 'px' => [
126
+ 'min' => 10,
127
+ 'max' => 500,
128
+ ],
129
+ 'em' => [
130
+ 'min' => 1,
131
+ 'max' => 40,
132
+ ],
133
+ ],
134
+ 'selectors' => [
135
+ '{{WRAPPER}} .premium-elements-contact-form-container input.wpcf7-text' => 'height: {{SIZE}}{{UNIT}};',
136
+ ],
137
+ ]
138
+ );
139
+
140
+ $this->add_responsive_control(
141
+ 'premium_elements_textarea_height',
142
+ [
143
+ 'label' => esc_html__( 'Text Area', 'premium-addons-for-elementor' ),
144
+ 'type' => Controls_Manager::SLIDER,
145
+ 'size_units' => [ 'px', 'em' ],
146
+ 'range' => [
147
+ 'px' => [
148
+ 'min' => 10,
149
+ 'max' => 1200,
150
+ ],
151
+ 'em' => [
152
+ 'min' => 1,
153
+ 'max' => 80,
154
+ ],
155
+ ],
156
+ 'selectors' => [
157
+ '{{WRAPPER}} .premium-elements-contact-form-container textarea.wpcf7-textarea' => 'height: {{SIZE}}{{UNIT}};',
158
+ ],
159
+ ]
160
+ );
161
+
162
+ $this->end_controls_section();
163
+
164
+ $this->start_controls_section('premium_wpcf7_button',
165
+ [
166
+ 'label' => esc_html__('Button', 'premium-addons-for-elementor'),
167
+ ]);
168
+
169
+ /*Button Width*/
170
+ $this->add_responsive_control(
171
+ 'premium_elements_button_width',
172
+ [
173
+ 'label' => esc_html__( 'Width', 'premium-addons-for-elementor' ),
174
+ 'type' => Controls_Manager::SLIDER,
175
+ 'size_units' => [ 'px', 'em', '%' ],
176
+ 'range' => [
177
+ 'px' => [
178
+ 'min' => 10,
179
+ 'max' => 1200,
180
+ ],
181
+ 'em' => [
182
+ 'min' => 1,
183
+ 'max' => 80,
184
+ ],
185
+ ],
186
+ 'selectors' => [
187
+ '{{WRAPPER}} .premium-elements-contact-form-container input.wpcf7-submit' => 'width: {{SIZE}}{{UNIT}};',
188
+ ],
189
+ ]
190
+ );
191
+
192
+ /*Button Height*/
193
+ $this->add_responsive_control(
194
+ 'premium_elements_button_height',
195
+ [
196
+ 'label' => esc_html__( 'Height', 'premium-addons-for-elementor' ),
197
+ 'type' => Controls_Manager::SLIDER,
198
+ 'size_units' => [ 'px', 'em' ],
199
+ 'range' => [
200
+ 'px' => [
201
+ 'min' => 10,
202
+ 'max' => 500,
203
+ ],
204
+ 'em' => [
205
+ 'min' => 1,
206
+ 'max' => 40,
207
+ ],
208
+ ],
209
+ 'selectors' => [
210
+ '{{WRAPPER}} .premium-elements-contact-form-container input.wpcf7-submit' => 'height: {{SIZE}}{{UNIT}};',
211
+ ],
212
+ ]
213
+ );
214
+
215
+ $this->end_controls_section();
216
+
217
+ $this->start_controls_section(
218
+ 'section_contact_form_styles',
219
+ [
220
+ 'label' => esc_html__( 'Form', 'premium-addons-for-elementor' ),
221
+ 'tab' => Controls_Manager::TAB_STYLE
222
+ ]
223
+ );
224
+ $this->add_control(
225
+ 'premium_elements_input_background',
226
+ [
227
+ 'label' => esc_html__( 'Input Field Background', 'premium-addons-for-elementor' ),
228
+ 'type' => Controls_Manager::COLOR,
229
+ 'selectors' => [
230
+ '{{WRAPPER}} .premium-elements-contact-form-container input.wpcf7-text, {{WRAPPER}} .premium-elements-contact-form-container textarea.wpcf7-textarea' => 'background: {{VALUE}};',
231
+ ],
232
+ ]
233
+ );
234
+
235
+
236
+
237
+
238
+
239
+
240
 
241
  $this->add_responsive_control(
242
  'premium_elements_input_padding',
610
  }
611
  }
612
 
613
+ Plugin::instance()->widgets_manager->register_widget_type( new Premium_ContactForm7_Widget() );
widgets/premium-modalbox.php CHANGED
@@ -145,7 +145,7 @@ class Premium_Modal_Box_Widget extends Widget_Base
145
  $this->add_control('premium_modal_box_content_temp',
146
  [
147
  'label' => esc_html__( 'Content', 'premium-addons-for-elementor' ),
148
- 'description' => esc_html__( 'Modal content is a template which you can choose from Elementor library. Each template will be a slider content', 'premium-addons-for-elementor' ),
149
  'type' => Controls_Manager::SELECT2,
150
  'options' => $this->getTemplateInstance()->get_elementor_page_list(),
151
  'condition' => [
@@ -1199,10 +1199,10 @@ class Premium_Modal_Box_Widget extends Widget_Base
1199
  <?php
1200
  if ( $settings['premium_modal_box_display_on'] === 'button' ) : ?>
1201
  <button type="button" class="premium-modal-box-button-selector btn btn-info <?php
1202
- if( $settings['premium_modal_box_button_size'] === 'sm' ) : echo "btn-sm";
1203
- elseif( $settings['premium_modal_box_button_size'] === 'md' ) : echo "btn-md";
1204
- elseif( $settings['premium_modal_box_button_size'] === 'lg' ) : echo "btn-lg";
1205
- elseif( $settings['premium_modal_box_button_size'] === 'block' ) : echo "btn-block"; endif; ?>" data-toggle="premium-modal" data-target="#premium-modal-<?php echo esc_attr( $this->get_id() ); ?>"><?php if($settings['premium_modal_box_icon_switcher'] && $settings['premium_modal_box_icon_position'] == 'before' && !empty($settings['premium_modal_box_button_icon_selection'])) : ?><i class="fa <?php echo esc_attr($button_icon); ?>"></i><?php endif; ?><span><?php echo $settings['premium_modal_box_button_text']; ?></span><?php if($settings['premium_modal_box_icon_switcher'] && $settings['premium_modal_box_icon_position'] == 'after' &&!empty($settings['premium_modal_box_button_icon_selection'])) : ?><i class="fa <?php echo esc_attr($button_icon); ?>"></i><?php endif; ?></button>
1206
  <?php elseif ( $settings['premium_modal_box_display_on'] === 'image' ) : ?>
1207
  <img class="premium-modal-box-img-selector" data-toggle="premium-modal" data-target="#premium-modal-<?php echo esc_attr( $this->get_id() ); ?>" src="<?php echo $settings['premium_modal_box_image_src']['url'];?>">
1208
  <?php elseif($settings['premium_modal_box_display_on'] === 'text') : ?>
@@ -1210,22 +1210,20 @@ class Premium_Modal_Box_Widget extends Widget_Base
1210
  <?php endif; ?>
1211
  </div>
1212
 
1213
-
1214
  <!-- Modal -->
1215
- <div class="bootstrap-wrapper">
1216
- <div id="premium-modal-<?php echo $this->get_id(); ?>" class="modal fade premium-modal-box-modal" role="dialog">
1217
- <div class="modal-dialog premium-modal-box-modal-dialog">
1218
 
1219
  <!-- Modal content-->
1220
- <div class="modal-content premium-modal-box-modal-content">
1221
  <?php if($settings['premium_modal_box_header_switcher'] == 'yes'): ?>
1222
- <div class="modal-header premium-modal-box-modal-header">
1223
  <?php if ( $settings['premium_modal_box_upper_close'] === 'yes' ) : ?>
1224
  <div class="premium-modal-box-close-button-container">
1225
- <button type="button" class="close premium-modal-box-modal-close" data-dismiss="modal">&times;</button>
1226
  </div>
1227
  <?php endif; ?>
1228
- <h3 class="modal-title premium-modal-box-modal-title">
1229
  <?php if($settings['premium_modal_box_icon_selection'] === 'fonticon') : ?>
1230
  <i class="fa <?php echo $settings['premium_modal_box_font_icon'];?>"></i>
1231
  <?php elseif( $settings['premium_modal_box_icon_selection'] === 'image' ) : ?>
@@ -1233,12 +1231,12 @@ class Premium_Modal_Box_Widget extends Widget_Base
1233
  <?php endif; ?><?php echo $settings['premium_modal_box_title'];?></h3>
1234
  </div>
1235
  <?php endif; ?>
1236
- <div class="modal-body premium-modal-box-modal-body">
1237
  <?php if($settings['premium_modal_box_content_type'] == 'editor') : echo $settings['premium_modal_box_content']; else: echo $premium_elements_frontend->get_builder_content($elementor_post_id, true); endif; ?>
1238
  </div>
1239
  <?php if ( $settings['premium_modal_box_lower_close'] === 'yes' ) : ?>
1240
- <div class="modal-footer premium-modal-box-modal-footer">
1241
- <button type="button" class="btn premium-modal-box-modal-lower-close" data-dismiss="modal">Close
1242
  </button>
1243
  </div>
1244
  <?php endif; ?>
@@ -1246,7 +1244,6 @@ class Premium_Modal_Box_Widget extends Widget_Base
1246
  </div>
1247
  </div>
1248
  </div>
1249
- </div>
1250
  <style>
1251
 
1252
  <?php if( !empty($settings['premium_modal_box_modal_size']['size'] ) ) :
@@ -1261,4 +1258,4 @@ class Premium_Modal_Box_Widget extends Widget_Base
1261
  <?php
1262
  }
1263
  }
1264
- Plugin::instance()->widgets_manager->register_widget_type(new Premium_Modal_Box_Widget());
145
  $this->add_control('premium_modal_box_content_temp',
146
  [
147
  'label' => esc_html__( 'Content', 'premium-addons-for-elementor' ),
148
+ 'description' => esc_html__( 'Modal content is a template which you can choose from Elementor library', 'premium-addons-for-elementor' ),
149
  'type' => Controls_Manager::SELECT2,
150
  'options' => $this->getTemplateInstance()->get_elementor_page_list(),
151
  'condition' => [
1199
  <?php
1200
  if ( $settings['premium_modal_box_display_on'] === 'button' ) : ?>
1201
  <button type="button" class="premium-modal-box-button-selector btn btn-info <?php
1202
+ if( $settings['premium_modal_box_button_size'] === 'sm' ) : echo "premium-btn-sm";
1203
+ elseif( $settings['premium_modal_box_button_size'] === 'md' ) : echo "premium-btn-md";
1204
+ elseif( $settings['premium_modal_box_button_size'] === 'lg' ) : echo "premium-btn-lg";
1205
+ elseif( $settings['premium_modal_box_button_size'] === 'block' ) : echo "premium-btn-block"; endif; ?>" data-toggle="premium-modal" data-target="#premium-modal-<?php echo esc_attr( $this->get_id() ); ?>"><?php if($settings['premium_modal_box_icon_switcher'] && $settings['premium_modal_box_icon_position'] == 'before' && !empty($settings['premium_modal_box_button_icon_selection'])) : ?><i class="fa <?php echo esc_attr($button_icon); ?>"></i><?php endif; ?><span><?php echo $settings['premium_modal_box_button_text']; ?></span><?php if($settings['premium_modal_box_icon_switcher'] && $settings['premium_modal_box_icon_position'] == 'after' &&!empty($settings['premium_modal_box_button_icon_selection'])) : ?><i class="fa <?php echo esc_attr($button_icon); ?>"></i><?php endif; ?></button>
1206
  <?php elseif ( $settings['premium_modal_box_display_on'] === 'image' ) : ?>
1207
  <img class="premium-modal-box-img-selector" data-toggle="premium-modal" data-target="#premium-modal-<?php echo esc_attr( $this->get_id() ); ?>" src="<?php echo $settings['premium_modal_box_image_src']['url'];?>">
1208
  <?php elseif($settings['premium_modal_box_display_on'] === 'text') : ?>
1210
  <?php endif; ?>
1211
  </div>
1212
 
 
1213
  <!-- Modal -->
1214
+ <div id="premium-modal-<?php echo $this->get_id(); ?>" class="premium-modal-box-modal" role="dialog">
1215
+ <div class="premium-modal-box-modal-dialog">
 
1216
 
1217
  <!-- Modal content-->
1218
+ <div class="premium-modal-box-modal-content">
1219
  <?php if($settings['premium_modal_box_header_switcher'] == 'yes'): ?>
1220
+ <div class="premium-modal-box-modal-header">
1221
  <?php if ( $settings['premium_modal_box_upper_close'] === 'yes' ) : ?>
1222
  <div class="premium-modal-box-close-button-container">
1223
+ <button type="button" class="premium-modal-box-modal-close" data-dismiss="premium-modal">&times;</button>
1224
  </div>
1225
  <?php endif; ?>
1226
+ <h3 class="premium-modal-box-modal-title">
1227
  <?php if($settings['premium_modal_box_icon_selection'] === 'fonticon') : ?>
1228
  <i class="fa <?php echo $settings['premium_modal_box_font_icon'];?>"></i>
1229
  <?php elseif( $settings['premium_modal_box_icon_selection'] === 'image' ) : ?>
1231
  <?php endif; ?><?php echo $settings['premium_modal_box_title'];?></h3>
1232
  </div>
1233
  <?php endif; ?>
1234
+ <div class="premium-modal-box-modal-body">
1235
  <?php if($settings['premium_modal_box_content_type'] == 'editor') : echo $settings['premium_modal_box_content']; else: echo $premium_elements_frontend->get_builder_content($elementor_post_id, true); endif; ?>
1236
  </div>
1237
  <?php if ( $settings['premium_modal_box_lower_close'] === 'yes' ) : ?>
1238
+ <div class="premium-modal-box-modal-footer">
1239
+ <button type="button" class="btn premium-modal-box-modal-lower-close" data-dismiss="premium-modal">Close
1240
  </button>
1241
  </div>
1242
  <?php endif; ?>
1244
  </div>
1245
  </div>
1246
  </div>
 
1247
  <style>
1248
 
1249
  <?php if( !empty($settings['premium_modal_box_modal_size']['size'] ) ) :
1258
  <?php
1259
  }
1260
  }
1261
+ Plugin::instance()->widgets_manager->register_widget_type(new Premium_Modal_Box_Widget());