Premium Addons for Elementor - Version 3.9.9

Version Description

  • Tweak: Added Image Size option for featured image in Blog widget.
  • Tweak: Added Tooltips option for Feature List in Pricing Table widget.
  • Tweak: Select between Image/Icon in Image Separator widget.
  • Tweak: Added responsive controls for Gutter option in Image Separator widget.
Download this release

Release Info

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

Code changes from version 3.9.8 to 3.9.9

assets/frontend/css/premium-addons.css CHANGED
@@ -963,6 +963,13 @@ a.premium-image-separator-link:hover, a.premium-image-separator-link:visited, a.
963
.premium-image-separator-container .img-responsive {
964
display: inline-block;
965
}
966
/**************** Premium Modal Box ****************/
967
/***************************************************/
968
.premium-modal-box-button-selector, .premium-modal-box-modal-lower-close {
@@ -2491,6 +2498,31 @@ ul.premium-person-social-list {
2491
-ms-flex-align: center;
2492
align-items: center;
2493
}
2494
.premium-pricing-slashed-price-value {
2495
display: inline-block;
2496
font-size: 20px;
963
.premium-image-separator-container .img-responsive {
964
display: inline-block;
965
}
966
+ .premium-image-separator-container i {
967
+ padding: 0.1em;
968
+ -webkit-transition: all 0.3s ease-in-out;
969
+ -moz-transition: all 0.3s ease-in-out;
970
+ -ms-transition: all 0.3s ease-in-out;
971
+ transition: all 0.3s ease-in-out;
972
+ }
973
/**************** Premium Modal Box ****************/
974
/***************************************************/
975
.premium-modal-box-button-selector, .premium-modal-box-modal-lower-close {
2498
-ms-flex-align: center;
2499
align-items: center;
2500
}
2501
+ .premium-pricing-list .premium-pricing-list-span {
2502
+ position: relative;
2503
+ }
2504
+ .premium-pricing-list .list-item-tooltip {
2505
+ border-bottom: 1px dotted;
2506
+ }
2507
+ .premium-pricing-list .premium-pricing-list-tooltip {
2508
+ position: absolute;
2509
+ top: calc(100% + 1px);
2510
+ left: 0;
2511
+ visibility: hidden;
2512
+ padding: 15px 20px;
2513
+ border-radius: 5px;
2514
+ min-width: 200px;
2515
+ overflow: hidden;
2516
+ text-align: left;
2517
+ font-size: .8rem;
2518
+ color: #fff;
2519
+ background-color: #aaa;
2520
+ }
2521
+ .premium-pricing-list-span:hover .premium-pricing-list-tooltip {
2522
+ z-index: 99;
2523
+ visibility: visible;
2524
+ opacity: 1;
2525
+ }
2526
.premium-pricing-slashed-price-value {
2527
display: inline-block;
2528
font-size: 20px;
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.9.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.9.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.9.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.9.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.9.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.9.8');
23
24
if( ! class_exists('Premium_Addons_Elementor') ) {
25
readme.txt CHANGED
@@ -5,7 +5,7 @@ Donate Link: https://premiumaddons.com/?utm_source=wp-repo&utm_medium=link&utm_c
5
Requires at Least: 4.5
6
Tested Up To: 5.3
7
Requires PHP: 5.4
8
- Stable Tag: 3.9.8
9
License: GPL v3.0
10
License URI: https://opensource.org/licenses/GPL-3.0
11
@@ -175,6 +175,13 @@ Premium Addons for Elementor is 100% Ads Free, Ads can only be detected from You
175
176
== Changelog ==
177
178
= 3.9.8 =
179
180
- Tweak: Added `Margin` option for title, description and button in Banner widget.
5
Requires at Least: 4.5
6
Tested Up To: 5.3
7
Requires PHP: 5.4
8
+ Stable Tag: 3.9.9
9
License: GPL v3.0
10
License URI: https://opensource.org/licenses/GPL-3.0
11
175
176
== Changelog ==
177
178
+ = 3.9.9 =
179
+
180
+ - Tweak: Added `Image Size` option for featured image in Blog widget.
181
+ - Tweak: Added `Tooltips` option for Feature List in Pricing Table widget.
182
+ - Tweak: Select between Image/Icon in Image Separator widget.
183
+ - Tweak: Added responsive controls for `Gutter` option in Image Separator widget.
184
+
185
= 3.9.8 =
186
187
- Tweak: Added `Margin` option for title, description and button in Banner widget.
widgets/premium-blog.php CHANGED
@@ -5,6 +5,7 @@ namespace PremiumAddons\Widgets;
5
use PremiumAddons\Helper_Functions;
6
use Elementor\Widget_Base;
7
use Elementor\Controls_Manager;
8
use Elementor\Scheme_Color;
9
use Elementor\Scheme_Typography;
10
use Elementor\Group_Control_Border;
@@ -65,10 +66,18 @@ class Premium_Blog extends Widget_Base {
65
66
$this->start_controls_section('premium_blog_general_settings',
67
[
68
- 'label' => __('Image', 'premium-addons-for-elementor'),
69
]
70
);
71
72
$this->add_control('premium_blog_hover_image_effect',
73
[
74
'label' => __('Hover Effect', 'premium-addons-for-elementor'),
@@ -1780,10 +1789,19 @@ class Premium_Blog extends Widget_Base {
1780
1781
$skin = $settings['premium_blog_skin'];
1782
1783
if( 'classic' !== $skin ): ?>
1784
<a href="<?php the_permalink(); ?>" target="<?php echo esc_attr( $target ); ?>">
1785
<?php endif;
1786
- the_post_thumbnail( 'full' );
1787
if( 'classic' !== $skin ): ?>
1788
</a>
1789
<?php endif;
5
use PremiumAddons\Helper_Functions;
6
use Elementor\Widget_Base;
7
use Elementor\Controls_Manager;
8
+ use Elementor\Group_Control_Image_Size;
9
use Elementor\Scheme_Color;
10
use Elementor\Scheme_Typography;
11
use Elementor\Group_Control_Border;
66
67
$this->start_controls_section('premium_blog_general_settings',
68
[
69
+ 'label' => __('Featured Image', 'premium-addons-for-elementor'),
70
]
71
);
72
73
+ $this->add_group_control(
74
+ Group_Control_Image_Size::get_type(),
75
+ [
76
+ 'name' => 'featured_image',
77
+ 'default' => 'full'
78
+ ]
79
+ );
80
+
81
$this->add_control('premium_blog_hover_image_effect',
82
[
83
'label' => __('Hover Effect', 'premium-addons-for-elementor'),
1789
1790
$skin = $settings['premium_blog_skin'];
1791
1792
+ $settings['featured_image'] = [
1793
+ 'id' => get_post_thumbnail_id(),
1794
+ ];
1795
+
1796
+ $thumbnail_html = Group_Control_Image_Size::get_attachment_image_html( $settings, 'featured_image' );
1797
+
1798
+ if( empty( $thumbnail_html ) )
1799
+ return;
1800
+
1801
if( 'classic' !== $skin ): ?>
1802
<a href="<?php the_permalink(); ?>" target="<?php echo esc_attr( $target ); ?>">
1803
<?php endif;
1804
+ echo $thumbnail_html;
1805
if( 'classic' !== $skin ): ?>
1806
</a>
1807
<?php endif;
widgets/premium-image-separator.php CHANGED
@@ -9,7 +9,10 @@ use Elementor\Widget_Base;
9
use Elementor\Utils;
10
use Elementor\Control_Media;
11
use Elementor\Controls_Manager;
12
use Elementor\Group_Control_Css_Filter;
13
14
if ( ! defined( 'ABSPATH' ) ) exit; // If this file is called directly, abort.
15
@@ -57,59 +60,90 @@ class Premium_Image_Separator extends Widget_Base {
57
]
58
);
59
60
- /*Separator Image*/
61
$this->add_control('premium_image_separator_image',
62
- [
63
- 'label' => __('Image', 'premium-addons-for-elementor'),
64
- 'type' => Controls_Manager::MEDIA,
65
- 'dynamic' => [ 'active' => true ],
66
- 'default' => [
67
- 'url' => Utils::get_placeholder_image_src(),
68
- ],
69
- 'description' => __('Choose the separator image', 'premium-addons-for-elementor' ),
70
- 'label_block' => true
71
- ]
72
- );
73
74
- /*Separator Image Size*/
75
$this->add_responsive_control('premium_image_separator_image_size',
76
- [
77
- 'label' => __('Image Size', 'premium-addons-for-elementor'),
78
- 'type' => Controls_Manager::SLIDER,
79
- 'size_units' => ['px', '%', "em"],
80
- 'default' => [
81
- 'unit' => 'px',
82
- 'size' => 200,
83
],
84
- 'range' => [
85
- 'px' => [
86
- 'min' => 1,
87
- 'max' => 800,
88
- ],
89
],
90
- 'selectors' => [
91
- '{{WRAPPER}} .premium-image-separator-container img' => 'width: {{SIZE}}{{UNIT}};'
92
- ]
93
- ]
94
- );
95
96
- /*Separator Image Gutter*/
97
- $this->add_control('premium_image_separator_image_gutter',
98
- [
99
- 'label' => __('Image Gutter (%)', 'premium-addons-for-elementor'),
100
- 'type' => Controls_Manager::NUMBER,
101
- 'default' => -50,
102
- 'description' => __('-50% is default. Increase to push the image outside or decrease to pull the image inside.','premium-addons-for-elementor'),
103
- 'selectors' => [
104
- '{{WRAPPER}} .premium-image-separator-container' => 'transform: translateY( {{VALUE}}% );'
105
-
106
- ]
107
- ]
108
- );
109
110
$this->add_control('premium_image_separator_image_align',
111
[
112
- 'label' => __('Image Alignment', 'premium-addons-for-elementor'),
113
'type' => Controls_Manager::CHOOSE,
114
'options' => [
115
'left' => [
@@ -228,7 +262,7 @@ class Premium_Image_Separator extends Widget_Base {
228
/*Start Style Section*/
229
$this->start_controls_section('premium_image_separator_style',
230
[
231
- 'label' => __('Image', 'premium-addons-for-elementor'),
232
'tab' => Controls_Manager::TAB_STYLE,
233
]
234
);
@@ -237,11 +271,117 @@ class Premium_Image_Separator extends Widget_Base {
237
Group_Control_Css_Filter::get_type(),
238
[
239
'name' => 'css_filters',
240
- 'selector' => '{{WRAPPER}} .premium-image-separator-container img',
241
]
242
- );
243
244
- /*End Style Section*/
245
$this->end_controls_section();
246
247
}
@@ -254,16 +394,20 @@ class Premium_Image_Separator extends Widget_Base {
254
255
$link_url = ( 'url' == $link_type ) ? $settings['premium_image_separator_image_link'] : get_permalink( $settings['premium_image_separator_existing_page'] );
256
257
- $alt = esc_attr( Control_Media::get_image_alt( $settings['premium_image_separator_image'] ) );
258
?>
259
260
<div class="premium-image-separator-container">
261
-
262
- <img class="img-responsive" src="<?php echo $settings['premium_image_separator_image']['url']; ?>" alt="<?php echo $alt; ?>">
263
- <?php if ( $settings['premium_image_separator_link_switcher'] == 'yes' ) : ?>
264
- <a class="premium-image-separator-link" href="<?php echo $link_url; ?>" target="_<?php echo $settings['premium_image_separator_link_target']; ?>" title="<?php echo $settings['premium_image_separator_image_link_text']; ?>">
265
- </a>
266
- <?php endif;?>
267
</div>
268
<?php
269
}
@@ -273,8 +417,6 @@ class Premium_Image_Separator extends Widget_Base {
273
<#
274
var linkType = settings.premium_image_separator_link_type,
275
276
- imgUrl = settings.premium_image_separator_image.url,
277
-
278
linkSwitch = settings.premium_image_separator_link_switcher,
279
280
linkTarget = settings.premium_image_separator_link_target,
@@ -282,17 +424,24 @@ class Premium_Image_Separator extends Widget_Base {
282
linkTitle = settings.premium_image_separator_image_link_text,
283
284
linkUrl = ( 'url' == linkType ) ? settings.premium_image_separator_image_link : settings.premium_image_separator_existing_page;
285
#>
286
287
<div class="premium-image-separator-container">
288
- <img alt="image separator" class="img-responsive" src="{{ imgUrl }}">
289
- <#
290
- if( 'yes' == linkSwitch ) { #>
291
-
292
<a class="premium-image-separator-link" href="{{ linkUrl }}" target="_{{ linkTarget }}" title="{{ linkTitle }}"></a>
293
-
294
- <# }
295
- #>
296
</div>
297
298
<?php
9
use Elementor\Utils;
10
use Elementor\Control_Media;
11
use Elementor\Controls_Manager;
12
+ use Elementor\Scheme_Color;
13
+ use Elementor\Icons_Manager;
14
use Elementor\Group_Control_Css_Filter;
15
+ use Elementor\Group_Control_Text_Shadow;
16
17
if ( ! defined( 'ABSPATH' ) ) exit; // If this file is called directly, abort.
18
60
]
61
);
62
63
+ $this->add_control('separator_type',
64
+ [
65
+ 'label' => __( 'Separator Type', 'premium-addons-for-elementor' ),
66
+ 'type' => Controls_Manager::SELECT,
67
+ 'options' => [
68
+ 'image' => __( 'Image', 'premium-addons-for-elementor'),
69
+ 'icon' => __('Icon', 'premium-addons-for-elementor')
70
+ ],
71
+ 'default' => 'image'
72
+ ]
73
+ );
74
+
75
$this->add_control('premium_image_separator_image',
76
+ [
77
+ 'label' => __('Image', 'premium-addons-for-elementor'),
78
+ 'description' => __('Choose the separator image', 'premium-addons-for-elementor' ),
79
+ 'type' => Controls_Manager::MEDIA,
80
+ 'dynamic' => [ 'active' => true ],
81
+ 'default' => [
82
+ 'url' => Utils::get_placeholder_image_src(),
83
+ ],
84
+ 'label_block' => true,
85
+ 'condition' => [
86
+ 'separator_type' => 'image'
87
+ ]
88
+ ]
89
+ );
90
+
91
+ $this->add_control('separator_icon',
92
+ [
93
+ 'label' => __( 'Select an Icon', 'premium-addons-for-elementor' ),
94
+ 'type' => Controls_Manager::ICONS,
95
+ 'default' => [
96
+ 'value' => 'fas fa-grip-lines',
97
+ 'library' => 'fa-solid',
98
+ ],
99
+ 'condition' => [
100
+ 'separator_type' => 'icon'
101
+ ]
102
+ ]
103
+ );
104
105
$this->add_responsive_control('premium_image_separator_image_size',
106
+ [
107
+ 'label' => __('Size', 'premium-addons-for-elementor'),
108
+ 'type' => Controls_Manager::SLIDER,
109
+ 'size_units' => ['px', 'em', '%'],
110
+ 'default' => [
111
+ 'unit' => 'px',
112
+ 'size' => 200,
113
+ ],
114
+ 'range' => [
115
+ 'px' => [
116
+ 'min' => 1,
117
+ 'max' => 800,
118
],
119
+ 'em' => [
120
+ 'min' => 1,
121
+ 'max' => 30,
122
],
123
+ ],
124
+ 'selectors' => [
125
+ '{{WRAPPER}} .premium-image-separator-container img' => 'width: {{SIZE}}{{UNIT}}',
126
+ '{{WRAPPER}} .premium-image-separator-container i' => 'font-size: {{SIZE}}{{UNIT}}',
127
+ '{{WRAPPER}} .premium-image-separator-container svg' => 'width: {{SIZE}}{{UNIT}}; height: {{SIZE}}{{UNIT}}'
128
+ ]
129
+ ]
130
+ );
131
132
+ $this->add_responsive_control('premium_image_separator_image_gutter',
133
+ [
134
+ 'label' => __('Gutter (%)', 'premium-addons-for-elementor'),
135
+ 'type' => Controls_Manager::NUMBER,
136
+ 'default' => -50,
137
+ 'description' => __('-50% is default. Increase to push the image outside or decrease to pull the image inside.','premium-addons-for-elementor'),
138
+ 'selectors' => [
139
+ '{{WRAPPER}} .premium-image-separator-container' => 'transform: translateY( {{VALUE}}% );'
140
+ ]
141
+ ]
142
+ );
143
144
$this->add_control('premium_image_separator_image_align',
145
[
146
+ 'label' => __('Alignment', 'premium-addons-for-elementor'),
147
'type' => Controls_Manager::CHOOSE,
148
'options' => [
149
'left' => [
262
/*Start Style Section*/
263
$this->start_controls_section('premium_image_separator_style',
264
[
265
+ 'label' => __('Separator', 'premium-addons-for-elementor'),
266
'tab' => Controls_Manager::TAB_STYLE,
267
]
268
);
271
Group_Control_Css_Filter::get_type(),
272
[
273
'name' => 'css_filters',
274
+ 'selector' => '{{WRAPPER}} .premium-image-separator-container img',
275
+ 'condition' => [
276
+ 'separator_type' => 'image'
277
+ ]
278
]
279
+ );
280
+
281
+ $this->add_control('icon_color',
282
+ [
283
+ 'label' => __( 'Color', 'premium-addons-for-elementor' ),
284
+ 'type' => Controls_Manager::COLOR,
285
+ 'scheme' => [
286
+ 'type' => Scheme_Color::get_type(),
287
+ 'value' => Scheme_Color::COLOR_1,
288
+ ],
289
+ 'selectors' => [
290
+ '{{WRAPPER}} .premium-image-separator-container i' => 'color: {{VALUE}}'
291
+ ],
292
+ 'condition' => [
293
+ 'separator_type' => 'icon'
294
+ ]
295
+ ]
296
+ );
297
+
298
+ $this->add_control('icon_hover_color',
299
+ [
300
+ 'label' => __( 'Hover Color', 'premium-addons-for-elementor' ),
301
+ 'type' => Controls_Manager::COLOR,
302
+ 'scheme' => [
303
+ 'type' => Scheme_Color::get_type(),
304
+ 'value' => Scheme_Color::COLOR_1,
305
+ ],
306
+ 'selectors' => [
307
+ '{{WRAPPER}} .premium-image-separator-container i:hover' => 'color: {{VALUE}}'
308
+ ],
309
+ 'condition' => [
310
+ 'separator_type' => 'icon'
311
+ ]
312
+ ]
313
+ );
314
+
315
+ $this->add_control('icon_background_color',
316
+ [
317
+ 'label' => __( 'Background Color', 'premium-addons-for-elementor' ),
318
+ 'type' => Controls_Manager::COLOR,
319
+ 'scheme' => [
320
+ 'type' => Scheme_Color::get_type(),
321
+ 'value' => Scheme_Color::COLOR_2,
322
+ ],
323
+ 'selectors' => [
324
+ '{{WRAPPER}} .premium-image-separator-container i' => 'background-color: {{VALUE}}'
325
+ ],
326
+ 'condition' => [
327
+ 'separator_type' => 'icon'
328
+ ]
329
+ ]
330
+ );
331
+
332
+ $this->add_control('icon_hover_background_color',
333
+ [
334
+ 'label' => __( 'Hover Background Color', 'premium-addons-for-elementor' ),
335
+ 'type' => Controls_Manager::COLOR,
336
+ 'scheme' => [
337
+ 'type' => Scheme_Color::get_type(),
338
+ 'value' => Scheme_Color::COLOR_2,
339
+ ],
340
+ 'selectors' => [
341
+ '{{WRAPPER}} .premium-image-separator-container i:hover' => 'background-color: {{VALUE}}'
342
+ ],
343
+ 'condition' => [
344
+ 'separator_type' => 'icon'
345
+ ]
346
+ ]
347
+ );
348
+
349
+ $this->add_responsive_control('separator_border_radius',
350
+ [
351
+ 'label' => __('Border Radius', 'premium-addons-for-elementor'),
352
+ 'type' => Controls_Manager::DIMENSIONS,
353
+ 'size_units' => ['px', 'em', '%'],
354
+ 'selectors' => [
355
+ '{{WRAPPER}} .premium-image-separator-container i, {{WRAPPER}} .premium-image-separator-container img' => 'border-radius: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}}'
356
+ ],
357
+ ]
358
+ );
359
+
360
+ $this->add_group_control(
361
+ Group_Control_Text_Shadow::get_type(),
362
+ [
363
+ 'name' => 'separator_shadow',
364
+ 'selector' => '{{WRAPPER}} .premium-image-separator-container i',
365
+ 'condition' => [
366
+ 'separator_type' => 'icon'
367
+ ]
368
+ ]
369
+ );
370
+
371
+ $this->add_responsive_control('icon_padding',
372
+ [
373
+ 'label' => __('Padding', 'premium-addons-for-elementor'),
374
+ 'type' => Controls_Manager::DIMENSIONS,
375
+ 'size_units' => ['px', 'em', '%'],
376
+ 'selectors' => [
377
+ '{{WRAPPER}} .premium-image-separator-container i' => 'padding: {{TOP}}{{UNIT}} {{RIGHT}}{{UNIT}} {{BOTTOM}}{{UNIT}} {{LEFT}}{{UNIT}}'
378
+ ],
379
+ 'condition' => [
380
+ 'separator_type' => 'icon'
381
+ ]
382
+ ]
383
+ );
384
385
$this->end_controls_section();
386
387
}
394
395
$link_url = ( 'url' == $link_type ) ? $settings['premium_image_separator_image_link'] : get_permalink( $settings['premium_image_separator_existing_page'] );
396
397
+ if( 'image' === $settings['separator_type'] )
398
+ $alt = esc_attr( Control_Media::get_image_alt( $settings['premium_image_separator_image'] ) );
399
?>
400
401
<div class="premium-image-separator-container">
402
+ <?php if( 'image' === $settings['separator_type'] ) : ?>
403
+ <img class="img-responsive" src="<?php echo $settings['premium_image_separator_image']['url']; ?>" alt="<?php echo $alt; ?>">
404
+ <?php else:
405
+ Icons_Manager::render_icon( $settings['separator_icon'], [ 'aria-hidden' => 'true' ] );
406
+ endif;
407
+ if ( $settings['premium_image_separator_link_switcher'] == 'yes' ) : ?>
408
+ <a class="premium-image-separator-link" href="<?php echo $link_url; ?>" target="_<?php echo $settings['premium_image_separator_link_target']; ?>" title="<?php echo $settings['premium_image_separator_image_link_text']; ?>">
409
+ </a>
410
+ <?php endif; ?>
411
</div>
412
<?php
413
}
417
<#
418
var linkType = settings.premium_image_separator_link_type,
419
420
linkSwitch = settings.premium_image_separator_link_switcher,
421
422
linkTarget = settings.premium_image_separator_link_target,
424
linkTitle = settings.premium_image_separator_image_link_text,
425
426
linkUrl = ( 'url' == linkType ) ? settings.premium_image_separator_image_link : settings.premium_image_separator_existing_page;
427
+
428
+ if( 'image' === settings.separator_type ) {
429
+ var imgUrl = settings.premium_image_separator_image.url;
430
+ } else {
431
+ var iconHTML = elementor.helpers.renderIcon( view, settings.separator_icon, { 'aria-hidden': true }, 'i' , 'object' );
432
+ }
433
+
434
#>
435
436
<div class="premium-image-separator-container">
437
+ <# if( 'image' === settings.separator_type ) { #>
438
+ <img alt="image separator" class="img-responsive" src="{{ imgUrl }}">
439
+ <# } else { #>
440
+ {{{ iconHTML.value }}}
441
+ <# }
442
+ if( 'yes' == linkSwitch ) { #>
443
<a class="premium-image-separator-link" href="{{ linkUrl }}" target="_{{ linkTarget }}" title="{{ linkTitle }}"></a>
444
+ <# } #>
445
</div>
446
447
<?php
widgets/premium-modalbox.php CHANGED
@@ -674,26 +674,26 @@ class Premium_Modalbox extends Widget_Base {
674
675
$this->add_group_control(
676
Group_Control_Box_Shadow::get_type(),
677
- [
678
- 'label' => __('Shadow','premium-addons-for-elementor'),
679
- 'name' => 'premium_modal_box_selector_box_shadow',
680
- 'selector' => '{{WRAPPER}} .premium-modal-box-button-selector, {{WRAPPER}} .premium-modal-box-img-selector',
681
- 'condition' => [
682
- 'premium_modal_box_display_on' => [ 'button', 'image' ],
683
- ]
684
]
685
- );
686
687
$this->add_group_control(
688
Group_Control_Text_Shadow::get_type(),
689
- [
690
- 'name' => 'premium_modal_box_selector_text_shadow',
691
- 'selector' => '{{WRAPPER}} .premium-modal-box-text-selector',
692
- 'condition' => [
693
- 'premium_modal_box_display_on' => 'text',
694
- ]
695
]
696
- );
697
698
$this->end_controls_tab();
699
674
675
$this->add_group_control(
676
Group_Control_Box_Shadow::get_type(),
677
+ [
678
+ 'label' => __('Shadow','premium-addons-for-elementor'),
679
+ 'name' => 'premium_modal_box_selector_box_shadow',
680
+ 'selector' => '{{WRAPPER}} .premium-modal-box-button-selector, {{WRAPPER}} .premium-modal-box-img-selector',
681
+ 'condition' => [
682
+ 'premium_modal_box_display_on' => [ 'button', 'image' ],
683
]
684
+ ]
685
+ );
686
687
$this->add_group_control(
688
Group_Control_Text_Shadow::get_type(),
689
+ [
690
+ 'name' => 'premium_modal_box_selector_text_shadow',
691
+ 'selector' => '{{WRAPPER}} .premium-modal-box-text-selector',
692
+ 'condition' => [
693
+ 'premium_modal_box_display_on' => 'text',
694
]
695
+ ]
696
+ );
697
698
$this->end_controls_tab();
699
widgets/premium-pricing-table.php CHANGED
@@ -187,15 +187,14 @@ class Premium_Pricing_Table extends Widget_Base {
187
188
$this->end_controls_section();
189
190
- /*Icon List Content Section*/
191
$this->start_controls_section('premium_pricing_table_list_section',
192
- [
193
- 'label' => __('Feature List', 'premium-addons-for-elementor'),
194
- 'condition' => [
195
- 'premium_pricing_table_list_switcher' => 'yes',
196
- ]
197
- ]
198
- );
199
200
$repeater = new REPEATER();
201
@@ -220,6 +219,25 @@ class Premium_Pricing_Table extends Widget_Base {
220
],
221
]
222
);
223
224
$this->add_control('premium_fancy_text_list_items',
225
[
@@ -479,11 +497,11 @@ class Premium_Pricing_Table extends Widget_Base {
479
);
480
481
$this->add_control('premium_pricing_table_icon_switcher',
482
- [
483
- 'label' => __('Icon', 'premium-addons-for-elementor'),
484
- 'type' => Controls_Manager::SWITCHER,
485
- ]
486
- );
487
488
$this->add_control('premium_pricing_table_title_switcher',
489
[
@@ -1112,10 +1130,8 @@ class Premium_Pricing_Table extends Widget_Base {
1112
]
1113
);
1114
1115
- /*End Price Style Settings */
1116
$this->end_controls_section();
1117
1118
- /*Start List Style Settings*/
1119
$this->start_controls_section('premium_pricing_list_style_settings',
1120
[
1121
'label' => __('Features', 'premium-addons-for-elementor'),
@@ -1279,6 +1295,97 @@ class Premium_Pricing_Table extends Widget_Base {
1279
]);
1280
1281
$this->end_controls_section();
1282
1283
/*Start Description Style Settings */
1284
$this->start_controls_section('premium_pricing_description_style_settings',
@@ -1963,8 +2070,16 @@ class Premium_Pricing_Table extends Widget_Base {
1963
Icons_Manager::render_icon( $item['premium_pricing_list_item_icon_updated'], [ 'aria-hidden' => 'true' ] );
1964
else: ?>
1965
<i class="<?php echo $item['premium_pricing_list_item_icon']; ?>"></i>
1966
<?php endif; ?>
1967
- <span class="premium-pricing-list-span"><?php echo esc_html( $item['premium_pricing_list_item_text'] ); ?></span>
1968
</li>
1969
<?php endforeach; ?>
1970
</ul>
@@ -2054,8 +2169,16 @@ class Premium_Pricing_Table extends Widget_Base {
2054
{{{ listIconHTML.value }}}
2055
<# } else { #>
2056
<i class="{{ item.premium_pricing_list_item_icon }}" aria-hidden="true"></i>
2057
<# } #>
2058
- <span class="premium-pricing-list-span">{{{ item.premium_pricing_list_item_text }}}</span>
2059
</li>
2060
<# } ); #>
2061
</ul>
187
188
$this->end_controls_section();
189
190
$this->start_controls_section('premium_pricing_table_list_section',
191
+ [
192
+ 'label' => __('Feature List', 'premium-addons-for-elementor'),
193
+ 'condition' => [
194
+ 'premium_pricing_table_list_switcher' => 'yes',
195
+ ]
196
+ ]
197
+ );
198
199
$repeater = new REPEATER();
200
219
],
220
]
221
);
222
+
223
+ $repeater->add_control('premium_pricing_table_item_tooltip',
224
+ [
225
+ 'label' => __('Tooltip', 'premium-addons-for-elementor'),
226
+ 'type' => Controls_Manager::SWITCHER,
227
+ ]
228
+ );
229
+
230
+ $repeater->add_control('premium_pricing_table_item_tooltip_text',
231
+ [
232
+ 'label' => __('Tooltip Text', 'premium-addons-for-elementor'),
233
+ 'type' => Controls_Manager::TEXTAREA,
234
+ 'dynamic' => [ 'active' => true ],
235
+ 'default' => 'Lorem ipsum dolor sit amet, consectetur adipiscing elit',
236
+ 'condition' => [
237
+ 'premium_pricing_table_item_tooltip' => 'yes'
238
+ ]
239
+ ]
240
+ );
241
242
$this->add_control('premium_fancy_text_list_items',
243
[
497
);
498
499
$this->add_control('premium_pricing_table_icon_switcher',
500
+ [
501
+ 'label' => __('Icon', 'premium-addons-for-elementor'),
502
+ 'type' => Controls_Manager::SWITCHER,
503
+ ]
504
+ );
505
506
$this->add_control('premium_pricing_table_title_switcher',
507
[
1130
]
1131
);
1132
1133
$this->end_controls_section();
1134
1135
$this->start_controls_section('premium_pricing_list_style_settings',
1136
[
1137
'label' => __('Features', 'premium-addons-for-elementor'),
1295
]);
1296
1297
$this->end_controls_section();
1298
+
1299
+ $this->start_controls_section('tooltips_style',
1300
+ [
1301
+ 'label' => __('Tooltips', 'premium-addons-for-elementor'),
1302
+ 'tab' => Controls_Manager::TAB_STYLE,
1303
+ 'condition' => [
1304
+ 'premium_pricing_table_list_switcher' => 'yes',
1305
+ ]
1306
+ ]
1307
+ );
1308
+
1309
+ $this->add_responsive_control('tooltips_align',
1310
+ [
1311
+ 'label' => __( 'Alignment', 'premium-addons-for-elementor' ),
1312
+ 'type' => Controls_Manager::CHOOSE,
1313
+ 'options' => [
1314
+ 'left' => [
1315
+ 'title' => __( 'Left', 'premium-addons-for-elementor' ),
1316
+ 'icon' => 'fa fa-align-left',
1317
+ ],
1318
+ 'center' => [
1319
+ 'title' => __( 'Center', 'premium-addons-for-elementor' ),
1320
+ 'icon' => 'fa fa-align-center',
1321
+ ],
1322
+ 'right' => [
1323
+ 'title' => __( 'Right', 'premium-addons-for-elementor' ),
1324
+ 'icon' => 'fa fa-align-right',
1325
+ ],
1326
+ ],
1327
+ 'selectors' => [
1328
+ '{{WRAPPER}} .premium-pricing-list-tooltip' => 'text-align: {{VALUE}}',
1329
+ ],
1330
+ ]
1331
+ );
1332
+
1333
+ $this->add_responsive_control('tooltips_width',
1334
+ [
1335
+ 'label' => __('Width', 'premium-addons-for-elementor'),
1336
+ 'type' => Controls_Manager::SLIDER,
1337
+ 'range' => [
1338
+ 'px' => [
1339
+ 'min' => 1,
1340
+ 'min' => 400,
1341
+ ]
1342
+ ],
1343
+ 'selectors' => [
1344
+ '{{WRAPPER}} .premium-pricing-list-tooltip' => 'min-width: {{SIZE}}px;'
1345
+ ]
1346
+ ]
1347
+ );
1348
+
1349
+ $this->add_control('tooltips_color',
1350
+ [
1351
+ 'label' => __('Color', 'premium-addons-for-elementor'),
1352
+ 'type' => Controls_Manager::COLOR,
1353
+ 'selectors' => [
1354
+ '{{WRAPPER}} .premium-pricing-list-tooltip' => 'color: {{VALUE}};'
1355
+ ]
1356
+ ]
1357
+ );
1358
+
1359
+ $this->add_group_control(
1360
+ Group_Control_Typography::get_type(),
1361
+ [
1362
+ 'name' => 'tooltips_typo',
1363
+ 'scheme' => Scheme_Typography::TYPOGRAPHY_1,
1364
+ 'selector' => '{{WRAPPER}} .premium-pricing-list-tooltip',
1365
+ ]
1366
+ );
1367
+
1368
+ $this->add_control('tooltips_background_color',
1369
+ [
1370
+ 'label' => __('Background Color', 'premium-addons-for-elementor'),
1371
+ 'type' => Controls_Manager::COLOR,
1372
+ 'selectors' => [
1373
+ '{{WRAPPER}} .premium-pricing-list-tooltip' => 'background-color: {{VALUE}};'
1374
+ ]
1375
+ ]
1376
+ );
1377
+
1378
+ $this->add_control('tooltips_border_color',
1379
+ [
1380
+ 'label' => __('Border Color', 'premium-addons-for-elementor'),
1381
+ 'type' => Controls_Manager::COLOR,
1382
+ 'selectors' => [
1383
+ '{{WRAPPER}} .list-item-tooltip' => 'border-color: {{VALUE}};'
1384
+ ]
1385
+ ]
1386
+ );
1387
+
1388
+ $this->end_controls_section();
1389
1390
/*Start Description Style Settings */
1391
$this->start_controls_section('premium_pricing_description_style_settings',
2070
Icons_Manager::render_icon( $item['premium_pricing_list_item_icon_updated'], [ 'aria-hidden' => 'true' ] );
2071
else: ?>
2072
<i class="<?php echo $item['premium_pricing_list_item_icon']; ?>"></i>
2073
+ <?php endif;
2074
+ if ( ! empty( $item['premium_pricing_list_item_text'] ) ) :
2075
+ $item_class = 'yes' === $item['premium_pricing_table_item_tooltip'] ? 'list-item-tooltip' : '';
2076
+ ?>
2077
+ <span class="premium-pricing-list-span <?php echo $item_class; ?>"><?php echo esc_html( $item['premium_pricing_list_item_text'] );
2078
+ if ( 'yes' === $item['premium_pricing_table_item_tooltip'] && ! empty( $item['premium_pricing_table_item_tooltip_text'] ) ) : ?>
2079
+ <span class="premium-pricing-list-tooltip"><?php echo esc_html( $item['premium_pricing_table_item_tooltip_text'] ); ?></span>
2080
+ <?php endif; ?>
2081
+ </span>
2082
<?php endif; ?>
2083
</li>
2084
<?php endforeach; ?>
2085
</ul>
2169
{{{ listIconHTML.value }}}
2170
<# } else { #>
2171
<i class="{{ item.premium_pricing_list_item_icon }}" aria-hidden="true"></i>
2172
+ <# }
2173
+ if ( '' !== item.premium_pricing_list_item_text ) {
2174
+ var itemClass = 'yes' === item.premium_pricing_table_item_tooltip ? 'list-item-tooltip' : '';
2175
+ #>
2176
+ <span class="premium-pricing-list-span {{itemClass}}">{{{ item.premium_pricing_list_item_text }}}
2177
+ <# if ( 'yes' === item.premium_pricing_table_item_tooltip && '' !== item.premium_pricing_table_item_tooltip_text ) { #>
2178
+ <span class="premium-pricing-list-tooltip">{{{ item.premium_pricing_table_item_tooltip_text }}}</span>
2179
+ <# } #>
2180
+ </span>
2181
<# } #>
2182
</li>
2183
<# } ); #>
2184
</ul>