Premium Addons for Elementor - Version 2.0.5

Version Description

  • Tweak: Added API Disable checkbox to Google Maps tab in plugin settings.
  • Tweak: Added arrows position option for Premium Carousel widget.
  • Tweak: Added responsive settings for Premium Banner widget.
  • Tweak: Added icon background padding, border and border radius for Premium Pricing Table widget.
  • Tweak: Added button text hover color for Premium Pricing Table widget.
  • Tweak: Enhanced Premium Blog layout on mobile phones.
  • Fix: Premium Countdown browser compatibility issue on Safari and IE11.
  • Fix: Premium Dual Header horizontal overflow on mobile phones.
  • Fix: Premium Modal Box position bug on Safari .
  • Fix: Premium Video Box video description text with video text switcher off bug.
  • Fix: Premium Video Box border radius bug on Chrome and Opera.
Download this release

Release Info

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

Code changes from version 2.0.4 to 2.0.5

admin/assets/admin.css CHANGED
@@ -225,11 +225,20 @@ input:checked + .slider:before {
225
  }
226
  .slider.round:before {
227
  border-radius: 50%;
228
- }
 
 
 
229
  .pa-api-title {
230
  display: inline-block;
231
  margin: 0;
232
  }
 
 
 
 
 
 
233
  .pa-maps-api-notice {
234
  margin: 10px 0 0 0;
235
  }
225
  }
226
  .slider.round:before {
227
  border-radius: 50%;
228
+ }
229
+ .pa-maps-table {
230
+ text-align: left;
231
+ }
232
  .pa-api-title {
233
  display: inline-block;
234
  margin: 0;
235
  }
236
+ .pa-api-disable-title label {
237
+ margin-right: 15px;
238
+ }
239
+ .pa-api-disable-title span {
240
+ font-weight: normal;
241
+ }
242
  .pa-maps-api-notice {
243
  margin: 10px 0 0 0;
244
  }
admin/settings-page.php CHANGED
@@ -4,7 +4,7 @@ if( ! defined( 'ABSPATH' ) ) exit(); // Exit if accessed directly
4
 
