Premium Addons for Elementor - Version 3.4.9

Version Description

  • Tweak: Added Player Controls and Start/End Time options for Video Box widget.
Download this release

Release Info

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

Code changes from version 3.4.8 to 3.4.9

admin/assets/css/admin.css CHANGED
@@ -1 +1 @@
1
- .pa-header-wrapper{padding:20px;overflow:hidden}.pa-title-left{width:80%;float:left}h1.pa-title-main{padding:0;line-height:1.3em;font-size:42px;margin-top:5px}.pa-title-sub{color:#777;font-weight:400;margin-left:3px}.pa-title-right{float:right}.pa-title-right img{width:100px;height:100px}.button.pa-btn{border:none;color:#fff;text-align:center;padding:3px;max-width:250px;height:auto;margin-bottom:15px;display:block;font-weight:700;box-shadow:none}.pa-btn.pa-save-button{background-color:#1A7FC2;margin-bottom:0;margin-top:30px;padding:3px 10px}.pa-btn.pa-save-button:hover{background:#0e629a;color:#fff}.pa-btn.pa-save-button:focus{background:#0e629a;color:#fff}.pa-settings-tabs-list{margin:0;border-bottom:1px solid #ccc}.pa-settings-tabs-list li{display:inline-block;margin-bottom:4px;margin-left:.5em}.pa-tab-list-item{background:#e5e5e5;padding:9px 15px;line-height:30px;font-size:18px;font-weight:700;color:#444;text-decoration:none;border:1px solid #ccc;border-bottom:none}.pa-tab-list-item:focus{box-shadow:none}li.ui-state-default:not(.ui-state-active):hover a{background:#fff;color:#444}li.ui-state-active a{outline:none;color:#000;background:transparent;box-shadow:none;border-bottom:1px solid #f1f1f1}.pa-row{width:100%;overflow:hidden}.pa-settings-tabs{padding:15px 25px;margin-top:-3em}#pa-about{margin-top:50px}.pa-col-half{width:40%;height:auto;float:left}.pa-about-panel{width:100%;display:inline-block;margin-bottom:20px}.pa-icon-container{float:left;display:inline-block;width:45px}.pa-icon-container i{font-size:25px}.pa-text-container{display:inline-block;width:80%}.pa-text-container h4{margin:0;font-weight:400;font-size:18px}.pa-text-container p{line-height:22px;color:#444;font-size:13px;margin:1em 0}.pa-elements-table{border-collapse:collapse;margin-top:.5em;margin-left:5px;width:80%;clear:both}.pa-elements-table th{vertical-align:top;text-align:left;padding:20px 10px 20px 0;width:200px;line-height:1.3;font-weight:600}.pa-elements-table tr{border-bottom:1px solid #ddd}.pa-elements-table td{margin-bottom:9px;padding:15px 10px;line-height:1.3;vertical-align:middle}.pa-elements-table .pa-element-desc{font-weight:300;padding-bottom:1.5em;border-bottom:1px solid #ddd}.switch{position:relative;display:inline-block;width:70px;height:33px}.switch input{display:none}.slider,.pro-slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background-color:#f2f2f2;box-shadow:0 0 2px 1px #ccc inset;-webkit-transition:.4s;transition:.4s}.slider:before,.pro-slider:before{position:absolute;content:"";height:27.5px;width:27.5px;left:0;bottom:1.1px;background:radial-gradient(farthest-corner at 14px 0px,#f0f0f0 50%,#cacaca 100%);-webkit-transition:.4s;transition:.4s;padding:0;margin:0;border:1px solid #c6c6c6;box-shadow:0 2.5px 5px #b8b8b9}input:checked + .slider{background-color:#18a4fd;box-shadow:0 0 2px 1px #149afd inset;border:1px solid #149afd}input:focus + .slider{box-shadow:0 0 1px #18a4fd}input:checked + .slider:before{box-shadow:0 2.5px 5px #0d6fbd;border:1px solid #0d6fbd;-webkit-transform:translateX(40px);-ms-transform:translateX(40px);transform:translateX(40px)}.slider.round,.pro-slider.round{border:1px solid #b8b8b9;border-radius:34px}.slider.round:before,.pro-slider.round:before{border-radius:50%}.pa-maps-table{text-align:left}.pa-api-title{display:inline-block;margin:0}.pa-maps-table #premium-map-api{ width: 100%;}.pa-maps-table tr td:first-of-type{padding-right: 1.2em;} .pa-maps-table td:first-of-type .pa-api-disable-title {margin:0.6em 0;}.pa-api-disable-title label,.pa-is-beta label{margin-right:15px}.pa-api-disable-title span,.pa-is-beta span{font-weight:400}.pa-maps-api-notice{margin:0.5em 0}.pa-api-title input{margin-top:10px;font-size:normal;font-weight:400;width:400px;margin-left:30px}#pa-maintenance{margin-top:30px}.pa-beta-table tr{text-align:left}.pa-roll-back,.pa-beta-test{text-align:left;font-size:20px;font-weight:400;margin-top:15px;margin-bottom:10px}.pa-beta-test{margin-top:0}.pa-roll-back-span,.pa-beta-test-span{line-height:22px;color:#444;font-size:13px;margin:0;font-weight:400}.pa-roll-row,.pa-beta-row{float:left}.pa-beta-row{margin-top:13px}.pa-roll-row th,.pa-beta-row th{vertical-align:top;text-align:left;padding:20px 10px 20px 0;width:200px;line-height:1.3}.pa-roll-row td{padding:15px 10px}.pa-beta-row td{padding:22px 10px}.pa-roll-row .pa-rollback-button{box-shadow:0 1px 0 #ccc;color:#555;border:1px solid #ccc;background:#f7f7f7;vertical-align:top;margin:0;padding:0 10px 1px}.pa-roll-row .pa-rollback-button:hover{background:#fafafa;border-color:#999;color:#23282d}.pa-roll-row .pa-roll-desc{font-style:italic;color:red;margin-top:4px}.pa-beta-row .pa-beta-desc{font-style:italic;margin-top:4px}.pa-sys-info-tab{background:#f7f7f7;margin:8px;border:2px solid #ddd;border-radius:3px;padding:0}.pa-system-info-container{padding:10px}.pa-sys-info-tab .pa-sys-info-title{margin:0;margin-bottom:0;padding:10px;border-bottom:2px solid #ddd;background:#fff;margin-bottom:10px;font-weight:500}tr.pa-sec-elems-tr{border:none}tr.pa-sec-elems-tr th{padding-bottom:0}tr.pa-sec-elems-tr th h1{font-weight:700;font-size:25px;letter-spacing:1px;color:#555;margin-bottom:0}.pa-swal-head{display:block;margin-bottom:20px}.pa-swal-desc{font-weight:700;color:#0f6aa7}
1
+ .pa-header-wrapper{padding:20px;overflow:hidden}.pa-title-left{width:80%;float:left}h1.pa-title-main{padding:0;line-height:1.3em;font-size:42px;margin-top:5px}.pa-title-sub{color:#777;font-weight:400;margin-left:3px}.pa-title-right{float:right}.pa-title-right img{width:100px;height:100px}.button.pa-btn{border:none;color:#fff;text-align:center;padding:3px;max-width:250px;height:auto;margin-bottom:15px;display:block;font-weight:700;box-shadow:none}.pa-btn.pa-save-button{background-color:#1A7FC2;margin-bottom:0;margin-top:30px;padding:3px 10px}.pa-btn.pa-save-button:hover{background:#0e629a;color:#fff}.pa-btn.pa-save-button:focus{background:#0e629a;color:#fff}.pa-settings-tabs-list{margin:0;border-bottom:1px solid #ccc}.pa-settings-tabs-list li{display:inline-block;margin-bottom:4px;margin-left:.5em}.pa-tab-list-item{background:#e5e5e5;padding:9px 15px;line-height:30px;font-size:18px;font-weight:700;color:#444;text-decoration:none;border:1px solid #ccc;border-bottom:none}.pa-tab-list-item:focus{box-shadow:none}li.ui-state-default:not(.ui-state-active):hover a{background:#fff;color:#444}li.ui-state-active a{outline:none;color:#000;background:transparent;box-shadow:none;border-bottom:1px solid #f1f1f1}.pa-row{width:100%;overflow:hidden}.pa-settings-tabs{padding:15px 25px;margin-top:-3em}#pa-about{margin-top:50px}.pa-col-half{width:40%;height:auto;float:left}.pa-about-panel{width:100%;display:inline-block;margin-bottom:20px}.pa-icon-container{float:left;display:inline-block;width:45px}.pa-icon-container i{font-size:25px}.pa-text-container{display:inline-block;width:80%}.pa-text-container h4{margin:0;font-weight:400;font-size:18px}.pa-text-container p{line-height:22px;color:#444;font-size:13px;margin:1em 0}.pa-elements-table{border-collapse:collapse;margin-top:.5em;margin-left:5px;width:80%;clear:both}.pa-elements-table th{vertical-align:top;text-align:left;padding:20px 10px 20px 0;width:200px;line-height:1.3;font-weight:600}.pa-elements-table tr{border-bottom:1px solid #ddd}.pa-elements-table td{margin-bottom:9px;padding:15px 10px;line-height:1.3;vertical-align:middle}.pa-elements-table .pa-element-desc{font-weight:300;padding-bottom:1.5em;border-bottom:1px solid #ddd}.switch{position:relative;display:inline-block;width:70px;height:33px}.switch input{display:none}.slider,.pro-slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background-color:#f2f2f2;box-shadow:0 0 2px 1px #ccc inset;-webkit-transition:.4s;transition:.4s}.slider:before,.pro-slider:before{position:absolute;content:"";height:27.5px;width:27.5px;left:0;bottom:1.1px;background:radial-gradient(farthest-corner at 14px 0px,#f0f0f0 50%,#cacaca 100%);-webkit-transition:.4s;transition:.4s;padding:0;margin:0;border:1px solid #c6c6c6;box-shadow:0 2.5px 5px #b8b8b9}input:checked + .slider{background-color:#18a4fd;box-shadow:0 0 2px 1px #149afd inset;border:1px solid #149afd}input:focus + .slider{box-shadow:0 0 1px #18a4fd}input:checked + .slider:before{box-shadow:0 2.5px 5px #0d6fbd;border:1px solid #0d6fbd;-webkit-transform:translateX(40px);-ms-transform:translateX(40px);transform:translateX(40px)}.slider.round,.pro-slider.round{border:1px solid #b8b8b9;border-radius:34px}.slider.round:before,.pro-slider.round:before{border-radius:50%}.pa-maps-table{text-align:left}.pa-api-title{display:inline-block;margin:0}.pa-maps-table select {width: 100%;}.pa-maps-table #premium-map-api{ width: 100%;}.pa-maps-table tr td:first-of-type{padding-right: 1.2em;} .pa-maps-table td:first-of-type .pa-api-disable-title {margin:0.6em 0;}.pa-api-disable-title label,.pa-is-beta label{margin-right:15px}.pa-api-disable-title span,.pa-is-beta span{font-weight:400}.pa-maps-api-notice{margin:0.5em 0}.pa-api-title input{margin-top:10px;font-size:normal;font-weight:400;width:400px;margin-left:30px}#pa-maintenance{margin-top:30px}.pa-beta-table tr{text-align:left}.pa-roll-back,.pa-beta-test{text-align:left;font-size:20px;font-weight:400;margin-top:15px;margin-bottom:10px}.pa-beta-test{margin-top:0}.pa-roll-back-span,.pa-beta-test-span{line-height:22px;color:#444;font-size:13px;margin:0;font-weight:400}.pa-roll-row,.pa-beta-row{float:left}.pa-beta-row{margin-top:13px}.pa-roll-row th,.pa-beta-row th{vertical-align:top;text-align:left;padding:20px 10px 20px 0;width:200px;line-height:1.3}.pa-roll-row td{padding:15px 10px}.pa-beta-row td{padding:22px 10px}.pa-roll-row .pa-rollback-button{box-shadow:0 1px 0 #ccc;color:#555;border:1px solid #ccc;background:#f7f7f7;vertical-align:top;margin:0;padding:0 10px 1px}.pa-roll-row .pa-rollback-button:hover{background:#fafafa;border-color:#999;color:#23282d}.pa-roll-row .pa-roll-desc{font-style:italic;color:red;margin-top:4px}.pa-beta-row .pa-beta-desc{font-style:italic;margin-top:4px}.pa-sys-info-tab{background:#f7f7f7;margin:8px;border:2px solid #ddd;border-radius:3px;padding:0}.pa-system-info-container{padding:10px}.pa-sys-info-tab .pa-sys-info-title{margin:0;margin-bottom:0;padding:10px;border-bottom:2px solid #ddd;background:#fff;margin-bottom:10px;font-weight:500}tr.pa-sec-elems-tr{border:none}tr.pa-sec-elems-tr th{padding-bottom:0}tr.pa-sec-elems-tr th h1{font-weight:700;font-size:25px;letter-spacing:1px;color:#555;margin-bottom:0}.pa-swal-head{display:block;margin-bottom:20px}.pa-swal-desc{font-weight:700;color:#0f6aa7}
admin/includes/version-control.php CHANGED
@@ -91,7 +91,7 @@ class Version_Control {
91
  <tr class="pa-roll-row">
92
  <th><?php echo __('Rollback Version', 'premium-addons-for-elementor'); ?></th>
93
  <td>
94
- <div><?php echo sprintf( '<a target="_blank" href="%1$s" class="button pa-btn pa-rollback-button elementor-button-spinner">%2$s</a>', wp_nonce_url( admin_url( 'admin-post.php?action=premium_addons_rollback' ), 'premium_addons_rollback' ), __('Reinstall Version 3.4.7', 'premium-addons-for-elementor') ); ?></div>
95
  <p class="pa-roll-desc">
96
  <span><?php echo __('Warning: Please backup your database before making the rollback.', 'premium-addons-for-elementor'); ?></span>
97
  </p>
91
  <tr class="pa-roll-row">
92
  <th><?php echo __('Rollback Version', 'premium-addons-for-elementor'); ?></th>
93
  <td>
94
+ <div><?php echo sprintf( '<a target="_blank" href="%1$s" class="button pa-btn pa-rollback-button elementor-button-spinner">%2$s</a>', wp_nonce_url( admin_url( 'admin-post.php?action=premium_addons_rollback' ), 'premium_addons_rollback' ), __('Reinstall Version 3.4.8', 'premium-addons-for-elementor') ); ?></div>
95
  <p class="pa-roll-desc">
96
  <span><?php echo __('Warning: Please backup your database before making the rollback.', 'premium-addons-for-elementor'); ?></span>
97
  </p>
assets/css/premium-addons.css CHANGED
@@ -3830,4 +3830,4 @@ button.premium-modal-box-modal-close {
3830
  -ms-transform:translateX(5px);
3831
  transform:translateX(5px);
3832
  }
3833
- }
3830
  -ms-transform:translateX(5px);
3831
  transform:translateX(5px);
3832
  }
3833
+ }
assets/js/premium-addons.js CHANGED
@@ -230,12 +230,15 @@
230
  /****** Premium Countdown Handler ******/
