Version Description
- Added - Carousel option along with Grid for Services and Clients Elementor addons
- Added - Extensive customization options for Carousel function of Services, Team Members, Testimonials and Clients addons
Download this release
Release Info
Developer | livemesh |
Plugin | Addons for Elementor |
Version | 6.9.2 |
Comparing to | |
See all releases |
Code changes from version 6.9.1 to 6.9.2
- addons-for-elementor.php +2 -2
- assets/css/widgets/clients.css +48 -52
- assets/css/widgets/clients.css.map +1 -1
- assets/css/widgets/clients.scss +0 -3
- assets/css/widgets/services.css +1 -1
- assets/css/widgets/services.scss +1 -1
- assets/js/widgets/clients.js +18 -0
- assets/js/widgets/clients.min.js +1 -0
- assets/js/widgets/services.js +18 -0
- assets/js/widgets/services.min.js +1 -0
- includes/widgets/clients.php +210 -6
- includes/widgets/services.php +212 -9
- plugin.php +16 -2
- readme.txt +5 -1
- templates/addons/clients/content.php +1 -1
- templates/addons/clients/loop.php +48 -10
- templates/addons/services/content.php +47 -48
- templates/addons/services/loop.php +42 -1
addons-for-elementor.php
CHANGED
@@ -8,7 +8,7 @@
|
|
8 |
* Author URI: https://livemeshelementor.com
|
9 |
* License: GPL3
|
10 |
* License URI: https://www.gnu.org/licenses/gpl-3.0.txt
|
11 |
-
* Version: 6.9.
|
12 |
* Text Domain: livemesh-el-addons
|
13 |
* Domain Path: languages
|
14 |
* Elementor tested up to: 3.1.0
|
@@ -37,7 +37,7 @@ if ( !defined( 'ABSPATH' ) ) {
|
|
37 |
|
38 |
if ( !function_exists( 'lae_fs' ) ) {
|
39 |
// Plugin version
|
40 |
-
define( 'LAE_VERSION', '6.9.
|
41 |
// Plugin Root File
|
42 |
define( 'LAE_PLUGIN_FILE', __FILE__ );
|
43 |
// Plugin Folder Path
|
8 |
* Author URI: https://livemeshelementor.com
|
9 |
* License: GPL3
|
10 |
* License URI: https://www.gnu.org/licenses/gpl-3.0.txt
|
11 |
+
* Version: 6.9.2
|
12 |
* Text Domain: livemesh-el-addons
|
13 |
* Domain Path: languages
|
14 |
* Elementor tested up to: 3.1.0
|
37 |
|
38 |
if ( !function_exists( 'lae_fs' ) ) {
|
39 |
// Plugin version
|
40 |
+
define( 'LAE_VERSION', '6.9.2' );
|
41 |
// Plugin Root File
|
42 |
define( 'LAE_PLUGIN_FILE', __FILE__ );
|
43 |
// Plugin Folder Path
|
assets/css/widgets/clients.css
CHANGED
@@ -1,56 +1,52 @@
|
|
1 |
/* ---------------------------------- Clients Widget ---------------------------------- */
|
2 |
-
.lae-clients {
|
3 |
-
|
4 |
-
|
5 |
-
|
6 |
-
.lae-clients .lae-client {
|
7 |
-
|
8 |
-
|
9 |
-
|
10 |
-
|
11 |
-
|
12 |
-
|
13 |
-
|
14 |
-
|
15 |
-
|
16 |
-
|
17 |
-
|
18 |
-
|
19 |
-
|
20 |
-
|
21 |
-
|
22 |
-
|
23 |
-
|
24 |
-
|
25 |
-
|
26 |
-
|
|
|
|
|
|
|
27 |
color: #fff;
|
28 |
-
|
29 |
-
|
30 |
-
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
transition: opacity .4s ease-in-out 0s; }
|
49 |
-
.lae-clients .lae-client:hover .lae-image-overlay {
|
50 |
-
opacity: 0.7; }
|
51 |
-
.lae-dark-bg .lae-clients .lae-client:hover .lae-image-overlay {
|
52 |
-
opacity: 0.8; }
|
53 |
-
.lae-clients .lae-client:hover .lae-client-name {
|
54 |
-
opacity: 1; }
|
55 |
|
56 |
/*# sourceMappingURL=clients.css.map */
|
1 |
/* ---------------------------------- Clients Widget ---------------------------------- */
|
2 |
+
.lae-clients .lae-client {
|
3 |
+
position: relative;
|
4 |
+
border: 1px solid #ddd;
|
5 |
+
overflow: hidden; }
|
6 |
+
.lae-dark-bg .lae-clients .lae-client {
|
7 |
+
border-color: #505050 !important; }
|
8 |
+
.lae-clients .lae-client img {
|
9 |
+
-webkit-transition: all 0.3s ease-in-out 0s;
|
10 |
+
transition: all 0.3s ease-in-out 0s;
|
11 |
+
width: 100%;
|
12 |
+
margin: 0;
|
13 |
+
display: block; }
|
14 |
+
.lae-clients .lae-client .lae-client-name {
|
15 |
+
position: absolute;
|
16 |
+
z-index: 2;
|
17 |
+
top: 50%;
|
18 |
+
left: 0;
|
19 |
+
text-align: center;
|
20 |
+
width: 100%;
|
21 |
+
height: 100%;
|
22 |
+
margin-top: -12px;
|
23 |
+
color: #fff;
|
24 |
+
font-size: 18px;
|
25 |
+
line-height: 26px;
|
26 |
+
-webkit-transition: opacity .4s ease-in-out 0s;
|
27 |
+
transition: opacity .4s ease-in-out 0s;
|
28 |
+
opacity: 0; }
|
29 |
+
.lae-clients .lae-client .lae-client-name a {
|
30 |
color: #fff;
|
31 |
+
text-decoration: none; }
|
32 |
+
.lae-clients .lae-client .lae-image-overlay {
|
33 |
+
position: absolute;
|
34 |
+
left: 0;
|
35 |
+
top: 0;
|
36 |
+
overflow: hidden;
|
37 |
+
width: 100%;
|
38 |
+
height: 100%;
|
39 |
+
background: #000;
|
40 |
+
filter: alpha(opacity=0);
|
41 |
+
-moz-opacity: 0;
|
42 |
+
opacity: 0;
|
43 |
+
-webkit-transition: opacity .4s ease-in-out 0s;
|
44 |
+
transition: opacity .4s ease-in-out 0s; }
|
45 |
+
.lae-clients .lae-client:hover .lae-image-overlay {
|
46 |
+
opacity: 0.7; }
|
47 |
+
.lae-dark-bg .lae-clients .lae-client:hover .lae-image-overlay {
|
48 |
+
opacity: 0.8; }
|
49 |
+
.lae-clients .lae-client:hover .lae-client-name {
|
50 |
+
opacity: 1; }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
51 |
|
52 |
/*# sourceMappingURL=clients.css.map */
|
assets/css/widgets/clients.css.map
CHANGED
@@ -1 +1 @@
|
|
1 |
-
{"version":3,"sources":["clients.scss"],"names":[],"mappings":"AAGA,0FAA0F;
|
1 |
+
{"version":3,"sources":["clients.scss"],"names":[],"mappings":"AAGA,0FAA0F;AAIxF;EACE,mBAAkB;EAClB,uBAAsB;EACtB,iBAAgB,EAAA;EAEhB;IACE,iCAAgC,EAAA;EAGlC;IACE,4CAA2C;IAE3C,oCAAmC;IACnC,YAAW;IACX,UAAS;IACT,eAAc,EAAA;EAGhB;IACE,mBAAkB;IAClB,WAAU;IACV,SAAQ;IACR,QAAO;IACP,mBAAkB;IAClB,YAAW;IACX,aAAY;IACZ,kBAAiB;IACjB,YAAW;IACX,gBAAe;IACf,kBAAiB;IACjB,+CAAsC;IAAtC,uCAAsC;IACtC,WAAU,EAAA;IAEV;MACE,YAAW;MACX,sBAAqB,EAAA;EAIzB;IACE,mBAAkB;IAClB,QAAO;IACP,OAAM;IACN,iBAAgB;IAChB,YAAW;IACX,aAAY;IACZ,iBAAgB;IAChB,yBAAwB;IACxB,gBAAe;IACf,WAAU;IACV,+CAAsC;IAAtC,uCAAsC,EAAA;EAItC;IACE,aAAY,EAAA;IAEZ;MACE,aAAY,EAAA;EAIhB;IACE,WAAU,EAAA","file":"clients.css"}
|
assets/css/widgets/clients.scss
CHANGED
@@ -4,9 +4,6 @@
|
|
4 |
/* ---------------------------------- Clients Widget ---------------------------------- */
|
5 |
|
6 |
.lae-clients {
|
7 |
-
clear: both;
|
8 |
-
overflow: hidden;
|
9 |
-
margin: 0 auto;
|
10 |
|
11 |
.lae-client {
|
12 |
position: relative;
|
4 |
/* ---------------------------------- Clients Widget ---------------------------------- */
|
5 |
|
6 |
.lae-clients {
|
|
|
|
|
|
|
7 |
|
8 |
.lae-client {
|
9 |
position: relative;
|
assets/css/widgets/services.css
CHANGED
@@ -119,7 +119,7 @@
|
|
119 |
max-width: 300px;
|
120 |
margin: 0;
|
121 |
font-size: 14px;
|
122 |
-
line-height:
|
123 |
color: #888; }
|
124 |
.rtl .lae-services-style3 .lae-service .lae-service-text {
|
125 |
text-align: right; }
|
119 |
max-width: 300px;
|
120 |
margin: 0;
|
121 |
font-size: 14px;
|
122 |
+
line-height: 26px;
|
123 |
color: #888; }
|
124 |
.rtl .lae-services-style3 .lae-service .lae-service-text {
|
125 |
text-align: right; }
|
assets/css/widgets/services.scss
CHANGED
@@ -176,7 +176,7 @@
|
|
176 |
max-width: 300px;
|
177 |
margin: 0;
|
178 |
font-size: 14px;
|
179 |
-
line-height:
|
180 |
color: #888;
|
181 |
|
182 |
.rtl & {
|
176 |
max-width: 300px;
|
177 |
margin: 0;
|
178 |
font-size: 14px;
|
179 |
+
line-height: 26px;
|
180 |
color: #888;
|
181 |
|
182 |
.rtl & {
|
assets/js/widgets/clients.js
ADDED
@@ -0,0 +1,18 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
( function ( $ ) {
|
2 |
+
|
3 |
+
|
4 |
+
var WidgetLAECarouselHandler = function ($scope, $) {
|
5 |
+
|
6 |
+
var helper = new LAE_Carousel_Helper($scope, '.lae-clients-carousel');
|
7 |
+
|
8 |
+
helper.init();
|
9 |
+
};
|
10 |
+
|
11 |
+
// Make sure you run this code under Elementor..
|
12 |
+
$( window ).on( 'elementor/frontend/init', function () {
|
13 |
+
|
14 |
+
elementorFrontend.hooks.addAction( 'frontend/element_ready/lae-clients.default', WidgetLAECarouselHandler );
|
15 |
+
|
16 |
+
} );
|
17 |
+
|
18 |
+
} )( jQuery );
|
assets/js/widgets/clients.min.js
ADDED
@@ -0,0 +1 @@
|
|
|
1 |
+
(function($){var WidgetLAECarouselHandler=function($scope,$){var helper=new LAE_Carousel_Helper($scope,".lae-clients-carousel");helper.init()};$(window).on("elementor/frontend/init",function(){elementorFrontend.hooks.addAction("frontend/element_ready/lae-clients.default",WidgetLAECarouselHandler)})})(jQuery);
|
assets/js/widgets/services.js
ADDED
@@ -0,0 +1,18 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
( function ( $ ) {
|
2 |
+
|
3 |
+
|
4 |
+
var WidgetLAECarouselHandler = function ($scope, $) {
|
5 |
+
|
6 |
+
var helper = new LAE_Carousel_Helper($scope, '.lae-services-carousel');
|
7 |
+
|
8 |
+
helper.init();
|
9 |
+
};
|
10 |
+
|
11 |
+
// Make sure you run this code under Elementor..
|
12 |
+
$( window ).on( 'elementor/frontend/init', function () {
|
13 |
+
|
14 |
+
elementorFrontend.hooks.addAction( 'frontend/element_ready/lae-services.default', WidgetLAECarouselHandler );
|
15 |
+
|
16 |
+
} );
|
17 |
+
|
18 |
+
} )( jQuery );
|
assets/js/widgets/services.min.js
ADDED
@@ -0,0 +1 @@
|
|
|
1 |
+
(function($){var WidgetLAECarouselHandler=function($scope,$){var helper=new LAE_Carousel_Helper($scope,".lae-services-carousel");helper.init()};$(window).on("elementor/frontend/init",function(){elementorFrontend.hooks.addAction("frontend/element_ready/lae-services.default",WidgetLAECarouselHandler)})})(jQuery);
|
includes/widgets/clients.php
CHANGED
@@ -48,12 +48,25 @@ class LAE_Clients_Widget extends LAE_Widget_Base
|
|
48 |
|
49 |
public function get_script_depends()
|
50 |
{
|
51 |
-
return [
|
|
|
|
|
|
|
|
|
|
|
|
|
52 |
}
|
53 |
|
54 |
public function get_style_depends()
|
55 |
{
|
56 |
-
return [
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
57 |
}
|
58 |
|
59 |
protected function _register_controls()
|
@@ -109,10 +122,19 @@ class LAE_Clients_Widget extends LAE_Widget_Base
|
|
109 |
'raw' => '<div style="text-align:center;line-height:1.6;"><p>' . __( 'Unlock new possibilities with premium widgets and styles of <strong>Livemesh Addons for Elementor <i>Premium</i></strong>. ', 'livemesh-el-addons' ) . '</p><p style="padding-top:15px;"><a class="elementor-button elementor-button-default elementor-button-go-pro" href="https://livemeshelementor.com/pricing/#pricing-plans" target="_blank"><i class="fa fa-hand-o-right" aria-hidden="true"></i>' . __( 'Go Pro', 'livemesh-el-addons' ) . '</a></p></div>',
|
110 |
] );
|
111 |
$this->end_controls_section();
|
112 |
-
$this->start_controls_section( '
|
113 |
-
'label' => __( '
|
114 |
'tab' => Controls_Manager::TAB_SETTINGS,
|
115 |
] );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
116 |
$this->add_control( 'widget_animation', [
|
117 |
"type" => Controls_Manager::SELECT,
|
118 |
"label" => __( "Animation Type", "livemesh-el-addons" ),
|
@@ -120,9 +142,191 @@ class LAE_Clients_Widget extends LAE_Widget_Base
|
|
120 |
'default' => 'none',
|
121 |
] );
|
122 |
$this->end_controls_section();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
123 |
$this->start_controls_section( 'section_grid_settings', [
|
124 |
-
'label'
|
125 |
-
'tab'
|
|
|
|
|
|
|
126 |
] );
|
127 |
$this->add_control( 'column_layout', [
|
128 |
'label' => __( 'Column Layout', 'livemesh-el-addons' ),
|
48 |
|
49 |
public function get_script_depends()
|
50 |
{
|
51 |
+
return [
|
52 |
+
'lae-waypoints',
|
53 |
+
'lae-jquery-slick',
|
54 |
+
'lae-frontend-scripts',
|
55 |
+
'lae-carousel-helper-scripts',
|
56 |
+
'lae-clients-scripts'
|
57 |
+
];
|
58 |
}
|
59 |
|
60 |
public function get_style_depends()
|
61 |
{
|
62 |
+
return [
|
63 |
+
'lae-icomoon-styles',
|
64 |
+
'lae-animate-styles',
|
65 |
+
'lae-slick-carousel-styles',
|
66 |
+
'lae-frontend-styles',
|
67 |
+
'lae-slick-carousel-custom-styles',
|
68 |
+
'lae-clients-styles'
|
69 |
+
];
|
70 |
}
|
71 |
|
72 |
protected function _register_controls()
|
122 |
'raw' => '<div style="text-align:center;line-height:1.6;"><p>' . __( 'Unlock new possibilities with premium widgets and styles of <strong>Livemesh Addons for Elementor <i>Premium</i></strong>. ', 'livemesh-el-addons' ) . '</p><p style="padding-top:15px;"><a class="elementor-button elementor-button-default elementor-button-go-pro" href="https://livemeshelementor.com/pricing/#pricing-plans" target="_blank"><i class="fa fa-hand-o-right" aria-hidden="true"></i>' . __( 'Go Pro', 'livemesh-el-addons' ) . '</a></p></div>',
|
123 |
] );
|
124 |
$this->end_controls_section();
|
125 |
+
$this->start_controls_section( 'section_general_settings', [
|
126 |
+
'label' => __( 'General Settings', 'livemesh-el-addons' ),
|
127 |
'tab' => Controls_Manager::TAB_SETTINGS,
|
128 |
] );
|
129 |
+
$this->add_control( 'layout', [
|
130 |
+
'type' => Controls_Manager::SELECT,
|
131 |
+
'label' => __( 'Choose Layout', 'livemesh-el-addons' ),
|
132 |
+
'default' => 'grid',
|
133 |
+
'options' => [
|
134 |
+
'grid' => __( 'Grid', 'livemesh-el-addons' ),
|
135 |
+
'carousel' => __( 'Carousel', 'livemesh-el-addons' ),
|
136 |
+
],
|
137 |
+
] );
|
138 |
$this->add_control( 'widget_animation', [
|
139 |
"type" => Controls_Manager::SELECT,
|
140 |
"label" => __( "Animation Type", "livemesh-el-addons" ),
|
142 |
'default' => 'none',
|
143 |
] );
|
144 |
$this->end_controls_section();
|
145 |
+
$this->start_controls_section( 'section_carousel_settings', [
|
146 |
+
'label' => __( 'Carousel Settings', 'livemesh-el-addons' ),
|
147 |
+
'tab' => Controls_Manager::TAB_SETTINGS,
|
148 |
+
'condition' => [
|
149 |
+
'layout' => [ 'carousel' ],
|
150 |
+
],
|
151 |
+
] );
|
152 |
+
$this->add_responsive_control( 'gutter', [
|
153 |
+
'label' => __( 'Spacing between items', 'livemesh-el-addons' ),
|
154 |
+
'type' => Controls_Manager::SLIDER,
|
155 |
+
'size_units' => [ 'px' ],
|
156 |
+
'default' => [
|
157 |
+
'size' => 0,
|
158 |
+
],
|
159 |
+
'range' => [
|
160 |
+
'px' => [
|
161 |
+
'min' => 0,
|
162 |
+
'max' => 50,
|
163 |
+
],
|
164 |
+
],
|
165 |
+
'selectors' => [
|
166 |
+
'{{WRAPPER}} .lae-clients-carousel .slick-slide' => 'margin: 0 {{SIZE}}{{UNIT}};',
|
167 |
+
'{{WRAPPER}} .lae-clients-carousel .slick-list' => 'margin: 0 -{{SIZE}}{{UNIT}};',
|
168 |
+
],
|
169 |
+
] );
|
170 |
+
$this->add_control( 'arrows', [
|
171 |
+
'type' => Controls_Manager::SWITCHER,
|
172 |
+
'label_off' => __( 'No', 'livemesh-el-addons' ),
|
173 |
+
'label_on' => __( 'Yes', 'livemesh-el-addons' ),
|
174 |
+
'return_value' => 'yes',
|
175 |
+
'default' => 'yes',
|
176 |
+
'label' => __( 'Prev/Next Arrows?', 'livemesh-el-addons' ),
|
177 |
+
] );
|
178 |
+
$this->add_control( 'dots', [
|
179 |
+
'type' => Controls_Manager::SWITCHER,
|
180 |
+
'label_off' => __( 'No', 'livemesh-el-addons' ),
|
181 |
+
'label_on' => __( 'Yes', 'livemesh-el-addons' ),
|
182 |
+
'return_value' => 'yes',
|
183 |
+
'default' => 'yes',
|
184 |
+
'label' => __( 'Show dot indicators for navigation?', 'livemesh-el-addons' ),
|
185 |
+
] );
|
186 |
+
$this->add_control( 'pause_on_hover', [
|
187 |
+
'type' => Controls_Manager::SWITCHER,
|
188 |
+
'label_off' => __( 'No', 'livemesh-el-addons' ),
|
189 |
+
'label_on' => __( 'Yes', 'livemesh-el-addons' ),
|
190 |
+
'return_value' => 'yes',
|
191 |
+
'default' => 'yes',
|
192 |
+
'label' => __( 'Pause on Hover?', 'livemesh-el-addons' ),
|
193 |
+
] );
|
194 |
+
$this->add_control( 'pause_on_action', [
|
195 |
+
'type' => Controls_Manager::SWITCHER,
|
196 |
+
'label_off' => __( 'No', 'livemesh-el-addons' ),
|
197 |
+
'label_on' => __( 'Yes', 'livemesh-el-addons' ),
|
198 |
+
'return_value' => 'yes',
|
199 |
+
'default' => 'yes',
|
200 |
+
"description" => __( "Pause the slideshow when interacting with control elements.", "livemesh-el-addons" ),
|
201 |
+
"label" => __( "Pause on action?", "livemesh-el-addons" ),
|
202 |
+
] );
|
203 |
+
$this->add_control( 'loop', [
|
204 |
+
'type' => Controls_Manager::SWITCHER,
|
205 |
+
'label_off' => __( 'No', 'livemesh-el-addons' ),
|
206 |
+
'label_on' => __( 'Yes', 'livemesh-el-addons' ),
|
207 |
+
'return_value' => 'yes',
|
208 |
+
'default' => 'yes',
|
209 |
+
"description" => __( "Should the animation loop?", "livemesh-el-addons" ),
|
210 |
+
"label" => __( "Loop", "livemesh-el-addons" ),
|
211 |
+
] );
|
212 |
+
$this->add_control( 'autoplay', [
|
213 |
+
'type' => Controls_Manager::SWITCHER,
|
214 |
+
'label_off' => __( 'No', 'livemesh-el-addons' ),
|
215 |
+
'label_on' => __( 'Yes', 'livemesh-el-addons' ),
|
216 |
+
'return_value' => 'yes',
|
217 |
+
'default' => 'yes',
|
218 |
+
'label' => __( 'Autoplay?', 'livemesh-el-addons' ),
|
219 |
+
'description' => __( 'Should the slider autoplay as in a slideshow.', 'livemesh-el-addons' ),
|
220 |
+
] );
|
221 |
+
$this->add_control( 'autoplay_speed', [
|
222 |
+
'label' => __( 'Autoplay speed in ms', 'livemesh-el-addons' ),
|
223 |
+
'type' => Controls_Manager::NUMBER,
|
224 |
+
'default' => 3000,
|
225 |
+
] );
|
226 |
+
$this->add_control( 'animation_speed', [
|
227 |
+
'label' => __( 'Autoplay animation speed in ms', 'livemesh-el-addons' ),
|
228 |
+
'type' => Controls_Manager::NUMBER,
|
229 |
+
'default' => 300,
|
230 |
+
] );
|
231 |
+
$this->add_control( 'adaptive_height', [
|
232 |
+
'type' => Controls_Manager::SWITCHER,
|
233 |
+
'label_off' => __( 'No', 'livemesh-el-addons' ),
|
234 |
+
'label_on' => __( 'Yes', 'livemesh-el-addons' ),
|
235 |
+
'return_value' => 'yes',
|
236 |
+
'default' => 'no',
|
237 |
+
'label' => __( 'Adaptive Height?', 'livemesh-el-addons' ),
|
238 |
+
'description' => __( 'Enables adaptive height for single slide horizontal multisliders.', 'livemesh-el-addons' ),
|
239 |
+
] );
|
240 |
+
$this->end_controls_section();
|
241 |
+
$this->start_controls_section( 'section_responsive', [
|
242 |
+
'label' => __( 'Responsive Options', 'livemesh-el-addons' ),
|
243 |
+
'tab' => Controls_Manager::TAB_SETTINGS,
|
244 |
+
'condition' => [
|
245 |
+
'layout' => [ 'carousel' ],
|
246 |
+
],
|
247 |
+
] );
|
248 |
+
$this->add_control( 'heading_desktop', [
|
249 |
+
'label' => __( 'Desktop', 'livemesh-el-addons' ),
|
250 |
+
'type' => Controls_Manager::HEADING,
|
251 |
+
'separator' => 'after',
|
252 |
+
] );
|
253 |
+
$this->add_control( 'display_columns', [
|
254 |
+
'label' => __( 'Columns per row', 'livemesh-el-addons' ),
|
255 |
+
'type' => Controls_Manager::NUMBER,
|
256 |
+
'min' => 1,
|
257 |
+
'max' => 15,
|
258 |
+
'step' => 1,
|
259 |
+
'default' => 5,
|
260 |
+
] );
|
261 |
+
$this->add_control( 'scroll_columns', [
|
262 |
+
'label' => __( 'Columns to scroll', 'livemesh-el-addons' ),
|
263 |
+
'type' => Controls_Manager::NUMBER,
|
264 |
+
'min' => 1,
|
265 |
+
'max' => 15,
|
266 |
+
'step' => 1,
|
267 |
+
'default' => 5,
|
268 |
+
] );
|
269 |
+
$this->add_control( 'heading_tablet', [
|
270 |
+
'label' => __( 'Tablet', 'livemesh-el-addons' ),
|
271 |
+
'type' => Controls_Manager::HEADING,
|
272 |
+
'separator' => 'after',
|
273 |
+
] );
|
274 |
+
$this->add_control( 'tablet_display_columns', [
|
275 |
+
'label' => __( 'Columns per row', 'livemesh-el-addons' ),
|
276 |
+
'type' => Controls_Manager::NUMBER,
|
277 |
+
'min' => 1,
|
278 |
+
'max' => 12,
|
279 |
+
'step' => 1,
|
280 |
+
'default' => 4,
|
281 |
+
] );
|
282 |
+
$this->add_control( 'tablet_scroll_columns', [
|
283 |
+
'label' => __( 'Columns to scroll', 'livemesh-el-addons' ),
|
284 |
+
'type' => Controls_Manager::NUMBER,
|
285 |
+
'min' => 1,
|
286 |
+
'max' => 12,
|
287 |
+
'step' => 1,
|
288 |
+
'default' => 4,
|
289 |
+
] );
|
290 |
+
$this->add_control( 'tablet_width', [
|
291 |
+
'label' => __( 'Tablet Resolution', 'livemesh-el-addons' ),
|
292 |
+
'description' => __( 'The resolution to treat as a tablet resolution.', 'livemesh-el-addons' ),
|
293 |
+
'type' => Controls_Manager::NUMBER,
|
294 |
+
'default' => 800,
|
295 |
+
] );
|
296 |
+
$this->add_control( 'heading_mobile', [
|
297 |
+
'label' => __( 'Mobile Phone', 'livemesh-el-addons' ),
|
298 |
+
'type' => Controls_Manager::HEADING,
|
299 |
+
'separator' => 'after',
|
300 |
+
] );
|
301 |
+
$this->add_control( 'mobile_display_columns', [
|
302 |
+
'label' => __( 'Columns per row', 'livemesh-el-addons' ),
|
303 |
+
'type' => Controls_Manager::NUMBER,
|
304 |
+
'min' => 1,
|
305 |
+
'max' => 6,
|
306 |
+
'step' => 1,
|
307 |
+
'default' => 2,
|
308 |
+
] );
|
309 |
+
$this->add_control( 'mobile_scroll_columns', [
|
310 |
+
'label' => __( 'Columns to scroll', 'livemesh-el-addons' ),
|
311 |
+
'type' => Controls_Manager::NUMBER,
|
312 |
+
'min' => 1,
|
313 |
+
'max' => 6,
|
314 |
+
'step' => 1,
|
315 |
+
'default' => 2,
|
316 |
+
] );
|
317 |
+
$this->add_control( 'mobile_width', [
|
318 |
+
'label' => __( 'Mobile Resolution', 'livemesh-el-addons' ),
|
319 |
+
'description' => __( 'The resolution to treat as a mobile resolution.', 'livemesh-el-addons' ),
|
320 |
+
'type' => Controls_Manager::NUMBER,
|
321 |
+
'default' => 480,
|
322 |
+
] );
|
323 |
+
$this->end_controls_section();
|
324 |
$this->start_controls_section( 'section_grid_settings', [
|
325 |
+
'label' => __( 'Grid Settings', 'livemesh-el-addons' ),
|
326 |
+
'tab' => Controls_Manager::TAB_SETTINGS,
|
327 |
+
'condition' => [
|
328 |
+
'layout' => [ 'grid' ],
|
329 |
+
],
|
330 |
] );
|
331 |
$this->add_control( 'column_layout', [
|
332 |
'label' => __( 'Column Layout', 'livemesh-el-addons' ),
|
includes/widgets/services.php
CHANGED
@@ -50,12 +50,25 @@ class LAE_Services_Widget extends LAE_Widget_Base
|
|
50 |
|
51 |
public function get_script_depends()
|
52 |
{
|
53 |
-
return [
|
|
|
|
|
|
|
|
|
|
|
|
|
54 |
}
|
55 |
|
56 |
public function get_style_depends()
|
57 |
{
|
58 |
-
return [
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
59 |
}
|
60 |
|
61 |
protected function _register_controls()
|
@@ -185,11 +198,19 @@ class LAE_Services_Widget extends LAE_Widget_Base
|
|
185 |
'style3' => __( 'Style 3', 'livemesh-el-addons' ),
|
186 |
];
|
187 |
$this->add_control( 'style', [
|
188 |
-
'type'
|
189 |
-
'label'
|
190 |
-
'default'
|
191 |
-
'options'
|
192 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
193 |
] );
|
194 |
$this->add_group_control( Group_Control_Image_Size::get_type(), [
|
195 |
'name' => 'thumbnail_size',
|
@@ -198,9 +219,191 @@ class LAE_Services_Widget extends LAE_Widget_Base
|
|
198 |
'default' => 'large',
|
199 |
] );
|
200 |
$this->end_controls_section();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
201 |
$this->start_controls_section( 'section_grid_settings', [
|
202 |
-
'label'
|
203 |
-
'tab'
|
|
|
|
|
|
|
204 |
] );
|
205 |
$this->add_control( 'column_layout', [
|
206 |
'label' => __( 'Column Layout', 'livemesh-el-addons' ),
|
50 |
|
51 |
public function get_script_depends()
|
52 |
{
|
53 |
+
return [
|
54 |
+
'lae-waypoints',
|
55 |
+
'lae-jquery-slick',
|
56 |
+
'lae-frontend-scripts',
|
57 |
+
'lae-carousel-helper-scripts',
|
58 |
+
'lae-services-scripts'
|
59 |
+
];
|
60 |
}
|
61 |
|
62 |
public function get_style_depends()
|
63 |
{
|
64 |
+
return [
|
65 |
+
'lae-icomoon-styles',
|
66 |
+
'lae-animate-styles',
|
67 |
+
'lae-slick-carousel-styles',
|
68 |
+
'lae-slick-carousel-custom-styles',
|
69 |
+
'lae-frontend-styles',
|
70 |
+
'lae-services-styles'
|
71 |
+
];
|
72 |
}
|
73 |
|
74 |
protected function _register_controls()
|
198 |
'style3' => __( 'Style 3', 'livemesh-el-addons' ),
|
199 |
];
|
200 |
$this->add_control( 'style', [
|
201 |
+
'type' => Controls_Manager::SELECT,
|
202 |
+
'label' => __( 'Choose Style', 'livemesh-el-addons' ),
|
203 |
+
'default' => 'style1',
|
204 |
+
'options' => $style_options,
|
205 |
+
] );
|
206 |
+
$this->add_control( 'layout', [
|
207 |
+
'type' => Controls_Manager::SELECT,
|
208 |
+
'label' => __( 'Choose Layout', 'livemesh-el-addons' ),
|
209 |
+
'default' => 'grid',
|
210 |
+
'options' => [
|
211 |
+
'grid' => __( 'Grid', 'livemesh-el-addons' ),
|
212 |
+
'carousel' => __( 'Carousel', 'livemesh-el-addons' ),
|
213 |
+
],
|
214 |
] );
|
215 |
$this->add_group_control( Group_Control_Image_Size::get_type(), [
|
216 |
'name' => 'thumbnail_size',
|
219 |
'default' => 'large',
|
220 |
] );
|
221 |
$this->end_controls_section();
|
222 |
+
$this->start_controls_section( 'section_carousel_settings', [
|
223 |
+
'label' => __( 'Carousel Settings', 'livemesh-el-addons' ),
|
224 |
+
'tab' => Controls_Manager::TAB_SETTINGS,
|
225 |
+
'condition' => [
|
226 |
+
'layout' => [ 'carousel' ],
|
227 |
+
],
|
228 |
+
] );
|
229 |
+
$this->add_responsive_control( 'gutter', [
|
230 |
+
'label' => __( 'Spacing between items', 'livemesh-el-addons' ),
|
231 |
+
'type' => Controls_Manager::SLIDER,
|
232 |
+
'size_units' => [ 'px' ],
|
233 |
+
'default' => [
|
234 |
+
'size' => 10,
|
235 |
+
],
|
236 |
+
'range' => [
|
237 |
+
'px' => [
|
238 |
+
'min' => 0,
|
239 |
+
'max' => 50,
|
240 |
+
],
|
241 |
+
],
|
242 |
+
'selectors' => [
|
243 |
+
'{{WRAPPER}} .lae-services-carousel .slick-slide' => 'margin: 0 {{SIZE}}{{UNIT}};',
|
244 |
+
'{{WRAPPER}} .lae-services-carousel .slick-list' => 'margin: 0 -{{SIZE}}{{UNIT}};',
|
245 |
+
],
|
246 |
+
] );
|
247 |
+
$this->add_control( 'arrows', [
|
248 |
+
'type' => Controls_Manager::SWITCHER,
|
249 |
+
'label_off' => __( 'No', 'livemesh-el-addons' ),
|
250 |
+
'label_on' => __( 'Yes', 'livemesh-el-addons' ),
|
251 |
+
'return_value' => 'yes',
|
252 |
+
'default' => 'yes',
|
253 |
+
'label' => __( 'Prev/Next Arrows?', 'livemesh-el-addons' ),
|
254 |
+
] );
|
255 |
+
$this->add_control( 'dots', [
|
256 |
+
'type' => Controls_Manager::SWITCHER,
|
257 |
+
'label_off' => __( 'No', 'livemesh-el-addons' ),
|
258 |
+
'label_on' => __( 'Yes', 'livemesh-el-addons' ),
|
259 |
+
'return_value' => 'yes',
|
260 |
+
'default' => 'yes',
|
261 |
+
'label' => __( 'Show dot indicators for navigation?', 'livemesh-el-addons' ),
|
262 |
+
] );
|
263 |
+
$this->add_control( 'pause_on_hover', [
|
264 |
+
'type' => Controls_Manager::SWITCHER,
|
265 |
+
'label_off' => __( 'No', 'livemesh-el-addons' ),
|
266 |
+
'label_on' => __( 'Yes', 'livemesh-el-addons' ),
|
267 |
+
'return_value' => 'yes',
|
268 |
+
'default' => 'yes',
|
269 |
+
'label' => __( 'Pause on Hover?', 'livemesh-el-addons' ),
|
270 |
+
] );
|
271 |
+
$this->add_control( 'pause_on_action', [
|
272 |
+
'type' => Controls_Manager::SWITCHER,
|
273 |
+
'label_off' => __( 'No', 'livemesh-el-addons' ),
|
274 |
+
'label_on' => __( 'Yes', 'livemesh-el-addons' ),
|
275 |
+
'return_value' => 'yes',
|
276 |
+
'default' => 'yes',
|
277 |
+
"description" => __( "Pause the slideshow when interacting with control elements.", "livemesh-el-addons" ),
|
278 |
+
"label" => __( "Pause on action?", "livemesh-el-addons" ),
|
279 |
+
] );
|
280 |
+
$this->add_control( 'loop', [
|
281 |
+
'type' => Controls_Manager::SWITCHER,
|
282 |
+
'label_off' => __( 'No', 'livemesh-el-addons' ),
|
283 |
+
'label_on' => __( 'Yes', 'livemesh-el-addons' ),
|
284 |
+
'return_value' => 'yes',
|
285 |
+
'default' => 'yes',
|
286 |
+
"description" => __( "Should the animation loop?", "livemesh-el-addons" ),
|
287 |
+
"label" => __( "Loop", "livemesh-el-addons" ),
|
288 |
+
] );
|
289 |
+
$this->add_control( 'autoplay', [
|
290 |
+
'type' => Controls_Manager::SWITCHER,
|
291 |
+
'label_off' => __( 'No', 'livemesh-el-addons' ),
|
292 |
+
'label_on' => __( 'Yes', 'livemesh-el-addons' ),
|
293 |
+
'return_value' => 'yes',
|
294 |
+
'default' => 'yes',
|
295 |
+
'label' => __( 'Autoplay?', 'livemesh-el-addons' ),
|
296 |
+
'description' => __( 'Should the slider autoplay as in a slideshow.', 'livemesh-el-addons' ),
|
297 |
+
] );
|
298 |
+
$this->add_control( 'autoplay_speed', [
|
299 |
+
'label' => __( 'Autoplay speed in ms', 'livemesh-el-addons' ),
|
300 |
+
'type' => Controls_Manager::NUMBER,
|
301 |
+
'default' => 3000,
|
302 |
+
] );
|
303 |
+
$this->add_control( 'animation_speed', [
|
304 |
+
'label' => __( 'Autoplay animation speed in ms', 'livemesh-el-addons' ),
|
305 |
+
'type' => Controls_Manager::NUMBER,
|
306 |
+
'default' => 300,
|
307 |
+
] );
|
308 |
+
$this->add_control( 'adaptive_height', [
|
309 |
+
'type' => Controls_Manager::SWITCHER,
|
310 |
+
'label_off' => __( 'No', 'livemesh-el-addons' ),
|
311 |
+
'label_on' => __( 'Yes', 'livemesh-el-addons' ),
|
312 |
+
'return_value' => 'yes',
|
313 |
+
'default' => 'no',
|
314 |
+
'label' => __( 'Adaptive Height?', 'livemesh-el-addons' ),
|
315 |
+
'description' => __( 'Enables adaptive height for single slide horizontal multisliders.', 'livemesh-el-addons' ),
|
316 |
+
] );
|
317 |
+
$this->end_controls_section();
|
318 |
+
$this->start_controls_section( 'section_responsive', [
|
319 |
+
'label' => __( 'Responsive Options', 'livemesh-el-addons' ),
|
320 |
+
'tab' => Controls_Manager::TAB_SETTINGS,
|
321 |
+
'condition' => [
|
322 |
+
'layout' => [ 'carousel' ],
|
323 |
+
],
|
324 |
+
] );
|
325 |
+
$this->add_control( 'heading_desktop', [
|
326 |
+
'label' => __( 'Desktop', 'livemesh-el-addons' ),
|
327 |
+
'type' => Controls_Manager::HEADING,
|
328 |
+
'separator' => 'after',
|
329 |
+
] );
|
330 |
+
$this->add_control( 'display_columns', [
|
331 |
+
'label' => __( 'Columns per row', 'livemesh-el-addons' ),
|
332 |
+
'type' => Controls_Manager::NUMBER,
|
333 |
+
'min' => 1,
|
334 |
+
'max' => 5,
|
335 |
+
'step' => 1,
|
336 |
+
'default' => 3,
|
337 |
+
] );
|
338 |
+
$this->add_control( 'scroll_columns', [
|
339 |
+
'label' => __( 'Columns to scroll', 'livemesh-el-addons' ),
|
340 |
+
'type' => Controls_Manager::NUMBER,
|
341 |
+
'min' => 1,
|
342 |
+
'max' => 5,
|
343 |
+
'step' => 1,
|
344 |
+
'default' => 3,
|
345 |
+
] );
|
346 |
+
$this->add_control( 'heading_tablet', [
|
347 |
+
'label' => __( 'Tablet', 'livemesh-el-addons' ),
|
348 |
+
'type' => Controls_Manager::HEADING,
|
349 |
+
'separator' => 'after',
|
350 |
+
] );
|
351 |
+
$this->add_control( 'tablet_display_columns', [
|
352 |
+
'label' => __( 'Columns per row', 'livemesh-el-addons' ),
|
353 |
+
'type' => Controls_Manager::NUMBER,
|
354 |
+
'min' => 1,
|
355 |
+
'max' => 5,
|
356 |
+
'step' => 1,
|
357 |
+
'default' => 2,
|
358 |
+
] );
|
359 |
+
$this->add_control( 'tablet_scroll_columns', [
|
360 |
+
'label' => __( 'Columns to scroll', 'livemesh-el-addons' ),
|
361 |
+
'type' => Controls_Manager::NUMBER,
|
362 |
+
'min' => 1,
|
363 |
+
'max' => 5,
|
364 |
+
'step' => 1,
|
365 |
+
'default' => 2,
|
366 |
+
] );
|
367 |
+
$this->add_control( 'tablet_width', [
|
368 |
+
'label' => __( 'Tablet Resolution', 'livemesh-el-addons' ),
|
369 |
+
'description' => __( 'The resolution to treat as a tablet resolution.', 'livemesh-el-addons' ),
|
370 |
+
'type' => Controls_Manager::NUMBER,
|
371 |
+
'default' => 800,
|
372 |
+
] );
|
373 |
+
$this->add_control( 'heading_mobile', [
|
374 |
+
'label' => __( 'Mobile Phone', 'livemesh-el-addons' ),
|
375 |
+
'type' => Controls_Manager::HEADING,
|
376 |
+
'separator' => 'after',
|
377 |
+
] );
|
378 |
+
$this->add_control( 'mobile_display_columns', [
|
379 |
+
'label' => __( 'Columns per row', 'livemesh-el-addons' ),
|
380 |
+
'type' => Controls_Manager::NUMBER,
|
381 |
+
'min' => 1,
|
382 |
+
'max' => 3,
|
383 |
+
'step' => 1,
|
384 |
+
'default' => 1,
|
385 |
+
] );
|
386 |
+
$this->add_control( 'mobile_scroll_columns', [
|
387 |
+
'label' => __( 'Columns to scroll', 'livemesh-el-addons' ),
|
388 |
+
'type' => Controls_Manager::NUMBER,
|
389 |
+
'min' => 1,
|
390 |
+
'max' => 3,
|
391 |
+
'step' => 1,
|
392 |
+
'default' => 1,
|
393 |
+
] );
|
394 |
+
$this->add_control( 'mobile_width', [
|
395 |
+
'label' => __( 'Mobile Resolution', 'livemesh-el-addons' ),
|
396 |
+
'description' => __( 'The resolution to treat as a mobile resolution.', 'livemesh-el-addons' ),
|
397 |
+
'type' => Controls_Manager::NUMBER,
|
398 |
+
'default' => 480,
|
399 |
+
] );
|
400 |
+
$this->end_controls_section();
|
401 |
$this->start_controls_section( 'section_grid_settings', [
|
402 |
+
'label' => __( 'Grid Settings', 'livemesh-el-addons' ),
|
403 |
+
'tab' => Controls_Manager::TAB_SETTINGS,
|
404 |
+
'condition' => [
|
405 |
+
'layout' => [ 'grid' ],
|
406 |
+
],
|
407 |
] );
|
408 |
$this->add_control( 'column_layout', [
|
409 |
'label' => __( 'Column Layout', 'livemesh-el-addons' ),
|
plugin.php
CHANGED
@@ -45,7 +45,7 @@ if ( !class_exists( 'Livemesh_Elementor_Addons' ) ) {
|
|
45 |
public function __clone()
|
46 |
{
|
47 |
// Cloning instances of the class is forbidden
|
48 |
-
_doing_it_wrong( __FUNCTION__, __( 'Cheatin’ huh?', 'livemesh-el-addons' ), '6.9.
|
49 |
}
|
50 |
|
51 |
/**
|
@@ -55,7 +55,7 @@ if ( !class_exists( 'Livemesh_Elementor_Addons' ) ) {
|
|
55 |
public function __wakeup()
|
56 |
{
|
57 |
// Unserializing instances of the class is forbidden
|
58 |
-
_doing_it_wrong( __FUNCTION__, __( 'Cheatin’ huh?', 'livemesh-el-addons' ), '6.9.
|
59 |
}
|
60 |
|
61 |
private function setup_debug_constants()
|
@@ -321,6 +321,20 @@ if ( !class_exists( 'Livemesh_Elementor_Addons' ) ) {
|
|
321 |
LAE_VERSION,
|
322 |
true
|
323 |
);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
324 |
wp_register_script(
|
325 |
'lae-testimonials-scripts',
|
326 |
LAE_PLUGIN_URL . 'assets/js/widgets/testimonials' . $suffix . '.js',
|
45 |
public function __clone()
|
46 |
{
|
47 |
// Cloning instances of the class is forbidden
|
48 |
+
_doing_it_wrong( __FUNCTION__, __( 'Cheatin’ huh?', 'livemesh-el-addons' ), '6.9.2' );
|
49 |
}
|
50 |
|
51 |
/**
|
55 |
public function __wakeup()
|
56 |
{
|
57 |
// Unserializing instances of the class is forbidden
|
58 |
+
_doing_it_wrong( __FUNCTION__, __( 'Cheatin’ huh?', 'livemesh-el-addons' ), '6.9.2' );
|
59 |
}
|
60 |
|
61 |
private function setup_debug_constants()
|
321 |
LAE_VERSION,
|
322 |
true
|
323 |
);
|
324 |
+
wp_register_script(
|
325 |
+
'lae-clients-scripts',
|
326 |
+
LAE_PLUGIN_URL . 'assets/js/widgets/clients' . $suffix . '.js',
|
327 |
+
array( 'lae-carousel-helper-scripts', 'elementor-frontend' ),
|
328 |
+
LAE_VERSION,
|
329 |
+
true
|
330 |
+
);
|
331 |
+
wp_register_script(
|
332 |
+
'lae-services-scripts',
|
333 |
+
LAE_PLUGIN_URL . 'assets/js/widgets/services' . $suffix . '.js',
|
334 |
+
array( 'lae-carousel-helper-scripts', 'elementor-frontend' ),
|
335 |
+
LAE_VERSION,
|
336 |
+
true
|
337 |
+
);
|
338 |
wp_register_script(
|
339 |
'lae-testimonials-scripts',
|
340 |
LAE_PLUGIN_URL . 'assets/js/widgets/testimonials' . $suffix . '.js',
|
readme.txt
CHANGED
@@ -7,7 +7,7 @@ Tags: elementor, elementor addons, elementor extensions, elementor widgets, page
|
|
7 |
Requires at least: 4.5
|
8 |
Tested up to: 5.7
|
9 |
Requires PHP: 5.6
|
10 |
-
Stable Tag: 6.9.
|
11 |
License: GPLv3
|
12 |
License URI: https://opensource.org/licenses/GPL-3.0
|
13 |
|
@@ -258,6 +258,10 @@ Email us at support[at]livemeshthemes.com and we will be happy to assist you.
|
|
258 |
|
259 |
|
260 |
|
|
|
|
|
|
|
|
|
261 |
= 6.9.1 =
|
262 |
* Added - Carousel option along with Grid for Team Members and Testimonials Elementor addons
|
263 |
* Added - Support for star rating in Testimonials addons
|
7 |
Requires at least: 4.5
|
8 |
Tested up to: 5.7
|
9 |
Requires PHP: 5.6
|
10 |
+
Stable Tag: 6.9.2
|
11 |
License: GPLv3
|
12 |
License URI: https://opensource.org/licenses/GPL-3.0
|
13 |
|
258 |
|
259 |
|
260 |
|
261 |
+
= 6.9.2 =
|
262 |
+
* Added - Carousel option along with Grid for Services and Clients Elementor addons
|
263 |
+
* Added - Extensive customization options for Carousel function of Services, Team Members, Testimonials and Clients addons
|
264 |
+
|
265 |
= 6.9.1 =
|
266 |
* Added - Carousel option along with Grid for Team Members and Testimonials Elementor addons
|
267 |
* Added - Support for star rating in Testimonials addons
|
templates/addons/clients/content.php
CHANGED
@@ -12,7 +12,7 @@ if (!defined('ABSPATH')) {
|
|
12 |
|
13 |
?>
|
14 |
|
15 |
-
<div class="lae-
|
16 |
|
17 |
<?php if (!empty($client['client_image'])): ?>
|
18 |
|
12 |
|
13 |
?>
|
14 |
|
15 |
+
<div class="lae-client <?php echo $animate_class; ?>" <?php echo $animation_attr; ?>>
|
16 |
|
17 |
<?php if (!empty($client['client_image'])): ?>
|
18 |
|
templates/addons/clients/loop.php
CHANGED
@@ -10,26 +10,64 @@ if (!defined('ABSPATH')) {
|
|
10 |
exit; // Exit if accessed directly
|
11 |
}
|
12 |
|
13 |
-
|
|
|
|
|
|
|
14 |
|
15 |
$args['animate_class'] = $animate_class;
|
16 |
|
17 |
$args['animation_attr'] = $animation_attr;
|
18 |
|
19 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
20 |
|
21 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
22 |
|
23 |
-
|
24 |
|
25 |
-
|
26 |
|
27 |
-
|
28 |
|
29 |
-
|
30 |
|
31 |
-
|
32 |
|
33 |
-
|
34 |
|
35 |
-
|
10 |
exit; // Exit if accessed directly
|
11 |
}
|
12 |
|
13 |
+
$animate_class = $animation_attr = '';
|
14 |
+
|
15 |
+
if ($settings['layout'] == 'grid')
|
16 |
+
list($animate_class, $animation_attr) = lae_get_animation_atts($settings['widget_animation']);
|
17 |
|
18 |
$args['animate_class'] = $animate_class;
|
19 |
|
20 |
$args['animation_attr'] = $animation_attr;
|
21 |
|
22 |
+
$class_attr = $data_attr = '';
|
23 |
+
$dir = is_rtl() ? ' dir="rtl"' : '';
|
24 |
+
|
25 |
+
if ($settings['layout'] == 'carousel') :
|
26 |
+
|
27 |
+
$carousel_settings = [
|
28 |
+
'arrows' => ('yes' === $settings['arrows']),
|
29 |
+
'dots' => ('yes' === $settings['dots']),
|
30 |
+
'autoplay' => ('yes' === $settings['autoplay']),
|
31 |
+
'autoplay_speed' => absint($settings['autoplay_speed']),
|
32 |
+
'animation_speed' => absint($settings['animation_speed']),
|
33 |
+
'pause_on_hover' => ('yes' === $settings['pause_on_hover']),
|
34 |
+
'adaptive_height' => ('yes' === $settings['adaptive_height']),
|
35 |
+
];
|
36 |
+
|
37 |
+
$responsive_settings = [
|
38 |
+
'display_columns' => $settings['display_columns'],
|
39 |
+
'scroll_columns' => $settings['scroll_columns'],
|
40 |
+
'tablet_width' => $settings['tablet_width'],
|
41 |
+
'tablet_display_columns' => $settings['tablet_display_columns'],
|
42 |
+
'tablet_scroll_columns' => $settings['tablet_scroll_columns'],
|
43 |
+
'mobile_width' => $settings['mobile_width'],
|
44 |
+
'mobile_display_columns' => $settings['mobile_display_columns'],
|
45 |
+
'mobile_scroll_columns' => $settings['mobile_scroll_columns'],
|
46 |
+
];
|
47 |
+
|
48 |
+
$carousel_settings = array_merge($carousel_settings, $responsive_settings);
|
49 |
|
50 |
+
$class_attr = 'lae-clients-carousel lae-container';
|
51 |
+
$data_attr = ' data-settings=\'' . wp_json_encode($carousel_settings) . '\'';
|
52 |
+
|
53 |
+
else:
|
54 |
+
|
55 |
+
$class_attr = 'lae-uber-grid-container ' . lae_get_grid_classes($settings);
|
56 |
+
|
57 |
+
endif;
|
58 |
+
|
59 |
+
?>
|
60 |
|
61 |
+
<div<?php echo $dir; ?> class="lae-clients <?php echo $class_attr; ?>" <?php echo $data_attr; ?>>
|
62 |
|
63 |
+
<?php foreach ($settings['clients'] as $client): ?>
|
64 |
|
65 |
+
<?php $args['client'] = $client; ?>
|
66 |
|
67 |
+
<?php lae_get_template_part("addons/clients/content", $args); ?>
|
68 |
|
69 |
+
<?php endforeach; ?>
|
70 |
|
71 |
+
</div><!-- .lae-clients -->
|
72 |
|
73 |
+
<div class="lae-clear"></div>
|
templates/addons/services/content.php
CHANGED
@@ -38,92 +38,91 @@ if (!empty($service['service_link']['url'])) {
|
|
38 |
}
|
39 |
}
|
40 |
|
41 |
-
|
42 |
|
43 |
-
|
44 |
-
|
45 |
-
<div class="lae-grid-item lae-service-wrapper">
|
46 |
|
47 |
-
|
48 |
|
49 |
-
|
50 |
|
51 |
-
|
52 |
|
53 |
-
|
54 |
|
55 |
-
|
56 |
|
57 |
-
|
58 |
|
59 |
-
|
60 |
-
$image_html = '<a class="lae-title-link" ' . $widget_instance->get_render_attribute_string($link_key) . '>' . $image_html . '</a>';
|
61 |
|
62 |
-
|
|
|
63 |
|
64 |
-
|
65 |
|
66 |
-
|
67 |
|
68 |
-
|
69 |
|
70 |
-
<?php
|
71 |
|
72 |
-
|
73 |
|
74 |
-
|
75 |
-
$is_new = empty($service['icon']) && $migration_allowed;
|
76 |
|
77 |
-
|
|
|
78 |
|
79 |
-
|
80 |
|
81 |
-
|
82 |
|
83 |
-
|
84 |
|
85 |
-
|
86 |
|
87 |
-
|
88 |
|
89 |
-
|
90 |
|
91 |
-
|
92 |
|
93 |
-
|
94 |
|
95 |
-
|
96 |
|
97 |
-
|
98 |
|
99 |
-
|
100 |
-
$icon_html = '<a class="lae-icon-link" ' . $widget_instance->get_render_attribute_string($link_key) . '>' . $icon_html . '</a>';
|
101 |
|
102 |
-
|
|
|
103 |
|
104 |
-
|
105 |
|
106 |
-
|
107 |
|
108 |
-
|
109 |
|
110 |
-
|
111 |
|
112 |
-
|
113 |
|
114 |
-
|
115 |
|
116 |
-
|
117 |
-
$title_html = '<a class="lae-title-link" ' . $widget_instance->get_render_attribute_string($link_key) . '>' . $title_html . '</a>';
|
118 |
|
119 |
-
|
|
|
120 |
|
121 |
-
|
122 |
|
123 |
-
|
124 |
|
125 |
-
|
126 |
|
127 |
-
</div><!-- .lae-service -->
|
128 |
|
129 |
-
</div><!-- .lae-service
|
38 |
}
|
39 |
}
|
40 |
|
41 |
+
$class_attr = $data_attr = '';
|
42 |
|
43 |
+
if ($settings['layout'] == 'grid')
|
44 |
+
list($class_attr, $data_attr) = lae_get_animation_atts($service['widget_animation']);
|
|
|
45 |
|
46 |
+
?>
|
47 |
|
48 |
+
<div class="lae-service <?php echo $class_attr; ?>" <?php echo $data_attr; ?>>
|
49 |
|
50 |
+
<?php if ($service['icon_type'] == 'icon_image') : ?>
|
51 |
|
52 |
+
<?php if (!empty($service['icon_image'])): ?>
|
53 |
|
54 |
+
<div class="lae-image-wrapper">
|
55 |
|
56 |
+
<?php
|
57 |
|
58 |
+
$image_html = lae_get_image_html($service['icon_image'], 'thumbnail_size', $settings);
|
|
|
59 |
|
60 |
+
if ($has_link)
|
61 |
+
$image_html = '<a class="lae-title-link" ' . $widget_instance->get_render_attribute_string($link_key) . '>' . $image_html . '</a>';
|
62 |
|
63 |
+
echo $image_html;
|
64 |
|
65 |
+
?>
|
66 |
|
67 |
+
</div>
|
68 |
|
69 |
+
<?php endif; ?>
|
70 |
|
71 |
+
<?php elseif ($service['icon_type'] == 'icon' && (!empty($service['icon']) || !empty($service['selected_icon']['value']))) : ?>
|
72 |
|
73 |
+
<?php
|
|
|
74 |
|
75 |
+
$migrated = isset($service['__fa4_migrated']['selected_icon']);
|
76 |
+
$is_new = empty($service['icon']) && $migration_allowed;
|
77 |
|
78 |
+
?>
|
79 |
|
80 |
+
<div class="lae-icon-wrapper">
|
81 |
|
82 |
+
<?php
|
83 |
|
84 |
+
if ($is_new || $migrated) :
|
85 |
|
86 |
+
ob_start();
|
87 |
|
88 |
+
Icons_Manager::render_icon($service['selected_icon'], ['aria-hidden' => 'true']);
|
89 |
|
90 |
+
$icon_html = ob_get_contents();
|
91 |
|
92 |
+
ob_end_clean();
|
93 |
|
94 |
+
else :
|
95 |
|
96 |
+
$icon_html = '<i class="' . esc_attr($service['icon']) . '" aria-hidden="true"></i>';
|
97 |
|
98 |
+
endif;
|
|
|
99 |
|
100 |
+
if ($has_link)
|
101 |
+
$icon_html = '<a class="lae-icon-link" ' . $widget_instance->get_render_attribute_string($link_key) . '>' . $icon_html . '</a>';
|
102 |
|
103 |
+
echo $icon_html;
|
104 |
|
105 |
+
?>
|
106 |
|
107 |
+
</div>
|
108 |
|
109 |
+
<?php endif; ?>
|
110 |
|
111 |
+
<div class="lae-service-text">
|
112 |
|
113 |
+
<?php
|
114 |
|
115 |
+
$title_html = '<' . lae_validate_html_tag($settings['title_tag']) . ' class="lae-title">' . esc_html($service['service_title']) . '</' . lae_validate_html_tag($settings['title_tag']) . '>';
|
|
|
116 |
|
117 |
+
if ($has_link)
|
118 |
+
$title_html = '<a class="lae-title-link" ' . $widget_instance->get_render_attribute_string($link_key) . '>' . $title_html . '</a>';
|
119 |
|
120 |
+
echo $title_html;
|
121 |
|
122 |
+
?>
|
123 |
|
124 |
+
<div class="lae-service-details"><?php echo do_shortcode(wp_kses_post($service['service_excerpt'])); ?></div>
|
125 |
|
126 |
+
</div><!-- .lae-service-text -->
|
127 |
|
128 |
+
</div><!-- .lae-service -->
|
templates/addons/services/loop.php
CHANGED
@@ -12,7 +12,48 @@ if (!defined('ABSPATH')) {
|
|
12 |
|
13 |
?>
|
14 |
|
15 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
16 |
|
17 |
<?php foreach ($settings['services'] as $index => $service): ?>
|
18 |
|
12 |
|
13 |
?>
|
14 |
|
15 |
+
<?php
|
16 |
+
|
17 |
+
$class_attr = $data_attr = '';
|
18 |
+
$dir = is_rtl() ? ' dir="rtl"' : '';
|
19 |
+
|
20 |
+
if ($settings['layout'] == 'carousel') :
|
21 |
+
|
22 |
+
$carousel_settings = [
|
23 |
+
'arrows' => ('yes' === $settings['arrows']),
|
24 |
+
'dots' => ('yes' === $settings['dots']),
|
25 |
+
'autoplay' => ('yes' === $settings['autoplay']),
|
26 |
+
'autoplay_speed' => absint($settings['autoplay_speed']),
|
27 |
+
'animation_speed' => absint($settings['animation_speed']),
|
28 |
+
'pause_on_hover' => ('yes' === $settings['pause_on_hover']),
|
29 |
+
'adaptive_height' => ('yes' === $settings['adaptive_height']),
|
30 |
+
];
|
31 |
+
|
32 |
+
$responsive_settings = [
|
33 |
+
'display_columns' => $settings['display_columns'],
|
34 |
+
'scroll_columns' => $settings['scroll_columns'],
|
35 |
+
'tablet_width' => $settings['tablet_width'],
|
36 |
+
'tablet_display_columns' => $settings['tablet_display_columns'],
|
37 |
+
'tablet_scroll_columns' => $settings['tablet_scroll_columns'],
|
38 |
+
'mobile_width' => $settings['mobile_width'],
|
39 |
+
'mobile_display_columns' => $settings['mobile_display_columns'],
|
40 |
+
'mobile_scroll_columns' => $settings['mobile_scroll_columns'],
|
41 |
+
];
|
42 |
+
|
43 |
+
$carousel_settings = array_merge($carousel_settings, $responsive_settings);
|
44 |
+
|
45 |
+
$class_attr = 'lae-services-carousel lae-container';
|
46 |
+
$data_attr = ' data-settings=\'' . wp_json_encode($carousel_settings) . '\'';
|
47 |
+
|
48 |
+
else:
|
49 |
+
|
50 |
+
$class_attr = 'lae-uber-grid-container ' . lae_get_grid_classes($settings);
|
51 |
+
|
52 |
+
endif;
|
53 |
+
|
54 |
+
?>
|
55 |
+
|
56 |
+
<div<?php echo $dir; ?> class="lae-services lae-services-<?php echo $settings['style']; ?> <?php echo $class_attr; ?>" <?php echo $data_attr; ?>>
|
57 |
|
58 |
<?php foreach ($settings['services'] as $index => $service): ?>
|
59 |
|