5
  class PA_admin_settings {
6
 
7
- public $pa_elements_keys = ['premium-banner', 'premium-blog','premium-carousel', 'premium-countdown','premium-counter','premium-dual-header','premium-fancytext','premium-image-separator','premium-maps','premium-modalbox','premium-person','premium-progressbar','premium-testimonials','premium-title','premium-videobox','premium-pricing-table','premium-button','premium-contactform', 'premium-image-button', 'premium-map-api'];
8
 
9
  private $pa_default_settings;
10
 
@@ -304,7 +304,7 @@ class PA_admin_settings {
304
  </div>
305
  <div id="pa-maps-api" class="pa-maps-tab">
306
  <div class="pa-row">
307
- <table>
308
  <tr>
309
  <p class="pa-maps-api-notice">
310
  Premium Maps Element requires Google API key to be entered below. If you don’t have one, Click <a href="https://developers.google.com/maps/documentation/javascript/" target="_blank"> Here</a> to get your key.
@@ -313,6 +313,9 @@ class PA_admin_settings {
313
  <tr>
314
  <th><h4 class="pa-api-title"><label>Google Maps API Key:</label><input name="premium-map-api" id="premium-map-api" type="text" placeholder="API Key" value="<?php echo $this->pa_get_settings['premium-map-api']; ?>"></h4></th>
315
  </tr>
 
 
 
316
  </table>
317
  <input type="submit" value="Save Settings" class="button pa-btn pa-save-button">
318
  </div>
@@ -366,7 +369,7 @@ class PA_admin_settings {
366
  'premium-contactform' => intval( $settings['premium-contactform'] ? 1 : 0),
367
  'premium-image-button' => intval( $settings['premium-image-button'] ? 1 : 0),
368
  'premium-map-api' => $settings['premium-map-api'],
369
- 'wisdom_registered_setting' => 1,
370
  );
371
  update_option( 'pa_save_settings', $this->pa_settings );
372
 
4
 
5
  class PA_admin_settings {
6
 
7
+ public $pa_elements_keys = ['premium-banner', 'premium-blog','premium-carousel', 'premium-countdown','premium-counter','premium-dual-header','premium-fancytext','premium-image-separator','premium-maps','premium-modalbox','premium-person','premium-progressbar','premium-testimonials','premium-title','premium-videobox','premium-pricing-table','premium-button','premium-contactform', 'premium-image-button', 'premium-map-api', 'premium-map-disable-api'];
8
 
9
  private $pa_default_settings;
10
 
304
  </div>
305
  <div id="pa-maps-api" class="pa-maps-tab">
306
  <div class="pa-row">
307
+ <table class="pa-maps-table">
308
  <tr>
309
  <p class="pa-maps-api-notice">
310
  Premium Maps Element requires Google API key to be entered below. If you don’t have one, Click <a href="https://developers.google.com/maps/documentation/javascript/" target="_blank"> Here</a> to get your key.
313
  <tr>
314
  <th><h4 class="pa-api-title"><label>Google Maps API Key:</label><input name="premium-map-api" id="premium-map-api" type="text" placeholder="API Key" value="<?php echo $this->pa_get_settings['premium-map-api']; ?>"></h4></th>
315
  </tr>
316
+ <tr>
317
+ <th><h4 class="pa-api-disable-title"><label><?php echo esc_html__('Enable Maps API JS File:','premium-addons-for-elementor'); ?></label><input name="premium-map-disable-api" id="premium-map-disable-api" type="checkbox" <?php checked(1, $this->pa_get_settings['premium-map-disable-api'], true) ?>><span>This will Enable the API JS file if it's not included by another theme or plugin</span></h4></th>
318
+ </tr>
319
  </table>
320
  <input type="submit" value="Save Settings" class="button pa-btn pa-save-button">
321
  </div>
369
  'premium-contactform' => intval( $settings['premium-contactform'] ? 1 : 0),
370
  'premium-image-button' => intval( $settings['premium-image-button'] ? 1 : 0),
371
  'premium-map-api' => $settings['premium-map-api'],
372
+ 'premium-map-disable-api' => intval( $settings['premium-map-disable-api'] ? 1 : 0),
373
  );
374
  update_option( 'pa_save_settings', $this->pa_settings );
375
 
assets/css/premium-addons.css CHANGED
@@ -671,10 +671,10 @@
671
  left: 50%;
672
  }
673
  a.carousel-arrow.carousel-next {
674
- right: -45px;
675
  }
676
  a.carousel-arrow.carousel-prev {
677
- left: -45px;
678
  }
679
  a.ver-carousel-arrow.carousel-next {
680
  bottom: -56px;
@@ -872,7 +872,7 @@ button.close {
872
  overflow-y: auto
873
  }
874
  .premium-modal-box-modal.fade .modal-dialog{
875
- position: relative;
876
  top: 50%;
877
  left: 50%;
878
  -webkit-transform: translate(-50%,-50%) !important;
@@ -880,11 +880,9 @@ button.close {
880
  margin: 0;
881
  }
882
  .modal-content {
883
- position: relative;
884
  background-color: #fff;
885
  -webkit-background-clip: padding-box;
886
  background-clip: padding-box;
887
- border: 1px solid #999;
888
  border: 1px solid rgba(0, 0, 0, .2);
889
  border-radius: 6px;
890
  outline: 0;
@@ -959,14 +957,6 @@ button.close {
959
  -webkit-box-shadow: 0 5px 15px rgba(0, 0, 0, .5);
960
  box-shadow: 0 5px 15px rgba(0, 0, 0, .5)
961
  }
962
- .modal-sm {
963
- width: 300px
964
- }
965
- }
966
- @media (min-width:992px) {
967
- .modal-lg {
968
- width: 900px
969
- }
970
  }
971
  .premium-modal-box-container {
972
  width: 100% !important;
@@ -1287,6 +1277,7 @@ button.close {
1287
  -o-transition: opacity 0.8s ease-in-out;
1288
  -ms-transition: opacity 0.8s ease-in-out;
1289
  transition: opacity 0.8s ease-in-out;
 
1290
  }
1291
  /*Video Iframe Style*/
1292
  .premium-video-box-video-container iframe{
@@ -1642,16 +1633,23 @@ button.close {
1642
  font-size: 17.8px;
1643
  }
1644
  @media (max-width: 768px) {
 
 
 
 
 
 
 
1645
  .premium-blog-format-container {
1646
  display: none;
1647
  }
1648
  .premium-blog-entry-meta,
1649
  .premium-blog-post-content {
1650
- margin-left: 0px;
1651
- }
1652
  .premium-blog-post-tags-container {
1653
  margin-left: 0px;
1654
- }
1655
  }
1656
  /**************** Premium Person ******************/
1657
  /**************************************************/
@@ -1790,6 +1788,13 @@ button.close {
1790
  -webkit-transform: translate(0,0);
1791
  transform: translate(0,0);
1792
  }
 
 
 
 
 
 
 
1793
  .premium-dual-header-first-container {
1794
  margin-right: 5px;
1795
  }
@@ -1811,16 +1816,12 @@ button.close {
1811
  .premium-pricing-table-container {
1812
  text-align: center;
1813
  overflow: hidden;
1814
- border: 1px solid #dddddd;
1815
  -webkit-transition: all 0.3s ease-in-out;
1816
  -moz-transition: all 0.3s ease-in-out;
1817
  -o-transition: all 0.3s ease-in-out;
1818
  -ms-transition: all 0.3s ease-in-out;
1819
  transition: all 0.3s ease-in-out;
1820
  }
1821
- .premium-pricing-table-container:hover {
1822
- box-shadow: 0 30px 65px 0 rgba(0,0,0,0.21);
1823
- }
1824
  .premium-badge-left,
1825
  .premium-badge-right {
1826
  position:absolute;
@@ -1875,9 +1876,6 @@ button.close {
1875
  list-style-type: none;
1876
  margin: 0;
1877
  }
1878
- .premium-pricing-price-container {
1879
- background: #eaeaea;
1880
- }
1881
  .premium-pricing-price-value {
1882
  font-size: 70px;
1883
  }
671
  left: 50%;
672
  }
673
  a.carousel-arrow.carousel-next {
674
+ right: -20px;
675
  }
676
  a.carousel-arrow.carousel-prev {
677
+ left: -20px;
678
  }
679
  a.ver-carousel-arrow.carousel-next {
680
  bottom: -56px;
872
  overflow-y: auto
873
  }
874
  .premium-modal-box-modal.fade .modal-dialog{
875
+ position: absolute;
876
  top: 50%;
877
  left: 50%;
878
  -webkit-transform: translate(-50%,-50%) !important;
880
  margin: 0;
881
  }
882
  .modal-content {
 
883
  background-color: #fff;
884
  -webkit-background-clip: padding-box;
885
  background-clip: padding-box;
 
886
  border: 1px solid rgba(0, 0, 0, .2);
887
  border-radius: 6px;
888
  outline: 0;
957
  -webkit-box-shadow: 0 5px 15px rgba(0, 0, 0, .5);
958
  box-shadow: 0 5px 15px rgba(0, 0, 0, .5)
959
  }
 
 
 
 
 
 
 
 
960
  }
961
  .premium-modal-box-container {
962
  width: 100% !important;
1277
  -o-transition: opacity 0.8s ease-in-out;
1278
  -ms-transition: opacity 0.8s ease-in-out;
1279
  transition: opacity 0.8s ease-in-out;
1280
+ overflow: hidden;
1281
  }
1282
  /*Video Iframe Style*/
1283
  .premium-video-box-video-container iframe{
1633
  font-size: 17.8px;
1634
  }
1635
  @media (max-width: 768px) {
1636
+ .premium-blog-content-wrapper {
1637
+ top: 0;
1638
+ margin: 0;
1639
+ }
1640
+ .premium-blog-thumb-effect-wrapper {
1641
+ margin-bottom: 15px;
1642
+ }
1643
  .premium-blog-format-container {
1644
  display: none;
1645
  }
1646
  .premium-blog-entry-meta,
1647
  .premium-blog-post-content {
1648
+ margin-left: 0px;
1649
+ }
1650
  .premium-blog-post-tags-container {
1651
  margin-left: 0px;
1652
+ }
1653
  }
1654
  /**************** Premium Person ******************/
1655
  /**************************************************/
1788
  -webkit-transform: translate(0,0);
1789
  transform: translate(0,0);
1790
  }
1791
+ @media (max-width: 500px) {
1792
+ .premium-dual-header-container .premium-dual-header-first-header,
1793
+ .premium-dual-header-container .premium-dual-header-second-header {
1794
+ display: block;
1795
+ word-wrap: break-word;
1796
+ }
1797
+ }
1798
  .premium-dual-header-first-container {
1799
  margin-right: 5px;
1800
  }
1816
  .premium-pricing-table-container {
1817
  text-align: center;
1818
  overflow: hidden;
 
1819
  -webkit-transition: all 0.3s ease-in-out;
1820
  -moz-transition: all 0.3s ease-in-out;
1821
  -o-transition: all 0.3s ease-in-out;
1822
  -ms-transition: all 0.3s ease-in-out;
1823
  transition: all 0.3s ease-in-out;
1824
  }
 
 
 
1825
  .premium-badge-left,
1826
  .premium-badge-right {
1827
  position:absolute;
1876
  list-style-type: none;
1877
  margin: 0;
1878
  }
 
 
 
1879
  .premium-pricing-price-value {
1880
  font-size: 70px;
1881
  }
premium-addons-for-elementor.php CHANGED
@@ -3,7 +3,7 @@
3
  Plugin Name: Premium Addons for Elementor
4
  Description: This Plugin Includes Elementor Page Builder’s Premium Addon Elements.
5
  Plugin URI: https://premiumaddons.com
6
- Version: 2.0.4
7
  Author: Leap13
8
  Author URI: http://leap13.com/
9
  Text Domain: premium-addons-for-elementor
@@ -111,8 +111,14 @@ define( 'PREMIUM_ADDONS_FILE', __FILE__ );
111
  wp_enqueue_style( 'premium-addons-css', PREMIUM_ADDONS_URL . 'assets/css/premium-addons.css', array(), '1.0', 'all' );
112
 
113
  $premium_maps_api = get_option( 'pa_save_settings' )['premium-map-api'];
 
 
 
 
 
 
 
114
 
115
- wp_enqueue_script('google-maps-script','https://maps.googleapis.com/maps/api/js?key='.$premium_maps_api , array('jquery'), '1.0', false);
116
 
117
  }
118
 
3
  Plugin Name: Premium Addons for Elementor
4
  Description: This Plugin Includes Elementor Page Builder’s Premium Addon Elements.
5
  Plugin URI: https://premiumaddons.com
6
+ Version: 2.0.5
7
  Author: Leap13
8
  Author URI: http://leap13.com/
9
  Text Domain: premium-addons-for-elementor
111
  wp_enqueue_style( 'premium-addons-css', PREMIUM_ADDONS_URL . 'assets/css/premium-addons.css', array(), '1.0', 'all' );
112
 
113
  $premium_maps_api = get_option( 'pa_save_settings' )['premium-map-api'];
114
+ $premium_maps_disable_api = get_option( 'pa_save_settings' )['premium-map-disable-api'];
115
+
116
+ if ($premium_maps_disable_api == 1) {
117
+ wp_enqueue_script('google-maps-script','https://maps.googleapis.com/maps/api/js?key='.$premium_maps_api , array('jquery'), '1.0', false);
118
+ } else {
119
+ wp_enqueue_script('google-maps-script','https://maps.googleapis.com/maps/api/js?key=' , array('jquery'), '1.0', false);
120
+ }
121
 
 
122
 
123
  }
124
 
readme.txt CHANGED
@@ -79,6 +79,20 @@ Premium Addons for Elementor is light weight and we also gave you the control to
79
 
80
  == Changelog ==
81
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
82
  = 2.0.4 =
83
 
84
  - Tweak: Changed the way it loads Js files for better performance.
79
 
80
  == Changelog ==
81
 
82
+ = 2.0.5 =
83
+
84
+ - Tweak: Added API Disable checkbox to Google Maps tab in plugin settings.
85
+ - Tweak: Added arrows position option for Premium Carousel widget.
86
+ - Tweak: Added responsive settings for Premium Banner widget.
87
+ - Tweak: Added icon background padding, border and border radius for Premium Pricing Table widget.
88
+ - Tweak: Added button text hover color for Premium Pricing Table widget.
89
+ - Tweak: Enhanced Premium Blog layout on mobile phones.
90
+ - Fix: Premium Countdown browser compatibility issue on Safari and IE11.
91
+ - Fix: Premium Dual Header horizontal overflow on mobile phones.
92
+ - Fix: Premium Modal Box position bug on Safari .
93
+ - Fix: Premium Video Box video description text with video text switcher off bug.
94
+ - Fix: Premium Video Box border radius bug on Chrome and Opera.
95
+
96
  = 2.0.4 =
97
 
98
  - Tweak: Changed the way it loads Js files for better performance.
widgets/premium-banner.php CHANGED
@@ -322,6 +322,43 @@ class Premium_Banner_Widget extends Widget_Base {
322
 
323
  $this->end_controls_section();
324
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
325
  $this->start_controls_section(
326
  'premium_banner_opacity_style',
327
  [
@@ -463,9 +500,12 @@ class Premium_Banner_Widget extends Widget_Base {
463
  $extra_class = isset( $settings['premium_banner_extra_class'] ) && $settings['premium_banner_extra_class'] != '' ? ' '. $settings['premium_banner_extra_class'] : '';
464
  $min_height_class = $settings['premium_banner_height'] == 'custom' ? '' : '';
465
  $full_class = $animation_class.$extra_class.$min_height_class;
 
 
 
466
  ob_start();
467
  ?>
468
- <div class="premium_banner">
469
  <div class="premium_addons-banner-ib <?php echo $full_class; ?> premium-banner-min-height">
470
  <?php if( isset( $settings['premium_banner_image']['url'] ) && $settings['premium_banner_image']['url'] != '' ): ?>
471
  <img class="premium_addons-banner-ib-img" alt="null" src="<?php echo $settings['premium_banner_image']['url']; ?>">
@@ -496,6 +536,16 @@ class Premium_Banner_Widget extends Widget_Base {
496
  })
497
  })(jQuery);
498
  </script>
 
 
 
 
 
 
 
 
 
 
499
  </div>
500
  <?php $output = ob_get_clean();
501
  echo $output;
322
 
323
  $this->end_controls_section();
324
 
325
+ $this->start_controls_section('premium_banner_responsive_section',
326
+ [
327
+ 'label' => esc_html__('Responsive Settings', 'premium-addons-for-elementor'),
328
+ ]);
329
+
330
+
331
+ $this->add_control('premium_banner_responsive_switcher',
332
+ [
333
+ 'label' => esc_html__('Responsive Controls', 'premium-addons-for-elementor'),
334
+ 'type' => Controls_Manager::SWITCHER,
335
+ 'description' => esc_html__('Enabling Responsive Controls will hide the description text for the screen size that is specified', 'premium-addons-for-elementor')
336
+ ]);
337
+
338
+ $this->add_control('premium_banner_min_range',
339
+ [
340
+ 'label' => esc_html__('Min Screen Size (PX)', 'premium-addons-for-elementor'),
341
+ 'type' => Controls_Manager::NUMBER,
342
+ 'description'=> esc_html__('(Hint: min size for extra small screens is 1px)','premium-addons-for-elementor'),
343
+ 'default' => 1,
344
+ 'condition' => [
345
+ 'premium_banner_responsive_switcher' => 'yes'
346
+ ],
347
+ ]);
348
+
349
+ $this->add_control('premium_banner_max_range',
350
+ [
351
+ 'label' => esc_html__('Max Screen Size (PX)', 'premium-addons-for-elementor'),
352
+ 'type' => Controls_Manager::NUMBER,
353
+ 'description'=> esc_html__('(Hint: max size for extra small screens is 767px)','premium-addons-for-elementor'),
354
+ 'default' => 767,
355
+ 'condition' => [
356
+ 'premium_banner_responsive_switcher' => 'yes'
357
+ ],
358
+ ]);
359
+
360
+ $this->end_controls_section();
361
+
362
  $this->start_controls_section(
363
  'premium_banner_opacity_style',
364
  [
500
  $extra_class = isset( $settings['premium_banner_extra_class'] ) && $settings['premium_banner_extra_class'] != '' ? ' '. $settings['premium_banner_extra_class'] : '';
501
  $min_height_class = $settings['premium_banner_height'] == 'custom' ? '' : '';
502
  $full_class = $animation_class.$extra_class.$min_height_class;
503
+ $min_size = $settings['premium_banner_min_range'].'px';
504
+ $max_size = $settings['premium_banner_max_range'].'px';
505
+
506
  ob_start();
507
  ?>
508
+ <div class="premium_banner" id="premium-banner-<?php echo esc_attr($this->get_id()); ?>">
509
  <div class="premium_addons-banner-ib <?php echo $full_class; ?> premium-banner-min-height">
510
  <?php if( isset( $settings['premium_banner_image']['url'] ) && $settings['premium_banner_image']['url'] != '' ): ?>
511
  <img class="premium_addons-banner-ib-img" alt="null" src="<?php echo $settings['premium_banner_image']['url']; ?>">
536
  })
537
  })(jQuery);
538
  </script>
539
+ <?php if($settings['premium_banner_responsive_switcher'] == 'yes') : ?>
540
+ <style>
541
+ @media(min-width: <?php echo $min_size; ?> ) and (max-width:<?php echo $max_size; ?>){
542
+ #premium-banner-<?php echo esc_attr($this->get_id()); ?> .premium_addons-banner-ib-content {
543
+ display: none;
544
+ }
545
+ }
546
+ </style>
547
+ <?php endif; ?>
548
+
549
  </div>
550
  <?php $output = ob_get_clean();
551
  echo $output;
widgets/premium-carousel.php CHANGED
@@ -21,6 +21,11 @@ class Premium_Carousel_Widget extends Widget_Base {
21
  public function get_icon() {
22
  return 'pa-carousel';
23
  }
 
 
 
 
 
24
 
25
  public function get_script_depends() {
26
  return ['slick-carousel-js'];
@@ -307,6 +312,23 @@ class Premium_Carousel_Widget extends Widget_Base {
307
  ],
308
  ]
309
  );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
310
 
311
  $this->add_control(
312
  'premium_carousel_arrow_icon_next',
@@ -592,6 +614,7 @@ class Premium_Carousel_Widget extends Widget_Base {
592
  protected function render() {
593
  $settings = $this->get_settings();
594
  $options = '';
 
595
  // Carousel sliding type
596
  if( $settings['premium_carousel_slider_type'] == 'horizontal' ){
597
  $options .= 'vertical: false,'."\r\n";
@@ -835,7 +858,16 @@ class Premium_Carousel_Widget extends Widget_Base {
835
  <?php endforeach; ?>
836
  </div>
837
  </div>
838
-
 
 
 
 
 
 
 
 
 
839
  <script type="text/javascript">
840
  (function( $ ) {
841
  $(document).ready( function() {
21
  public function get_icon() {
22
  return 'pa-carousel';
23
  }
24
+
25
+ public function is_reload_preview_required()
26
+ {
27
+ return true;
28
+ }
29
 
30
  public function get_script_depends() {
31
  return ['slick-carousel-js'];
312
  ],
313
  ]
314
  );
315
+
316
+ $this->add_control('premium_carousel_arrow_position',
317
+ [
318
+ 'label' => esc_html__('Arrows Position (PX)', 'premium-addons-for-elementor'),
319
+ 'type' => Controls_Manager::SLIDER,
320
+ 'range' => [
321
+ 'px' => [
322
+ 'min' => -50,
323
+ 'max' => 1,
324
+ ],
325
+ ],
326
+ 'condition' => [
327
+ 'premium_carousel_navigation_show' => 'yes',
328
+ 'premium_carousel_slider_type' => 'horizontal'
329
+ ],
330
+ ]
331
+ );
332
 
333
  $this->add_control(
334
  'premium_carousel_arrow_icon_next',
614
  protected function render() {
615
  $settings = $this->get_settings();
616
  $options = '';
617
+ $arrows_position = $settings['premium_carousel_arrow_position']['size'] . 'px';
618
  // Carousel sliding type
619
  if( $settings['premium_carousel_slider_type'] == 'horizontal' ){
620
  $options .= 'vertical: false,'."\r\n";
858
  <?php endforeach; ?>
859
  </div>
860
  </div>
861
+ <style>
862
+ <?php if(!empty($settings['premium_carousel_arrow_position']['size'])) : ?>
863
+ #premium-carousel-wrapper-<?php echo esc_attr( $this->get_id() ); ?> a.carousel-arrow.carousel-next {
864
+ right: <?php echo $arrows_position; ?>
865
+ }
866
+ #premium-carousel-wrapper-<?php echo esc_attr( $this->get_id() ); ?> a.carousel-arrow.carousel-prev {
867
+ left: <?php echo $arrows_position; ?>
868
+ }
869
+ <?php endif; ?>
870
+ </style>
871
  <script type="text/javascript">
872
  (function( $ ) {
873
  $(document).ready( function() {
widgets/premium-countdown.php CHANGED
@@ -16,8 +16,12 @@ class Premium_Counter_Down_Widget extends Widget_Base {
16
  public function get_icon() {
17
  return 'pa-countdown';
18
  }
19
-
20
- public function get_script_depends() {
 
 
 
 
21
  return [ 'count-down-timer-js' ];
22
  }
23
 
@@ -54,7 +58,7 @@ class Premium_Counter_Down_Widget extends Widget_Base {
54
  'label' => esc_html__( 'Target Date and Time', 'premium-addons-for-elementor' ),
55
  'type' => Controls_Manager::DATE_TIME,
56
  'picker_options' => [
57
- 'format' => 'Y/m/d H:m:s'
58
  ],
59
  'default' => date( "Y/m/d H:m:s", strtotime("+ 1 Day") ),
60
  'description' => esc_html__( 'Date format is (yyyy/mm/dd). Time format is (hh:mm:ss). Example: 2020-01-01 09:30.', 'boosted-elements-progression' )
@@ -442,7 +446,8 @@ class Premium_Counter_Down_Widget extends Widget_Base {
442
 
443
  $settings = $this->get_settings();
444
 
445
- $target_date = $settings['premium_countdown_date_time'];
 
446
  $formats = $settings['premium_countdown_units'];
447
  $format = implode('', $formats );
448
  $time = str_replace('-', '/', current_time('mysql') );
@@ -525,17 +530,6 @@ class Premium_Counter_Down_Widget extends Widget_Base {
525
  }
526
  });
527
 
528
- // On duplicate load everything on iframe load
529
- $('.elementor-element-overlay .elementor-editor-element-duplicate').on('click', function() {
530
- var $this = $(this),
531
- page_url = document.location.href;
532
-
533
- parentId = $this.parents('section.elementor-element');
534
-
535
- if( parentId.find('#countDownContiner').length ) {
536
- document.location.href = page_url;
537
- }
538
- });
539
  })( jQuery );
540
 
541
  </script>
16
  public function get_icon() {
17
  return 'pa-countdown';
18
  }
19
+
20
+ public function is_reload_preview_required() {
21
+ return true;
22
+ }
23
+
24
+ public function get_script_depends() {
25
  return [ 'count-down-timer-js' ];
26
  }
27
 
58
  'label' => esc_html__( 'Target Date and Time', 'premium-addons-for-elementor' ),
59
  'type' => Controls_Manager::DATE_TIME,
60
  'picker_options' => [
61
+ 'format' => 'Ym/d H:m:s'
62
  ],
63
  'default' => date( "Y/m/d H:m:s", strtotime("+ 1 Day") ),
64
  'description' => esc_html__( 'Date format is (yyyy/mm/dd). Time format is (hh:mm:ss). Example: 2020-01-01 09:30.', 'boosted-elements-progression' )
446
 
447
  $settings = $this->get_settings();
448
 
449
+ $target_date = str_replace('-', '/', $settings['premium_countdown_date_time'] );
450
+
451
  $formats = $settings['premium_countdown_units'];
452
  $format = implode('', $formats );
453
  $time = str_replace('-', '/', current_time('mysql') );
530
  }
531
  });
532
 
 
 
 
 
 
 
 
 
 
 
 
533
  })( jQuery );
534
 
535
  </script>
widgets/premium-maps.php CHANGED
@@ -554,6 +554,7 @@ class Premium_Maps_Widget extends Widget_Base
554
  marker = new google.maps.Marker({
555
  position: new google.maps.LatLng(locations[i][2], locations[i][3]),
556
  icon: locations[i][4],
 
557
  map: map
558
  });
559
  infowindow = new google.maps.InfoWindow({
554
  marker = new google.maps.Marker({
555
  position: new google.maps.LatLng(locations[i][2], locations[i][3]),
556
  icon: locations[i][4],
557
+ optimized: false,
558
  map: map
559
  });
560
  infowindow = new google.maps.InfoWindow({
widgets/premium-modalbox.php CHANGED
@@ -511,9 +511,6 @@ class Premium_Modal_Box_Widget extends Widget_Base
511
  ]
512
  ],
513
  'label_block' => true,
514
- 'selectors' => [
515
- '{{WRAPPER}} .premium-modal-box-modal-dialog' => 'width: {{SIZE}}{{UNIT}};',
516
- ]
517
  ]
518
  );
519
 
@@ -1002,7 +999,7 @@ class Premium_Modal_Box_Widget extends Widget_Base
1002
 
1003
  <!-- Modal -->
1004
  <div class="bootstrap-wrapper">
1005
- <div class="modal fade premium-modal-box-modal" id="premium-modal-<?php echo $this->get_id(); ?>" role="dialog">
1006
  <div class="modal-dialog premium-modal-box-modal-dialog">
1007
 
1008
  <!-- Modal content-->
@@ -1034,6 +1031,16 @@ class Premium_Modal_Box_Widget extends Widget_Base
1034
  </div>
1035
  </div>
1036
  </div>
 
 
 
 
 
 
 
 
 
 
1037
 
1038
  <?php
1039
  }
511
  ]
512
  ],
513
  'label_block' => true,
 
 
 
514
  ]
515
  );
516
 
999
 
1000
  <!-- Modal -->
1001
  <div class="bootstrap-wrapper">
1002
+ <div id="premium-modal-<?php echo $this->get_id(); ?>" class="modal fade premium-modal-box-modal" role="dialog">
1003
  <div class="modal-dialog premium-modal-box-modal-dialog">
1004
 
1005
  <!-- Modal content-->
1031
  </div>
1032
  </div>
1033
  </div>
1034
+ <style>
1035
+
1036
+ <?php if( !empty($settings['premium_modal_box_modal_size']['size'] ) ) :
1037
+ echo '@media (min-width:992px) {'; ?>
1038
+ #premium-modal-<?php echo $this->get_id(); ?> .premium-modal-box-modal-dialog {
1039
+ width: <?php echo $settings['premium_modal_box_modal_size']['size'] . $settings['premium_modal_box_modal_size']['unit']; ?>
1040
+ }
1041
+ <?php echo '}'; endif; ?>
1042
+
1043
+ </style>
1044
 
1045
  <?php
1046
  }
