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>