Addons for Elementor - Version 6.12

Version Description

  • Tweak - Moved to Slick Carousel library from legacy Flex Slider for the Testimonials Slider.
  • Added - Compatibility with Elementor 3.4
Download this release

Release Info

Developer livemesh
Plugin Icon 128x128 Addons for Elementor
Version 6.12
Comparing to
See all releases

Code changes from version 6.11 to 6.12

addons-for-elementor.php CHANGED
@@ -8,11 +8,11 @@
8
  * Author URI: https://livemeshelementor.com
9
  * License: GPL3
10
  * License URI: https://www.gnu.org/licenses/gpl-3.0.txt
11
- * Version: 6.11
12
  * Text Domain: livemesh-el-addons
13
  * Domain Path: languages
14
- * Elementor tested up to: 3.3.0
15
- * Elementor Pro tested up to: 3.3.0
16
  *
17
  * Livemesh Addons for Elementor is distributed under the terms of the GNU
18
  * General Public License as published by the Free Software Foundation,
@@ -37,7 +37,7 @@ if ( !defined( 'ABSPATH' ) ) {
37
 
38
  if ( !function_exists( 'lae_fs' ) ) {
39
  // Plugin version
40
- define( 'LAE_VERSION', '6.11' );
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.12
12
  * Text Domain: livemesh-el-addons
13
  * Domain Path: languages
14
+ * Elementor tested up to: 3.4.0
15
+ * Elementor Pro tested up to: 3.4.0
16
  *
17
  * Livemesh Addons for Elementor is distributed under the terms of the GNU
18
  * General Public License as published by the Free Software Foundation,
37
 
38
  if ( !function_exists( 'lae_fs' ) ) {
39
  // Plugin version
40
+ define( 'LAE_VERSION', '6.12' );
41
  // Plugin Root File
42
  define( 'LAE_PLUGIN_FILE', __FILE__ );
43
  // Plugin Folder Path
assets/js/lae-carousel-helper.js CHANGED
@@ -37,10 +37,14 @@ if (typeof ( jQuery ) != 'undefined') {
37
 
38
  var animation_speed = parseInt( settings['animation_speed'] ) || 300;
39
 
40
- var fade = settings['fade'];
 
 
41
 
42
  var pause_on_hover = settings['pause_on_hover'];
43
 
 
 
44
  var display_columns = parseInt( settings['display_columns'] ) || 4;
45
 
46
  var scroll_columns = parseInt( settings['scroll_columns'] ) || 4;
@@ -64,8 +68,10 @@ if (typeof ( jQuery ) != 'undefined') {
64
  autoplay: autoplay,
65
  autoplaySpeed: autoplay_speed,
66
  speed: animation_speed,
67
- fade: false,
 
68
  pauseOnHover: pause_on_hover,
 
69
  adaptiveHeight: adaptive_height,
70
  slidesToShow: display_columns,
71
  slidesToScroll: scroll_columns,
37
 
38
  var animation_speed = parseInt( settings['animation_speed'] ) || 300;
39
 
40
+ var fade = ('fade' in settings && (settings['fade'] === true));
41
+
42
+ var vertical = ('vertical' in settings && (settings['vertical'] === true));
43
 
44
  var pause_on_hover = settings['pause_on_hover'];
45
 
46
+ var pause_on_focus = ('pause_on_focus' in settings && (settings['pause_on_focus'] == true));
47
+
48
  var display_columns = parseInt( settings['display_columns'] ) || 4;
49
 
50
  var scroll_columns = parseInt( settings['scroll_columns'] ) || 4;
68
  autoplay: autoplay,
69
  autoplaySpeed: autoplay_speed,
70
  speed: animation_speed,
71
+ fade: fade,
72
+ vertical: vertical,
73
  pauseOnHover: pause_on_hover,
74
+ pauseOnFocus: pause_on_focus,
75
  adaptiveHeight: adaptive_height,
76
  slidesToShow: display_columns,
77
  slidesToScroll: scroll_columns,
assets/js/lae-carousel-helper.min.js CHANGED
@@ -1 +1 @@
1
- if(typeof jQuery!="undefined"){var LAE_Carousel_Helper;(function($){"use strict";LAE_Carousel_Helper=function($scope,selector){this._$element=$scope.find(selector).eq(0)};LAE_Carousel_Helper.prototype={_$element:null,init:function(){var $carouselElem=this._$element;if($carouselElem.length>0){var rtl=$carouselElem.attr("dir")==="rtl";var settings=$carouselElem.data("settings");var arrows=settings["arrows"];var dots=settings["dots"];var autoplay=settings["autoplay"];var adaptive_height=settings["adaptive_height"];var autoplay_speed=parseInt(settings["autoplay_speed"])||3e3;var animation_speed=parseInt(settings["animation_speed"])||300;var fade=settings["fade"];var pause_on_hover=settings["pause_on_hover"];var display_columns=parseInt(settings["display_columns"])||4;var scroll_columns=parseInt(settings["scroll_columns"])||4;var tablet_width=parseInt(settings["tablet_width"])||800;var tablet_display_columns=parseInt(settings["tablet_display_columns"])||2;var tablet_scroll_columns=parseInt(settings["tablet_scroll_columns"])||2;var mobile_width=parseInt(settings["mobile_width"])||480;var mobile_display_columns=parseInt(settings["mobile_display_columns"])||1;var mobile_scroll_columns=parseInt(settings["mobile_scroll_columns"])||1;$carouselElem.slick({arrows:arrows,dots:dots,infinite:true,autoplay:autoplay,autoplaySpeed:autoplay_speed,speed:animation_speed,fade:false,pauseOnHover:pause_on_hover,adaptiveHeight:adaptive_height,slidesToShow:display_columns,slidesToScroll:scroll_columns,rtl:rtl,responsive:[{breakpoint:tablet_width,settings:{slidesToShow:tablet_display_columns,slidesToScroll:tablet_scroll_columns}},{breakpoint:mobile_width,settings:{slidesToShow:mobile_display_columns,slidesToScroll:mobile_scroll_columns}}]})}}}})(jQuery)}
1
+ if(typeof jQuery!="undefined"){var LAE_Carousel_Helper;(function($){"use strict";LAE_Carousel_Helper=function($scope,selector){this._$element=$scope.find(selector).eq(0)};LAE_Carousel_Helper.prototype={_$element:null,init:function(){var $carouselElem=this._$element;if($carouselElem.length>0){var rtl=$carouselElem.attr("dir")==="rtl";var settings=$carouselElem.data("settings");var arrows=settings["arrows"];var dots=settings["dots"];var autoplay=settings["autoplay"];var adaptive_height=settings["adaptive_height"];var autoplay_speed=parseInt(settings["autoplay_speed"])||3e3;var animation_speed=parseInt(settings["animation_speed"])||300;var fade="fade"in settings&&settings["fade"]===true;var vertical="vertical"in settings&&settings["vertical"]===true;var pause_on_hover=settings["pause_on_hover"];var pause_on_focus="pause_on_focus"in settings&&settings["pause_on_focus"]==true;var display_columns=parseInt(settings["display_columns"])||4;var scroll_columns=parseInt(settings["scroll_columns"])||4;var tablet_width=parseInt(settings["tablet_width"])||800;var tablet_display_columns=parseInt(settings["tablet_display_columns"])||2;var tablet_scroll_columns=parseInt(settings["tablet_scroll_columns"])||2;var mobile_width=parseInt(settings["mobile_width"])||480;var mobile_display_columns=parseInt(settings["mobile_display_columns"])||1;var mobile_scroll_columns=parseInt(settings["mobile_scroll_columns"])||1;$carouselElem.slick({arrows:arrows,dots:dots,infinite:true,autoplay:autoplay,autoplaySpeed:autoplay_speed,speed:animation_speed,fade:fade,vertical:vertical,pauseOnHover:pause_on_hover,pauseOnFocus:pause_on_focus,adaptiveHeight:adaptive_height,slidesToShow:display_columns,slidesToScroll:scroll_columns,rtl:rtl,responsive:[{breakpoint:tablet_width,settings:{slidesToShow:tablet_display_columns,slidesToScroll:tablet_scroll_columns}},{breakpoint:mobile_width,settings:{slidesToShow:mobile_display_columns,slidesToScroll:mobile_scroll_columns}}]})}}}})(jQuery)}
assets/js/widgets/testimonials-slider.js CHANGED
@@ -1,42 +1,16 @@
1
  ( function ( $ ) {
2
 
3
- var WidgetLAETestimonialsSliderHandler = function ($scope, $) {
4
-
5
- var slider_elem = $scope.find('.lae-testimonials-slider').eq(0);
6
-
7
- var rtl = slider_elem.attr('dir') === 'rtl';
8
-
9
- var settings = slider_elem.data('settings');
10
-
11
- slider_elem.flexslider({
12
- selector: ".lae-slides > .lae-slide",
13
- animation: settings['slide_animation'],
14
- direction: settings['direction'],
15
- slideshowSpeed: settings['slideshow_speed'],
16
- animationSpeed: settings['animation_speed'],
17
- namespace: "lae-flex-",
18
- pauseOnAction: settings['pause_on_action'],
19
- pauseOnHover: settings['pause_on_hover'],
20
- controlNav: settings['control_nav'],
21
- directionNav: settings['direction_nav'],
22
- prevText: "Previous<span></span>",
23
- nextText: "Next<span></span>",
24
- smoothHeight: settings['smooth_height'],
25
- animationLoop: true,
26
- slideshow: true,
27
- rtl: rtl,
28
- easing: "swing",
29
- controlsContainer: "lae-testimonials-slider"
30
- });
31
 
 
32
 
 
33
  };
34
 
35
  // Make sure you run this code under Elementor..
36
  $( window ).on( 'elementor/frontend/init', function () {
37
 
38
- elementorFrontend.hooks.addAction( 'frontend/element_ready/lae-testimonials-slider.default', WidgetLAETestimonialsSliderHandler );
39
-
40
 
41
  } );
42
 
1
  ( function ( $ ) {
2
 
3
+ var WidgetLAECarouselHandler = function ($scope, $) {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4
 
5
+ var helper = new LAE_Carousel_Helper($scope, '.lae-testimonials-slider');
6
 
7
+ helper.init();
8
  };
9
 
10
  // Make sure you run this code under Elementor..
11
  $( window ).on( 'elementor/frontend/init', function () {
12
 
13
+ elementorFrontend.hooks.addAction( 'frontend/element_ready/lae-testimonials-slider.default', WidgetLAECarouselHandler );
 
14
 
15
  } );
16
 
assets/js/widgets/testimonials-slider.min.js CHANGED
@@ -1 +1 @@
1
- (function($){var WidgetLAETestimonialsSliderHandler=function($scope,$){var slider_elem=$scope.find(".lae-testimonials-slider").eq(0);var rtl=slider_elem.attr("dir")==="rtl";var settings=slider_elem.data("settings");slider_elem.flexslider({selector:".lae-slides > .lae-slide",animation:settings["slide_animation"],direction:settings["direction"],slideshowSpeed:settings["slideshow_speed"],animationSpeed:settings["animation_speed"],namespace:"lae-flex-",pauseOnAction:settings["pause_on_action"],pauseOnHover:settings["pause_on_hover"],controlNav:settings["control_nav"],directionNav:settings["direction_nav"],prevText:"Previous<span></span>",nextText:"Next<span></span>",smoothHeight:settings["smooth_height"],animationLoop:true,slideshow:true,rtl:rtl,easing:"swing",controlsContainer:"lae-testimonials-slider"})};$(window).on("elementor/frontend/init",function(){elementorFrontend.hooks.addAction("frontend/element_ready/lae-testimonials-slider.default",WidgetLAETestimonialsSliderHandler)})})(jQuery);
1
+ (function($){var WidgetLAECarouselHandler=function($scope,$){var helper=new LAE_Carousel_Helper($scope,".lae-testimonials-slider");helper.init()};$(window).on("elementor/frontend/init",function(){elementorFrontend.hooks.addAction("frontend/element_ready/lae-testimonials-slider.default",WidgetLAECarouselHandler)})})(jQuery);
includes/widgets/testimonials-slider.php CHANGED
@@ -47,16 +47,21 @@ class LAE_Testimonials_Slider_Widget extends LAE_Widget_Base
47
 
48
  public function get_script_depends()
49
  {
50
- return [ 'jquery-flexslider', 'lae-frontend-scripts', 'lae-testimonials-slider-scripts' ];
 
 
 
 
 
51
  }
52
 
53
  public function get_style_depends()
54
  {
55
  return [
56
  'lae-icomoon-styles',
57
- 'lae-flexslider-styles',
58
  'lae-frontend-styles',
59
- 'lae-flexslider-custom-styles',
60
  'lae-testimonials-slider-styles'
61
  ];
62
  }
@@ -158,14 +163,14 @@ class LAE_Testimonials_Slider_Widget extends LAE_Widget_Base
158
  'fade' => __( 'Fade', 'livemesh-el-addons' ),
159
  ],
160
  ] );
161
- $this->add_control( 'direction', [
162
- 'label' => __( 'Direction', 'livemesh-el-addons' ),
163
- 'type' => Controls_Manager::SELECT,
164
- 'default' => 'horizontal',
165
- 'options' => [
166
- 'horizontal' => __( 'Horizontal', 'livemesh-el-addons' ),
167
- 'vertical' => __( 'Vertical', 'livemesh-el-addons' ),
168
- ],
169
  ] );
170
  $this->add_control( 'slideshow_speed', [
171
  'label' => __( 'Slideshow Speed', 'livemesh-el-addons' ),
47
 
48
  public function get_script_depends()
49
  {
50
+ return [
51
+ 'lae-jquery-slick',
52
+ 'lae-frontend-scripts',
53
+ 'lae-carousel-helper-scripts',
54
+ 'lae-testimonials-slider-scripts'
55
+ ];
56
  }
57
 
58
  public function get_style_depends()
59
  {
60
  return [
61
  'lae-icomoon-styles',
62
+ 'lae-slick-carousel-styles',
63
  'lae-frontend-styles',
64
+ 'lae-slick-carousel-custom-styles',
65
  'lae-testimonials-slider-styles'
66
  ];
67
  }
163
  'fade' => __( 'Fade', 'livemesh-el-addons' ),
164
  ],
165
  ] );
166
+ $this->add_control( 'autoplay', [
167
+ 'type' => Controls_Manager::SWITCHER,
168
+ 'label_off' => __( 'No', 'livemesh-el-addons' ),
169
+ 'label_on' => __( 'Yes', 'livemesh-el-addons' ),
170
+ 'return_value' => 'yes',
171
+ 'default' => 'yes',
172
+ 'label' => __( 'Autoplay?', 'livemesh-el-addons' ),
173
+ 'description' => __( 'Should the slider autoplay as in a slideshow.', 'livemesh-el-addons' ),
174
  ] );
175
  $this->add_control( 'slideshow_speed', [
176
  'label' => __( 'Slideshow Speed', '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&#8217; huh?', 'livemesh-el-addons' ), '6.11' );
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&#8217; huh?', 'livemesh-el-addons' ), '6.11' );
59
  }
60
 
61
  private function setup_debug_constants()
45
  public function __clone()
46
  {
47
  // Cloning instances of the class is forbidden
48
+ _doing_it_wrong( __FUNCTION__, __( 'Cheatin&#8217; huh?', 'livemesh-el-addons' ), '6.12' );
49
  }
50
 
51
  /**
55
  public function __wakeup()
56
  {
57
  // Unserializing instances of the class is forbidden
58
+ _doing_it_wrong( __FUNCTION__, __( 'Cheatin&#8217; huh?', 'livemesh-el-addons' ), '6.12' );
59
  }
60
 
61
  private function setup_debug_constants()
readme.txt CHANGED
@@ -7,7 +7,7 @@ Tags: elementor, elementor addons, elementor extensions, elementor widgets, page
7
  Requires at least: 5.0
8
  Tested up to: 5.8
9
  Requires PHP: 5.6
10
- Stable Tag: 6.11
11
  License: GPLv3
12
  License URI: https://opensource.org/licenses/GPL-3.0
13
 
@@ -259,6 +259,10 @@ Email us at support[at]livemeshthemes.com and we will be happy to assist you.
259
 
260
 
261
 
 
 
 
 
262
  = 6.11 =
263
  * Added - Compatibility with Elementor 3.3 and WordPress 5.8.
264
 
7
  Requires at least: 5.0
8
  Tested up to: 5.8
9
  Requires PHP: 5.6
10
+ Stable Tag: 6.12
11
  License: GPLv3
12
  License URI: https://opensource.org/licenses/GPL-3.0
13
 
259
 
260
 
261
 
262
+ = 6.12 =
263
+ * Tweak - Moved to Slick Carousel library from legacy Flex Slider for the Testimonials Slider.
264
+ * Added - Compatibility with Elementor 3.4
265
+
266
  = 6.11 =
267
  * Added - Compatibility with Elementor 3.3 and WordPress 5.8.
268
 
templates/addons/testimonials-slider/content.php CHANGED
@@ -14,41 +14,39 @@ if (!defined('ABSPATH')) {
14
 
15
  ?>
16
 
17
- <li class="lae-slide lae-testimonial-wrapper">
18
 
19
- <div class="lae-testimonial lae-<?php echo $testimonial['testimonial_rating']; ?>">
20
 
21
- <div class="lae-testimonial-text">
22
 
23
- <i class="lae-icon-quote"></i>
24
 
25
- <?php if ($testimonial['testimonial_rating'] !== 'rating-none') : ?>
26
 
27
- <?php lae_get_template_part("addons/testimonials-slider/star-rating", $args); ?>
28
 
29
- <?php endif; ?>
30
-
31
- <?php echo $widget_instance->parse_text_editor($testimonial['testimonial_text']); ?>
32
 
33
- </div>
34
 
35
- <div class="lae-testimonial-user">
36
 
37
- <div class="lae-image-wrapper">
38
 
39
- <?php $client_image = $testimonial['client_image']; ?>
40
 
41
- <?php if (!empty($client_image)): ?>
42
 
43
- <?php echo wp_get_attachment_image($client_image['id'], 'thumbnail', false, array('class' => 'lae-image full')); ?>
44
 
45
- <?php endif; ?>
46
 
47
- </div><!-- .lae-image-wrapper -->
48
 
49
- <div class="lae-user-text">
50
 
51
- <<?php echo lae_validate_html_tag($settings['title_tag']); ?> class="lae-author-name"><?php echo esc_html($testimonial['client_name']); ?></<?php echo lae_validate_html_tag($settings['title_tag']); ?>>
52
 
53
  <div class="lae-author-credentials"><?php echo wp_kses_post($testimonial['credentials']); ?></div>
54
 
@@ -56,6 +54,4 @@ if (!defined('ABSPATH')) {
56
 
57
  </div><!-- .lae-testimonial-user -->
58
 
59
- </div><!-- .lae-testimonial -->
60
-
61
- </li><!-- .lae-testimonial-wrapper.lae-slide -->
14
 
15
  ?>
16
 
17
+ <div class="lae-testimonial lae-<?php echo $testimonial['testimonial_rating']; ?>">
18
 
19
+ <div class="lae-testimonial-text">
20
 
21
+ <i class="lae-icon-quote"></i>
22
 
23
+ <?php if ($testimonial['testimonial_rating'] !== 'rating-none') : ?>
24
 
25
+ <?php lae_get_template_part("addons/testimonials-slider/star-rating", $args); ?>
26
 
27
+ <?php endif; ?>
28
 
29
+ <?php echo $widget_instance->parse_text_editor($testimonial['testimonial_text']); ?>
 
 
30
 
31
+ </div>
32
 
33
+ <div class="lae-testimonial-user">
34
 
35
+ <div class="lae-image-wrapper">
36
 
37
+ <?php $client_image = $testimonial['client_image']; ?>
38
 
39
+ <?php if (!empty($client_image)): ?>
40
 
41
+ <?php echo wp_get_attachment_image($client_image['id'], 'thumbnail', false, array('class' => 'lae-image full')); ?>
42
 
43
+ <?php endif; ?>
44
 
45
+ </div><!-- .lae-image-wrapper -->
46
 
47
+ <div class="lae-user-text">
48
 
49
+ <<?php echo lae_validate_html_tag($settings['title_tag']); ?> class="lae-author-name"><?php echo esc_html($testimonial['client_name']); ?></<?php echo lae_validate_html_tag($settings['title_tag']); ?>>
50
 
51
  <div class="lae-author-credentials"><?php echo wp_kses_post($testimonial['credentials']); ?></div>
52
 
54
 
55
  </div><!-- .lae-testimonial-user -->
56
 
57
+ </div><!-- .lae-testimonial -->
 
 
templates/addons/testimonials-slider/loop.php CHANGED
@@ -16,23 +16,35 @@ $style = is_rtl() ? ' style="direction:rtl"' : '';
16
 
17
  $settings = apply_filters('lae_testimonials_slider_' . $settings['slider_id'] . '_settings', $settings);
18
 
19
- $slider_options = [
20
- 'slide_animation' => $settings['slide_animation'],
21
- 'direction' => $settings['direction'],
22
- 'slideshow_speed' => absint($settings['slideshow_speed']),
23
  'animation_speed' => absint($settings['animation_speed']),
24
- 'control_nav' => ('yes' === $settings['control_nav']),
25
- 'direction_nav' => ('yes' === $settings['direction_nav']),
26
  'pause_on_hover' => ('yes' === $settings['pause_on_hover']),
27
- 'pause_on_action' => ('yes' === $settings['pause_on_action']),
28
- 'smooth_height' => ('yes' === $settings['smooth_height'])
29
  ];
30
 
 
 
 
 
 
 
 
 
 
 
 
 
 
31
  ?>
32
 
33
- <div<?php echo $dir . $style; ?> class="lae-testimonials-slider lae-flexslider lae-container"
34
- data-settings='<?php echo wp_json_encode($slider_options); ?>'>
35
- <ul class="lae-slides">
36
 
37
  <?php foreach ($settings['testimonials'] as $testimonial) : ?>
38
 
@@ -42,6 +54,4 @@ $slider_options = [
42
 
43
  <?php endforeach; ?>
44
 
45
- </ul><!-- .lae-slides -->
46
-
47
  </div><!-- .lae-testimonials-slider -->
16
 
17
  $settings = apply_filters('lae_testimonials_slider_' . $settings['slider_id'] . '_settings', $settings);
18
 
19
+ $carousel_settings = [
20
+ 'fade' => ('fade' === $settings['slide_animation']),
21
+ 'autoplay' => ('yes' === $settings['autoplay']),
22
+ 'autoplay_speed' => absint($settings['slideshow_speed']),
23
  'animation_speed' => absint($settings['animation_speed']),
24
+ 'dots' => ('yes' === $settings['control_nav']),
25
+ 'arrows' => ('yes' === $settings['direction_nav']),
26
  'pause_on_hover' => ('yes' === $settings['pause_on_hover']),
27
+ 'pause_on_focus' => ('yes' === $settings['pause_on_action']),
28
+ 'adaptive_height' => ('yes' === $settings['smooth_height'])
29
  ];
30
 
31
+ $responsive_settings = [
32
+ 'display_columns' => 1,
33
+ 'scroll_columns' => 1,
34
+ 'tablet_width' => 800,
35
+ 'tablet_display_columns' => 1,
36
+ 'tablet_scroll_columns' => 1,
37
+ 'mobile_width' => 480,
38
+ 'mobile_display_columns' => 1,
39
+ 'mobile_scroll_columns' => 1,
40
+ ];
41
+
42
+ $carousel_settings = array_merge($carousel_settings, $responsive_settings);
43
+
44
  ?>
45
 
46
+ <div<?php echo $dir . $style; ?> class="lae-testimonials-slider lae-container"
47
+ data-settings='<?php echo wp_json_encode($carousel_settings); ?>'>
 
48
 
49
  <?php foreach ($settings['testimonials'] as $testimonial) : ?>
50
 
54
 
55
  <?php endforeach; ?>
56
 
 
 
57
  </div><!-- .lae-testimonials-slider -->