widgets/premium-pricing-table.php CHANGED
@@ -644,7 +644,7 @@ class Premium_Pricing_Table_Widget extends Widget_Base
644
  'type' => Controls_Manager::COLOR,
645
  'scheme' => [
646
  'type' => Scheme_Color::get_type(),
647
- 'value' => Scheme_Color::COLOR_1,
648
  ],
649
  'selectors' => [
650
  '{{WRAPPER}} .premium-pricing-icon-container i' => 'color: {{VALUE}};'
@@ -658,7 +658,7 @@ class Premium_Pricing_Table_Widget extends Widget_Base
658
  'type' => Controls_Manager::COLOR,
659
  'scheme' => [
660
  'type' => Scheme_Color::get_type(),
661
- 'value' => Scheme_Color::COLOR_2,
662
  ],
663
  'selectors' => [
664
  '{{WRAPPER}} .premium-pricing-icon-container i' => 'background-color: {{VALUE}};'
@@ -679,6 +679,45 @@ class Premium_Pricing_Table_Widget extends Widget_Base
679
  ]
680
  );
681
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
682
  /*Icon Background*/
683
  $this->add_group_control(
684
  Group_Control_Background::get_type(),
@@ -719,7 +758,7 @@ class Premium_Pricing_Table_Widget extends Widget_Base
719
  'default' => [
720
  'top' => 50,
721
  'right' => 0,
722
- 'bottom'=> 0,
723
  'left' => 0,
724
  'unit' => 'px',
725
  ],
@@ -1334,6 +1373,20 @@ class Premium_Pricing_Table_Widget extends Widget_Base
1334
  ]