231
  var PremiumCountDownHandler = function($scope, $) {
232
  var countDownElement = $scope.find(".premium-countdown").each(function() {
 
233
  var countDownSettings = $(this).data("settings");
 
234
  var label1 = countDownSettings["label1"],
235
- label2 = countDownSettings["label2"],
236
- newLabe1 = label1.split(","),
237
- newLabe2 = label2.split(",");
238
- if (countDownSettings["event"] === "onExpiry") {
 
239
  $(this)
240
  .find(".premium-countdown-init")
241
  .pre_countdown({
@@ -291,6 +294,7 @@
291
  }
292
  }
293
  }
 
294
  });
295
  };
296
 
230
  /****** Premium Countdown Handler ******/
231
  var PremiumCountDownHandler = function($scope, $) {
232
  var countDownElement = $scope.find(".premium-countdown").each(function() {
233
+
234
  var countDownSettings = $(this).data("settings");
235
+
236
  var label1 = countDownSettings["label1"],
237
+ label2 = countDownSettings["label2"],
238
+ newLabe1 = label1.split(","),
239
+ newLabe2 = label2.split(",");
240
+
241
+ if ( countDownSettings["event"] === "onExpiry" ) {
242
  $(this)
243
  .find(".premium-countdown-init")
244
  .pre_countdown({
294
  }
295
  }
296
  }
297
+
298
  });
299
  };