1335
  );
1336
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1337
  /*Button Typography*/
1338
  $this->add_group_control(
1339
  Group_Control_Typography::get_type(),
644
  'type' => Controls_Manager::COLOR,
645
  'scheme' => [
646
  'type' => Scheme_Color::get_type(),
647
+ 'value' => Scheme_Color::COLOR_2,
648
  ],
649
  'selectors' => [
650
  '{{WRAPPER}} .premium-pricing-icon-container i' => 'color: {{VALUE}};'
658
  'type' => Controls_Manager::COLOR,
659
  'scheme' => [
660
  'type' => Scheme_Color::get_type(),
661
+ 'value' => Scheme_Color::COLOR_1,
662
  ],
663
  'selectors' => [
664
  '{{WRAPPER}} .premium-pricing-icon-container i' => 'background-color: {{VALUE}};'
679
  ]
680
  );
681
 
682
+ $this->add_responsive_control('premium_pricing_icon_inner_padding',
683
+ [
684
+ 'label' => esc_html__('Icon Padding', 'premium-addons-for-elementor'),
685
+ 'type' => Controls_Manager::SLIDER,
686
+ 'size_units' => ['px','em'],
687
+ 'default' => [
688
+ 'size' => 10,
689
+ 'unit' => 'px'
690
+ ],
691
+ 'selectors' => [
692
+ '{{WRAPPER}} .premium-pricing-icon-container i' => 'padding: {{SIZE}}{{UNIT}};',
693
+ ]
694
+ ]
695
+ );
696
+
697
+ $this->add_group_control(
698
+ Group_Control_Border::get_type(),
699
+ [
700
+ 'name' => 'premium_pricing_icon_inner_border',
701
+ 'selector' => '{{WRAPPER}} .premium-pricing-icon-container i',
702
+ ]
703
+ );
704
+
705
+ $this->add_control('premium_pricing_icon_inner_radius',
706
+ [
707
+ 'label' => esc_html__('Border Radius', 'premium-addons-for-elementor'),
708
+ 'type' => Controls_Manager::SLIDER,
709
+ 'size_units' => ['px', '%' , 'em'],
710
+ 'default' => [
711
+ 'size' => 100,
712
+ 'unit' => 'px'
713
+ ],
714
+ 'selectors' => [
715
+ '{{WRAPPER}} .premium-pricing-icon-container i' => 'border-radius: {{SIZE}}{{UNIT}};',
716
+ ],
717
+ 'separator' => 'after'
718
+ ]
719
+ );
720
+
721
  /*Icon Background*/
722
  $this->add_group_control(
723
  Group_Control_Background::get_type(),
758
  'default' => [
759
  'top' => 50,
760
  'right' => 0,
761
+ 'bottom'=> 20,
762
  'left' => 0,
763
  'unit' => 'px',
764
  ],
1373
  ]
1374
  );
1375
 
1376
+ $this->add_control('premium_pricing_button_hover_color',
1377
+ [
1378
+ 'label' => esc_html__('Hover Text Color', 'premium-addons-for-elementor'),
1379
+ 'type' => Controls_Manager::COLOR,
1380
+ 'scheme' => [
1381
+ 'type' => Scheme_Color::get_type(),
1382
+ 'value' => Scheme_Color::COLOR_2,
1383
+ ],
1384
+ 'selectors' => [
1385
+ '{{WRAPPER}} .premium-pricing-price-button:hover' => 'color: {{VALUE}};'
1386
+ ]
1387
+ ]
1388
+ );
1389
+
1390
  /*Button Typography*/
1391
  $this->add_group_control(
1392
  Group_Control_Typography::get_type(),
widgets/premium-videobox.php CHANGED
@@ -246,18 +246,18 @@ class Premium_Video_Box_Widget extends Widget_Base
246
  Group_Control_Border::get_type(),
247
  [
248
  'name' => 'image_border',
249
- 'selector' => '{{WRAPPER}} .premium-video-box-image, {{WRAPPER}} .premium-video-box-video-container iframe',
250
  ]
251
  );
252
 
253
  /*Image Border Radius*/
254
- $this->add_control('premium_video_box_image_border_radius',
255
  [
256
  'label' => esc_html__('Border Radius', 'premium-addons-for-elementor'),
257
  'type' => Controls_Manager::SLIDER,
258
  'size_units' => ['px', '%', 'em'],
259
  'selectors' => [
260
- '{{WRAPPER}} .premium-video-box-image, {{WRAPPER}} .premium-video-box-video-container iframe' => 'border-radius: {{SIZE}}{{UNIT}};',
261
  ]
262
  ]
263
  );