300
 
premium-addons-for-elementor.php CHANGED
@@ -3,7 +3,7 @@
3
  Plugin Name: Premium Addons for Elementor
4
  Description: Premium Addons Plugin Includes 22+ premium widgets for Elementor Page Builder.
5
  Plugin URI: https://premiumaddons.com
6
- Version: 3.4.8
7
  Author: Leap13
8
  Author URI: https://leap13.com/
9
  Text Domain: premium-addons-for-elementor
@@ -14,12 +14,12 @@ License: GNU General Public License v3.0
14
  if ( ! defined('ABSPATH') ) exit; // No access of directly access
15
 
16
  // Define Constants
17
- define('PREMIUM_ADDONS_VERSION', '3.4.8');
18
  define('PREMIUM_ADDONS_URL', plugins_url('/', __FILE__));
19
  define('PREMIUM_ADDONS_PATH', plugin_dir_path(__FILE__));
20
  define('PREMIUM_ADDONS_FILE', __FILE__);
21
  define('PREMIUM_ADDONS_BASENAME', plugin_basename( PREMIUM_ADDONS_FILE ) );
22
- define('PREMIUM_ADDONS_STABLE_VERSION', '3.4.7');
23
 
24
  if( ! class_exists('Premium_Addons_Elementor') ) {
25
 
3
  Plugin Name: Premium Addons for Elementor
4
  Description: Premium Addons Plugin Includes 22+ premium widgets for Elementor Page Builder.
5
  Plugin URI: https://premiumaddons.com
6
+ Version: 3.4.9
7
  Author: Leap13
8
  Author URI: https://leap13.com/
9
  Text Domain: premium-addons-for-elementor
14
  if ( ! defined('ABSPATH') ) exit; // No access of directly access
15
 
16
  // Define Constants
17
+ define('PREMIUM_ADDONS_VERSION', '3.4.9');
18
  define('PREMIUM_ADDONS_URL', plugins_url('/', __FILE__));
19
  define('PREMIUM_ADDONS_PATH', plugin_dir_path(__FILE__));
20
  define('PREMIUM_ADDONS_FILE', __FILE__);
21
  define('PREMIUM_ADDONS_BASENAME', plugin_basename( PREMIUM_ADDONS_FILE ) );
22
+ define('PREMIUM_ADDONS_STABLE_VERSION', '3.4.8');
23
 
24
  if( ! class_exists('Premium_Addons_Elementor') ) {
25
 
readme.txt CHANGED
@@ -5,7 +5,7 @@ Donate link: http://premiumaddons.com
5
  Requires at least: 4.5
6
  Tested up to: 5.2
7
  Requires PHP: 5.4
8
- Stable tag: 3.4.8
9
  License: GPL v3.0
10
  License URI: https://opensource.org/licenses/GPL-3.0
11
 
@@ -16,7 +16,7 @@ Premium Elementor addons & widgets with numerous customization options that exte
16
 
17
  Premium Addons for elementor plugin’s widgets & addons are cross browser compatible and also fully responsive, Your website will rock on all browsers as well as tables and mobile devices.
18
 
19
- When using Premium Addons’ widgets you will notice that it has more customization options than any other Elementor addons and widgets bundle, Meanwhile It’s totally free of charge.
20
 
21
  Premium Addons for Elementor can be used only as a complement of Elementor page builder plugin as it’s not a standalone plugin.
22
 
@@ -101,9 +101,10 @@ Premium Addons for Elementor can be used only as a complement of Elementor page
101
 
102
  - First make sure that Elementor Page Builder is installed, As this plugin works only with it.
103
  - Download the plugin then Upload it to the plugin folder: /wp-content/plugins/ or install it through the WordPress plugins screen directly.
104
- - Activate the plugin through the ‘Plugins’ screen in WordPress
105
  - You can find Premium Addons Elements under the category “Premium Addons” on your Elementor element/widget list.
106
 
 
107
  == Frequently Asked Questions ==
108
  = Is this a standalone Plugin? =
109
 
@@ -140,6 +141,10 @@ Premium Addons for Elementor is 100% Ads Free, Ads can only be detected from You
140
 
141
  == Changelog ==
142
 
 
 
 
 
143
  = 3.4.8 =
144
 
145
  - Fixed: Carousel slides don't appear on RTL sites.
5
  Requires at least: 4.5
6
  Tested up to: 5.2
7
  Requires PHP: 5.4
8
+ Stable tag: 3.4.9
9
  License: GPL v3.0
10
  License URI: https://opensource.org/licenses/GPL-3.0
11
 
16
 
17
  Premium Addons for elementor plugin’s widgets & addons are cross browser compatible and also fully responsive, Your website will rock on all browsers as well as tables and mobile devices.
18
 
19
+ When using Premium Addons’ widgets you will notice that it has more customization options than any other Elementor addons and widgets bundle, Meanwhile It’s totally free of charge.
20
 
21
  Premium Addons for Elementor can be used only as a complement of Elementor page builder plugin as it’s not a standalone plugin.
22
 
101
 
102
  - First make sure that Elementor Page Builder is installed, As this plugin works only with it.
103
  - Download the plugin then Upload it to the plugin folder: /wp-content/plugins/ or install it through the WordPress plugins screen directly.
104
+ - Activate the plugin through the ‘Plugins’ screen in WordPress.
105
  - You can find Premium Addons Elements under the category “Premium Addons” on your Elementor element/widget list.
106
 
107
+
108
  == Frequently Asked Questions ==
109
  = Is this a standalone Plugin? =
110
 
141
 
142
  == Changelog ==
143
 
144
+ = 3.4.9 =
145
+
146
+ - Tweak: Added `Player Controls` and `Start/End Time` options for Video Box widget.
147
+
148
  = 3.4.8 =
149
 
150
  - Fixed: Carousel slides don't appear on RTL sites.
widgets/premium-videobox.php CHANGED
@@ -115,6 +115,7 @@ class Premium_Videobox extends Widget_Base {
115
  [
116
  'label' => __('Link', 'premium-addons-for-elementor'),
117
  'type' => Controls_Manager::TEXT,
 
118
  'dynamic' => [ 'active' => true,
119
  'active' => true,
120
  'categories' => [
@@ -158,6 +159,15 @@ class Premium_Videobox extends Widget_Base {
158
  ]
159
  );
160
 
 
 
 
 
 
 
 
 
 
161
  $this->add_control('premium_video_box_mute',
162
  [
163
  'label' => __('Mute', 'premium-addons-for-elementor'),
@@ -173,6 +183,28 @@ class Premium_Videobox extends Widget_Base {
173
  ]
174
  );
175
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
176
  $this->add_control('premium_video_box_image_switcher',
177
  [
178
  'label' => __('Overlay', 'premium-addons-for-elementor'),
@@ -594,23 +626,61 @@ class Premium_Videobox extends Widget_Base {
594
 
595
  $loop = $settings['premium_video_box_loop'];
596
 
 
 
597
  $options = '?rel=';
598
- $options .= 'yes' == $related ? '1' : '0';
599
- $options .= 'youtube' == $video_type ? '&mute=' : '&muted=';
600
- $options .= 'yes' == $mute ? '1' : '0';
601
  $options .= '&loop=';
602
- $options .= 'yes' == $loop ? '1' : '0';
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
603
 
604
  if ( $loop ) {
605
  $options .= '&playlist=' . $params['id'];
606
  }
607
 
608
- $video_params = 'controls ';
609
- if( $mute ) {
610
- $video_params .= 'muted ';
611
- }
612
- if( $loop ) {
613
- $video_params .= 'loop ';
 
 
 
 
 
 
614
  }
615
 
616
  $this->add_render_attribute('container', [
@@ -638,7 +708,7 @@ class Premium_Videobox extends Widget_Base {
638
 
639
  <div <?php echo $this->get_render_attribute_string('container'); ?>>
640
  <div <?php echo $this->get_render_attribute_string('video_container'); ?>>
641
- <?php if ( $video_type === 'self') : ?>
642
  <video src="<?php echo esc_url( $hosted_url ); ?>" <?php echo $video_params; ?>></video>
643
  <?php endif; ?>
644
  </div>
115
  [
116
  'label' => __('Link', 'premium-addons-for-elementor'),
117
  'type' => Controls_Manager::TEXT,
118
+ 'label_block' => true,
119
  'dynamic' => [ 'active' => true,
120
  'active' => true,
121
  'categories' => [
159
  ]
160
  );
161
 
162
+ $this->add_control('premium_video_box_controls',
163
+ [
164
+ 'label' => __('Player Controls', 'premium-addons-for-elementor'),
165
+ 'type' => Controls_Manager::SWITCHER,
166
+ 'description' => __('Show/hide player controls', 'premium-addons-for-elementor'),
167
+ 'default' => 'yes'
168
+ ]
169
+ );
170
+
171
  $this->add_control('premium_video_box_mute',
172
  [
173
  'label' => __('Mute', 'premium-addons-for-elementor'),
183
  ]
184
  );
185
 
186
+ $this->add_control('premium_video_box_start',
187
+ [
188
+ 'label' => __( 'Start Time', 'premium-addons-for-elementor' ),
189
+ 'type' => Controls_Manager::NUMBER,
190
+ 'description' => __( 'Specify a start time (in seconds)', 'premium-addons-for-elementor' ),
191
+ 'condition' => [
192
+ 'premium_video_box_video_type!' => 'vimeo'
193
+ ]
194
+ ]
195
+ );
196
+
197
+ $this->add_control('premium_video_box_end',
198
+ [
199
+ 'label' => __( 'End Time', 'premium-addons-for-elementor' ),
200
+ 'type' => Controls_Manager::NUMBER,
201
+ 'description' => __( 'Specify an end time (in seconds)', 'premium-addons-for-elementor' ),
202
+ 'condition' => [
203
+ 'premium_video_box_video_type!' => 'vimeo'
204
+ ]
205
+ ]
206
+ );
207
+
208
  $this->add_control('premium_video_box_image_switcher',
209
  [
210
  'label' => __('Overlay', 'premium-addons-for-elementor'),
626
 
627
  $loop = $settings['premium_video_box_loop'];
628
 
629
+ $controls = $settings['premium_video_box_controls'];
630
+
631
  $options = '?rel=';
632
+ $options .= 'yes' === $related ? '1' : '0';
633
+ $options .= 'youtube' === $video_type ? '&mute=' : '&muted=';
634
+ $options .= 'yes' === $mute ? '1' : '0';
635
  $options .= '&loop=';
636
+ $options .= 'yes' === $loop ? '1' : '0';
637
+ $options .= '&controls=';
638
+ $options .= 'yes' === $controls ? '1' : '0';
639
+
640
+ if ( $settings['premium_video_box_start'] || $settings['premium_video_box_end'] ) {
641
+
642
+ if ( 'youtube' === $video_type ) {
643
+
644
+ if ( $settings['premium_video_box_start'] ) {
645
+ $options .= '&start=' . $settings['premium_video_box_start'];
646
+ }
647
+
648
+ if ( $settings['premium_video_box_end'] ) {
649
+ $options .= '&end=' . $settings['premium_video_box_end'];
650
+ }
651
+
652
+ } elseif ( 'self' === $video_type ) {
653
+
654
+ $hosted_url .= '#t=';
655
+
656
+ if ( $settings['premium_video_box_start'] ) {
657
+ $hosted_url .= $settings['premium_video_box_start'];
658
+ }
659
+
660
+ if ( $settings['premium_video_box_end'] ) {
661
+ $hosted_url .= ',' . $settings['premium_video_box_end'];
662
+ }
663
+
664
+ }
665
+
666
+ }
667
 
668
  if ( $loop ) {
669
  $options .= '&playlist=' . $params['id'];
670
  }
671
 
672
+ if( 'self' === $video_type ) {
673
+
674
+ if( $controls ) {
675
+ $video_params .= 'controls ';
676
+ }
677
+ if( $mute ) {
678
+ $video_params .= 'muted ';
679
+ }
680
+ if( $loop ) {
681
+ $video_params .= 'loop ';
682
+ }
683
+
684
  }
685
 
686
  $this->add_render_attribute('container', [
708
 
709
  <div <?php echo $this->get_render_attribute_string('container'); ?>>
710
  <div <?php echo $this->get_render_attribute_string('video_container'); ?>>
711
+ <?php if ( 'self' === $video_type ) : ?>
712
  <video src="<?php echo esc_url( $hosted_url ); ?>" <?php echo $video_params; ?>></video>
713
  <?php endif; ?>
714
  </div>