@@ -527,7 +527,7 @@ class Premium_Video_Box_Widget extends Widget_Base
527
  <i class="premium-video-box-play-icon fa fa-play fa-lg"></i>
528
  <?php endif; ?>
529
  </div>
530
- <?php if( !empty( $settings['premium_video_box_description_text'] ) ) : ?>
531
  <div class="premium-video-box-description-container">
532
  <p class="premium-video-box-text"><?php echo $settings['premium_video_box_description_text']; ?></p>
533
  </div>
246
  Group_Control_Border::get_type(),
247
  [
248
  'name' => 'image_border',
249
+ 'selector' => '{{WRAPPER}} .premium-video-box-image, {{WRAPPER}} .premium-video-box-video-container',
250
  ]
251
  );
252
 
253
  /*Image Border Radius*/
254
+ $this->add_responsive_control('premium_video_box_image_border_radius',
255
  [
256
  'label' => esc_html__('Border Radius', 'premium-addons-for-elementor'),
257
  'type' => Controls_Manager::SLIDER,
258
  'size_units' => ['px', '%', 'em'],
259
  'selectors' => [
260
+ '{{WRAPPER}} .premium-video-box-image, {{WRAPPER}} .premium-video-box-video-container' => 'border-top-left-radius: {{SIZE}}{{UNIT}}; border-top-right-radius: {{SIZE}}{{UNIT}}; border-bottom-left-radius: {{SIZE}}{{UNIT}}; border-bottom-right-radius: {{SIZE}}{{UNIT}};',
261
  ]
262
  ]
263
  );
527
  <i class="premium-video-box-play-icon fa fa-play fa-lg"></i>
528
  <?php endif; ?>
529
  </div>
530
+ <?php if( $settings['premium_video_box_video_text_switcher'] == 'yes' && !empty( $settings['premium_video_box_description_text'] ) ) : ?>
531
  <div class="premium-video-box-description-container">
532
  <p class="premium-video-box-text"><?php echo $settings['premium_video_box_description_text']; ?></p>
533
  </div>