Premium Addons for Elementor - Version 3.6.6

Version Description

  • Fixed: `Notice: Undefined variable: col_number in /premium-blog.php on line 1752'
  • Fixed: Fatal error when WPML Multilingual inactive and WPML Strings Translation active.
  • Fixed: Margin Top/Bottom issue with multiple Carousel widgets on the same page.
Download this release

Release Info

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

Code changes from version 3.6.5 to 3.6.6

admin/includes/version-control.php CHANGED
@@ -91,7 +91,7 @@ class Version_Control {
91
<tr class="pa-roll-row">
92
<th><?php echo __('Rollback Version', 'premium-addons-for-elementor'); ?></th>
93
<td>
94
- <div><?php echo sprintf( '<a target="_blank" href="%1$s" class="button pa-btn pa-rollback-button elementor-button-spinner">%2$s</a>', wp_nonce_url( admin_url( 'admin-post.php?action=premium_addons_rollback' ), 'premium_addons_rollback' ), __('Reinstall Version 3.6.4', 'premium-addons-for-elementor') ); ?></div>
95
<p class="pa-roll-desc">
96
<span><?php echo __('Warning: Please backup your database before making the rollback.', 'premium-addons-for-elementor'); ?></span>
97
</p>
91
<tr class="pa-roll-row">
92
<th><?php echo __('Rollback Version', 'premium-addons-for-elementor'); ?></th>
93
<td>
94
+ <div><?php echo sprintf( '<a target="_blank" href="%1$s" class="button pa-btn pa-rollback-button elementor-button-spinner">%2$s</a>', wp_nonce_url( admin_url( 'admin-post.php?action=premium_addons_rollback' ), 'premium_addons_rollback' ), __('Reinstall Version 3.6.5', 'premium-addons-for-elementor') ); ?></div>
95
<p class="pa-roll-desc">
96
<span><?php echo __('Warning: Please backup your database before making the rollback.', 'premium-addons-for-elementor'); ?></span>
97
</p>
assets/frontend/js/premium-addons.js CHANGED
@@ -380,246 +380,215 @@
380
381
/****** Premium Carousel Handler ******/
382
var PremiumCarouselHandler = function ($scope, $) {
383
- var isEdit = elementorFrontend.isEditMode();
384
385
- var carouselElement = $scope
386
- .find(".premium-carousel-wrapper")
387
- .each(function () {
388
- var $carouselElement = $(this);
389
- var carouselSettings = $(this).data("settings");
390
391
- function slideToShow(slick) {
392
- slidesToShow = slick.options.slidesToShow;
393
394
- windowWidth = jQuery(window).width();
395
396
- if (windowWidth > carouselSettings["tabletBreak"]) {
397
- slidesToShow = carouselSettings["slidesDesk"];
398
- }
399
400
- if (windowWidth <= carouselSettings["tabletBreak"]) {
401
- slidesToShow = carouselSettings["slidesTab"];
402
- }
403
404
- if (windowWidth <= carouselSettings["mobileBreak"]) {
405
- slidesToShow = carouselSettings["slidesMob"];
406
- }
407
408
- return slidesToShow;
409
- }
410
411
- if (isEdit) {
412
- $(this)
413
- .find(".item-wrapper")
414
- .each(function (index, slide) {
415
- var templateID = $(slide).data("template");
416
-
417
- if (undefined !== templateID) {
418
- $.ajax({
419
- type: "GET",
420
- url: PremiumProSettings.ajaxurl,
421
- dataType: "html",
422
- data: {
423
- action:
424
- "get_elementor_template_content",
425
- templateID: templateID
426
- }
427
- }).success(function (response) {
428
- var data = JSON.parse(response).data;
429
-
430
- if (undefined !== data.template_content) {
431
- $(slide).html(data.template_content);
432
-
433
- $carouselElement
434
- .find(".premium-carousel-inner")
435
- .slick("refresh");
436
- }
437
- });
438
}
439
});
440
441
- // $( this ).find( ".premium-carousel-inner" ).slick( 'refresh' );
442
- }
443
444
- $(this).on("init", function (event) {
445
- event.preventDefault();
446
447
- $(this)
448
- .find("item-wrapper.slick-active")
449
- .each(function () {
450
- $this = $(this);
451
- $this.addClass($this.data("animation"));
452
- });
453
-
454
- $(".slick-track").addClass("translate");
455
});
456
457
- $(this)
458
- .find(".premium-carousel-inner")
459
- .slick({
460
- vertical: carouselSettings["vertical"],
461
- slidesToScroll: carouselSettings["slidesToScroll"],
462
- slidesToShow: carouselSettings["slidesToShow"],
463
- responsive: [
464
- {
465
- breakpoint: carouselSettings["tabletBreak"],
466
- settings: {
467
- slidesToShow: carouselSettings["slidesTab"],
468
- slidesToScroll:
469
- carouselSettings["slidesTab"]
470
- }
471
- },
472
- {
473
- breakpoint: carouselSettings["mobileBreak"],
474
- settings: {
475
- slidesToShow: carouselSettings["slidesMob"],
476
- slidesToScroll:
477
- carouselSettings["slidesMob"]
478
- }
479
- }
480
- ],
481
- fade: carouselSettings["fade"],
482
- infinite: carouselSettings["infinite"],
483
- speed: carouselSettings["speed"],
484
- autoplay: carouselSettings["autoplay"],
485
- autoplaySpeed: carouselSettings["autoplaySpeed"],
486
- draggable: carouselSettings["draggable"],
487
- touchMove: carouselSettings["touchMove"],
488
- rtl: carouselSettings["rtl"],
489
- useTransform: true,
490
- adaptiveHeight: carouselSettings["adaptiveHeight"],
491
- pauseOnHover: carouselSettings["pauseOnHover"],
492
- centerMode: carouselSettings["centerMode"],
493
- centerPadding: carouselSettings["centerPadding"],
494
- arrows: carouselSettings["arrows"],
495
- nextArrow: carouselSettings["nextArrow"],
496
- prevArrow: carouselSettings["prevArrow"],
497
- dots: carouselSettings["dots"],
498
- customPaging: function (slider, i) {
499
- return (
500
- '<i class="' +
501
- carouselSettings["customPaging"] +
502
- '"></i>'
503
- );
504
- }
505
- });
506
507
- $(this).on("afterChange", function (
508
- event,
509
- slick,
510
- currentSlide,
511
- nextSlide
512
- ) {
513
- slidesScrolled = slick.options.slidesToScroll;
514
- slidesToShow = slideToShow(slick);
515
- centerMode = slick.options.centerMode;
516
- $currentParent = slick.$slider[0].parentElement.id;
517
- slideToAnimate = currentSlide + slidesToShow - 1;
518
- if (slidesScrolled == 1) {
519
- if (centerMode == true) {
520
- animate = slideToAnimate - 2;
521
- $inViewPort = $(this).find(
522
- "[data-slick-index='" + animate + "']"
523
- );
524
- //$inViewPort.addClass($inViewPort.data("animation"));
525
- } else {
526
- $inViewPort = $(this).find(
527
- "[data-slick-index='" + slideToAnimate + "']"
528
- );
529
- if ("null" != carouselSettings["animation"]) {
530
- $inViewPort
531
- .find(
532
- "p, h1, h2, h3, h4, h5, h6, span, a, img, i, button"
533
- )
534
- .addClass(carouselSettings["animation"])
535
- .removeClass(
536
- "premium-carousel-content-hidden"
537
- );
538
- }
539
}
540
- } else {
541
- for (
542
- var i = slidesScrolled + currentSlide;
543
- i >= 0;
544
- i--
545
- ) {
546
- $inViewPort = $(this).find(
547
- "[data-slick-index='" + i + "']"
548
- );
549
- if ("null" != carouselSettings["animation"]) {
550
- $inViewPort
551
- .find(
552
- "p, h1, h2, h3, h4, h5, h6, span, a, img, i, button"
553
- )
554
- .addClass(carouselSettings["animation"])
555
- .removeClass(
556
- "premium-carousel-content-hidden"
557
- );
558
- }
559
}
560
}
561
- });
562
-
563
- $(this).on("beforeChange", function (
564
- event,
565
- slick,
566
- currentSlide
567
- ) {
568
- $inViewPort = $(this).find(
569
- "[data-slick-index='" + currentSlide + "']"
570
);
571
- if ("null" != carouselSettings["animation"]) {
572
- $inViewPort
573
- .siblings()
574
- .find(
575
- "p, h1, h2, h3, h4, h5, h6, span, a, img, i, button"
576
- )
577
- .removeClass(carouselSettings["animation"])
578
- .addClass("premium-carousel-content-hidden");
579
- }
580
- });
581
- if (carouselSettings["vertical"]) {
582
- var maxHeight = -1;
583
- $(".slick-slide").each(function () {
584
- if ($(this).height() > maxHeight) {
585
- maxHeight = $(this).height();
586
- }
587
- });
588
- $(".slick-slide").each(function () {
589
- if ($(this).height() < maxHeight) {
590
- $(this).css(
591
- "margin",
592
- Math.ceil((maxHeight - $(this).height()) / 2) +
593
- "px 0"
594
- );
595
- }
596
- });
597
}
598
- var marginFix = {
599
- element: $("a.ver-carousel-arrow"),
600
- getWidth: function () {
601
- var width = this.element.outerWidth();
602
- return width / 2;
603
- },
604
- setWidth: function (type) {
605
- type = type || "vertical";
606
- if (type == "vertical") {
607
- this.element.css(
608
- "margin-left",
609
- "-" + this.getWidth() + "px"
610
- );
611
- } else {
612
- this.element.css(
613
- "margin-top",
614
- "-" + this.getWidth() + "px"
615
- );
616
}
617
}
618
- };
619
- marginFix.setWidth();
620
- marginFix.element = $("a.carousel-arrow");
621
- marginFix.setWidth("horizontal");
622
});
623
};
624
625
/****** Premium Banner Handler ******/
380
381
/****** Premium Carousel Handler ******/
382
var PremiumCarouselHandler = function ($scope, $) {
383
+
384
+ var carouselElement = $scope.find(".premium-carousel-wrapper"),
385
+ carouselSettings = $( carouselElement ).data("settings"),
386
+ isEdit = elementorFrontend.isEditMode();
387
388
+ function slideToShow( slick ) {
389
390
+ var slidesToShow = slick.options.slidesToShow,
391
+ windowWidth = $( window ).width();
392
393
+ if ( windowWidth > carouselSettings["tabletBreak"] ) {
394
+ slidesToShow = carouselSettings["slidesDesk"];
395
+ }
396
397
+ if ( windowWidth <= carouselSettings["tabletBreak"] ) {
398
+ slidesToShow = carouselSettings["slidesTab"];
399
+ }
400
401
+ if ( windowWidth <= carouselSettings["mobileBreak"] ) {
402
+ slidesToShow = carouselSettings["slidesMob"];
403
+ }
404
405
+ return slidesToShow;
406
+ }
407
408
+ if ( isEdit ) {
409
+ carouselElement.find(".item-wrapper").each(function ( index, slide ) {
410
+
411
+ var templateID = $(slide).data("template");
412
+
413
+ if (undefined !== templateID) {
414
+ $.ajax({
415
+ type: "GET",
416
+ url: PremiumProSettings.ajaxurl,
417
+ dataType: "html",
418
+ data: {
419
+ action:
420
+ "get_elementor_template_content",
421
+ templateID: templateID
422
+ }
423
+ }).success(function (response) {
424
+ var data = JSON.parse(response).data;
425
426
+ if (undefined !== data.template_content) {
427
+ $(slide).html(data.template_content);
428
+
429
+ carouselElement.find(".premium-carousel-inner").slick("refresh");
430
}
431
});
432
+ }
433
+ });
434
435
+ }
436
437
+ carouselElement.on("init", function (event) {
438
+ event.preventDefault();
439
440
+ $(this).find("item-wrapper.slick-active").each(function () {
441
+ var $this = $( this );
442
+ $this.addClass($this.data("animation"));
443
});
444
445
+ $(".slick-track").addClass("translate");
446
+ });
447
448
+ carouselElement.find(".premium-carousel-inner").slick({
449
+ vertical: carouselSettings["vertical"],
450
+ slidesToScroll: carouselSettings["slidesToScroll"],
451
+ slidesToShow: carouselSettings["slidesToShow"],
452
+ responsive: [
453
+ {
454
+ breakpoint: carouselSettings["tabletBreak"],
455
+ settings: {
456
+ slidesToShow: carouselSettings["slidesTab"],
457
+ slidesToScroll: carouselSettings["slidesTab"]
458
}
459
+ },
460
+ {
461
+ breakpoint: carouselSettings["mobileBreak"],
462
+ settings: {
463
+ slidesToShow: carouselSettings["slidesMob"],
464
+ slidesToScroll: carouselSettings["slidesMob"]
465
}
466
}
467
+ ],
468
+ useTransform: true,
469
+ fade: carouselSettings["fade"],
470
+ infinite: carouselSettings["infinite"],
471
+ speed: carouselSettings["speed"],
472
+ autoplay: carouselSettings["autoplay"],
473
+ autoplaySpeed: carouselSettings["autoplaySpeed"],
474
+ draggable: carouselSettings["draggable"],
475
+ touchMove: carouselSettings["touchMove"],
476
+ rtl: carouselSettings["rtl"],
477
+ adaptiveHeight: carouselSettings["adaptiveHeight"],
478
+ pauseOnHover: carouselSettings["pauseOnHover"],
479
+ centerMode: carouselSettings["centerMode"],
480
+ centerPadding: carouselSettings["centerPadding"],
481
+ arrows: carouselSettings["arrows"],
482
+ nextArrow: carouselSettings["nextArrow"],
483
+ prevArrow: carouselSettings["prevArrow"],
484
+ dots: carouselSettings["dots"],
485
+ customPaging: function ( slider, i ) {
486
+ return (
487
+ '<i class="' +
488
+ carouselSettings["customPaging"] +
489
+ '"></i>'
490
);
491
}
492
+ });
493
+
494
+ carouselElement.on("afterChange", function ( event, slick, currentSlide ) {
495
+
496
+ var slidesScrolled = slick.options.slidesToScroll,
497
+ slidesToShow = slideToShow( slick ),
498
+ centerMode = slick.options.centerMode,
499
+ slideToAnimate = currentSlide + slidesToShow - 1;
500
+
501
+ if (slidesScrolled === 1) {
502
+ if ( ! centerMode === true ) {
503
+ var $inViewPort = $(this).find( "[data-slick-index='" + slideToAnimate + "']" );
504
+
505
+ if ( "null" != carouselSettings["animation"] ) {
506
+ $inViewPort.find( "p, h1, h2, h3, h4, h5, h6, span, a, img, i, button").addClass(carouselSettings["animation"]).removeClass("premium-carousel-content-hidden");
507
+ }
508
+ }
509
+ } else {
510
+ for (
511
+ var i = slidesScrolled + currentSlide;
512
+ i >= 0;
513
+ i--
514
+ ) {
515
+ $inViewPort = $(this).find(
516
+ "[data-slick-index='" + i + "']"
517
+ );
518
+ if ( "null" != carouselSettings["animation"] ) {
519
+ $inViewPort
520
+ .find(
521
+ "p, h1, h2, h3, h4, h5, h6, span, a, img, i, button"
522
+ )
523
+ .addClass(carouselSettings["animation"])
524
+ .removeClass(
525
+ "premium-carousel-content-hidden"
526
+ );
527
}
528
}
529
+ }
530
});
531
+
532
+ carouselElement.on("beforeChange", function ( event, slick, currentSlide ) {
533
+ var $inViewPort = $(this).find( "[data-slick-index='" + currentSlide + "']" );
534
+
535
+ if ("null" != carouselSettings["animation"]) {
536
+ $inViewPort
537
+ .siblings()
538
+ .find(
539
+ "p, h1, h2, h3, h4, h5, h6, span, a, img, i, button"
540
+ )
541
+ .removeClass(carouselSettings["animation"])
542
+ .addClass("premium-carousel-content-hidden");
543
+ }
544
+ });
545
+
546
+ if ( carouselSettings["vertical"] ) {
547
+
548
+ var maxHeight = -1;
549
+
550
+ carouselElement.find(".slick-slide").each(function () {
551
+
552
+ if ( $( this ).height() > maxHeight ) {
553
+
554
+ maxHeight = $( this ).height();
555
+
556
+ }
557
+ });
558
+
559
+ carouselElement.find(".slick-slide").each(function () {
560
+ if ( $( this ).height() < maxHeight ) {
561
+ $(this).css( "margin", Math.ceil(( maxHeight - $( this ).height() ) / 2 ) + "px 0" );
562
+ }
563
+ });
564
+ }
565
+
566
+ var marginFix = {
567
+ element: $( "a.ver-carousel-arrow" ),
568
+ getWidth: function () {
569
+ var width = this.element.outerWidth();
570
+
571
+ return width / 2;
572
+ },
573
+ setWidth: function ( type ) {
574
+
575
+ type = type || "vertical";
576
+
577
+ if ( type == "vertical" ) {
578
+
579
+ this.element.css( "margin-left", "-" + this.getWidth() + "px" );
580
+
581
+ } else {
582
+
583
+ this.element.css( "margin-top", "-" + this.getWidth() + "px" );
584
+
585
+ }
586
+ }
587
+ };
588
+
589
+ marginFix.setWidth();
590
+ marginFix.element = $( "a.carousel-arrow" );
591
+ marginFix.setWidth( "horizontal" );
592
};
593
594
/****** Premium Banner Handler ******/
assets/frontend/js/premium-vscroll.js CHANGED
@@ -1,5 +1,3 @@
1
- // Works on mobile but needs enhancements
2
-
3
(function($) {
4
/****** Premium Vertical Scroll Handler ******/
5
var PremiumVerticalScrollHandler = function( $scope, $ ) {
@@ -7,8 +5,6 @@
7
instance = null,
8
vScrollSettings = vScrollElem.data("settings");
9
10
- // var touch = vScrollSettings.touch;
11
-
12
instance = new premiumVerticalScroll(vScrollElem, vScrollSettings);
13
instance.init();
14
@@ -286,24 +282,6 @@
286
287
$( ".premium-vscroll-tooltip" ).hide();
288
289
- // if ( dotIndex === $itemsList.length - 1 && ! $vTarget ) {
290
- //
291
- // $( ".premium-vscroll-dots, .premium-vscroll-nav-menu" ).addClass( "premium-vscroll-dots-hide" );
292
- //
293
- // } else if ( dotIndex === 0 && ! $vTarget ) {
294
- //
295
- // if ( $instance.offset().top - $( document ).scrollTop() > 200 ) {
296
- //
297
- // $( ".premium-vscroll-dots, .premium-vscroll-nav-menu" ).addClass( "premium-vscroll-dots-hide" );
298
- //
299
- // }
300
- //
301
- // } else {
302
- //
303
- // $( ".premium-vscroll-dots, .premium-vscroll-nav-menu" ).removeClass( "premium-vscroll-dots-hide" );
304
- //
305
- // }
306
-
307
if ( beforeCheck() ) {
308
309
sectionId = self.getFirstSection( sections );
@@ -325,127 +303,64 @@
325
direction = 'up';
326
327
}
328
-
329
- // if ( Math.abs( touchStartY - touchEndY ) > ( window.innerHeight / 100 * 100 ) ) {
330
-
331
- // if ( sectionId && sections.hasOwnProperty( sectionId ) ) {
332
- //
333
- // prevSectionId = self.checkPrevSection( sections, sectionId );
334
- // nextSectionId = self.checkNextSection( sections, sectionId );
335
- //
336
- // if ( "up" === direction ) {
337
- //
338
- // if ( ! nextSectionId && sections[ sectionId ].offset < windowScrollTop ) {
339
- // newSectionId = sectionId;
340
- // } else {
341
- // newSectionId = prevSectionId;
342
- // }
343
- // }
344
- //
345
- // if ( "down" === direction ) {
346
- //
347
- // if ( ! prevSectionId && sections[ sectionId ].offset > windowScrollTop + 5 ) {
348
- // newSectionId = sectionId;
349
- // } else {
350
- // newSectionId = nextSectionId;
351
- // }
352
- // }
353
- //
354
- // if ( newSectionId ) {
355
- //
356
- // inScope = true;
357
- //
358
- // $( ".premium-vscroll-dots, .premium-vscroll-nav-menu" ).removeClass( "premium-vscroll-dots-hide" );
359
- //
360
- // self.scrolling( newSectionId );
361
- //
362
- // } else {
363
- // inScope = false;
364
- //
365
- // var $lastselector = checkTemps ? $instance : $( "#" + sectionId );
366
- //
367
- // if ( "down" === direction ) {
368
- //
369
- // if ( $lastselector.offset().top + $lastselector.innerHeight() - $( document ).scrollTop() > 600 ) {
370
- //
371
- // $( ".premium-vscroll-dots, .premium-vscroll-nav-menu" ).addClass( "premium-vscroll-dots-hide" );
372
- //
373
- // }
374
- //
375
- // } else if ( "up" === direction ) {
376
- //
377
- // if ( $lastselector.offset().top - $( document ).scrollTop() > 200 ) {
378
- //
379
- // $(".premium-vscroll-dots, .premium-vscroll-nav-menu").addClass( "premium-vscroll-dots-hide" );
380
- //
381
- // }
382
- //
383
- // }
384
- // }
385
- //
386
- // }
387
-
388
- // } else {
389
390
- if ( sectionId && sections.hasOwnProperty( sectionId ) ) {
391
-
392
- prevSectionId = self.checkPrevSection( sections, sectionId );
393
- nextSectionId = self.checkNextSection( sections, sectionId );
394
-
395
- if ( "up" === direction ) {
396
397
- if ( ! nextSectionId && sections[ sectionId ].offset < windowScrollTop ) {
398
- newSectionId = sectionId;
399
- } else {
400
- newSectionId = prevSectionId;
401
- }
402
- }
403
404
- if ( "down" === direction ) {
405
406
- if ( ! prevSectionId && sections[ sectionId ].offset > windowScrollTop + 5 || ! self.atBottom( sectionId ) ) {
407
- newSectionId = sectionId;
408
- } else {
409
- newSectionId = nextSectionId;
410
- sectionChanged = 1;
411
- }
412
}
413
-
414
- if ( newSectionId ) {
415
-
416
- inScope = true;
417
-
418
- $( ".premium-vscroll-dots, .premium-vscroll-nav-menu" ).removeClass( "premium-vscroll-dots-hide" );
419
-
420
- self.scrolling( newSectionId );
421
-
422
} else {
423
- inScope = false;
424
-
425
- var $lastselector = checkTemps ? $instance : $( "#" + sectionId );
426
427
- if ( "down" === direction ) {
428
429
- if ( $lastselector.offset().top + $lastselector.innerHeight() - $( document ).scrollTop() > 600 ) {
430
431
- $( ".premium-vscroll-dots, .premium-vscroll-nav-menu" ).addClass( "premium-vscroll-dots-hide" );
432
433
- }
434
435
- } else if ( "up" === direction ) {
436
437
- if ( $lastselector.offset().top - $( document ).scrollTop() > 200 ) {
438
439
- $(".premium-vscroll-dots, .premium-vscroll-nav-menu").addClass( "premium-vscroll-dots-hide" );
440
441
- }
442
443
- }
444
- }
445
446
}
447
-
448
- // }
449
450
};
451
1
(function($) {
2
/****** Premium Vertical Scroll Handler ******/
3
var PremiumVerticalScrollHandler = function( $scope, $ ) {
5
instance = null,
6
vScrollSettings = vScrollElem.data("settings");
7
8
instance = new premiumVerticalScroll(vScrollElem, vScrollSettings);
9
instance.init();
10
282
283
$( ".premium-vscroll-tooltip" ).hide();
284
285
if ( beforeCheck() ) {
286
287
sectionId = self.getFirstSection( sections );
303
direction = 'up';
304
305
}
306
307
+ if ( sectionId && sections.hasOwnProperty( sectionId ) ) {
308
309
+ prevSectionId = self.checkPrevSection( sections, sectionId );
310
+ nextSectionId = self.checkNextSection( sections, sectionId );
311
312
+ if ( "up" === direction ) {
313
314
+ if ( ! nextSectionId && sections[ sectionId ].offset < windowScrollTop ) {
315
+ newSectionId = sectionId;
316
+ } else {
317
+ newSectionId = prevSectionId;
318
}
319
+ }
320
+
321
+ if ( "down" === direction ) {
322
+
323
+ if ( ! prevSectionId && sections[ sectionId ].offset > windowScrollTop + 5 || ! self.atBottom( sectionId ) ) {
324
+ newSectionId = sectionId;
325
} else {
326
+ newSectionId = nextSectionId;
327
+ sectionChanged = 1;
328
+ }
329
+ }
330
+
331
+ if ( newSectionId ) {
332
333
+ inScope = true;
334
335
+ $( ".premium-vscroll-dots, .premium-vscroll-nav-menu" ).removeClass( "premium-vscroll-dots-hide" );
336
337
+ self.scrolling( newSectionId );
338
339
+ } else {
340
+ inScope = false;
341
342
+ var $lastselector = checkTemps ? $instance : $( "#" + sectionId );
343
344
+ if ( "down" === direction ) {
345
346
+ if ( $lastselector.offset().top + $lastselector.innerHeight() - $( document ).scrollTop() > 600 ) {
347
348
+ $( ".premium-vscroll-dots, .premium-vscroll-nav-menu" ).addClass( "premium-vscroll-dots-hide" );
349
350
+ }
351
352
+ } else if ( "up" === direction ) {
353
+
354
+ if ( $lastselector.offset().top - $( document ).scrollTop() > 200 ) {
355
+
356
+ $(".premium-vscroll-dots, .premium-vscroll-nav-menu").addClass( "premium-vscroll-dots-hide" );
357
+
358
+ }
359
+
360
+ }
361
}
362
+
363
+ }
364
365
};
366
includes/compatibility/class-premium-addons-wpml.php CHANGED
@@ -38,7 +38,7 @@ if ( ! class_exists ('Premium_Addons_Wpml') ) {
38
/*
39
* Is WPML Active
40
*
41
- * Check if WPML String Translation active
42
*
43
* @since 3.1.9
44
* @access private
@@ -48,8 +48,12 @@ if ( ! class_exists ('Premium_Addons_Wpml') ) {
48
public static function is_wpml_active() {
49
50
include_once( ABSPATH . 'wp-admin/includes/plugin.php' );
51
-
52
- return is_plugin_active( 'wpml-string-translation/plugin.php' );
53
54
}
55
38
/*
39
* Is WPML Active
40
*
41
+ * Check if WPML Multilingual CMS and WPML String Translation active
42
*
43
* @since 3.1.9
44
* @access private
48
public static function is_wpml_active() {
49
50
include_once( ABSPATH . 'wp-admin/includes/plugin.php' );
51
+
52
+ $wpml_active = is_plugin_active( 'sitepress-multilingual-cms/sitepress.php' );
53
+
54
+ $string_translation_active = is_plugin_active( 'wpml-string-translation/plugin.php' );
55
+
56
+ return $wpml_active && $string_translation_active;
57
58
}
59
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.6.5
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.6.5');
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.6.4');
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.6.6
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.6.6');
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.6.5');
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.2.2
7
Requires PHP: 5.4
8
- Stable Tag: 3.6.5
9
License: GPL v3.0
10
License URI: https://opensource.org/licenses/GPL-3.0
11
@@ -174,6 +174,12 @@ Premium Addons for Elementor is 100% Ads Free, Ads can only be detected from You
174
175
== Changelog ==
176
177
= 3.6.5 =
178
179
- Tweak: Added `Autoplay` option for self hosted videos in Video Box widget.
5
Requires at Least: 4.5
6
Tested Up To: 5.2.2
7
Requires PHP: 5.4
8
+ Stable Tag: 3.6.6
9
License: GPL v3.0
10
License URI: https://opensource.org/licenses/GPL-3.0
11
174
175
== Changelog ==
176
177
+ = 3.6.6 =
178
+
179
+ - Fixed: `Notice: Undefined variable: col_number in /premium-blog.php on line 1752'
180
+ - Fixed: Fatal error when WPML Multilingual inactive and WPML Strings Translation active.
181
+ - Fixed: Margin Top/Bottom issue with multiple Carousel widgets on the same page.
182
+
183
= 3.6.5 =
184
185
- Tweak: Added `Autoplay` option for self hosted videos in Video Box widget.
widgets/premium-blog.php CHANGED
@@ -1728,6 +1728,9 @@ class Premium_Blog extends Widget_Base {
1728
$posts = premium_blog_get_post_data( $post_args, $paged , $new_offset );
1729
1730
switch( $settings['premium_blog_columns_number'] ) {
1731
case '50%' :
1732
$col_number = 'col-2';
1733
break;
1728
$posts = premium_blog_get_post_data( $post_args, $paged , $new_offset );
1729
1730
switch( $settings['premium_blog_columns_number'] ) {
1731
+ case '100%' :
1732
+ $col_number = 'col-1';
1733
+ break;
1734
case '50%' :
1735
$col_number = 'col-2';
1736
break;
widgets/premium-grid.php CHANGED
@@ -88,11 +88,10 @@ class Premium_Grid extends Widget_Base {
88
);
89
90
$this->add_responsive_control('pemium_gallery_even_img_height',
91
- [
92
- 'label' => __( 'Maximum Height', 'premium-addons-for-elementor' ),
93
'label_block' => true,
94
'size_units' => ['px', 'em', 'vh'],
95
- 'description' => __('You may need to click `Apply` button after settings this option', 'premium-addons-for-elementor'),
96
'type' => Controls_Manager::SLIDER,
97
'range' => [
98
'px' => [
@@ -109,7 +108,7 @@ class Premium_Grid extends Widget_Base {
109
'premium_gallery_img_size_select' => 'fitRows'
110
],
111
'selectors' => [
112
- '{{WRAPPER}} .premium-gallery-item .pa-gallery-image' => 'max-height: {{SIZE}}{{UNIT}}'
113
]
114
]
115
);
88
);
89
90
$this->add_responsive_control('pemium_gallery_even_img_height',
91
+ [
92
+ 'label' => __( 'Minimum Height', 'premium-addons-for-elementor' ),
93
'label_block' => true,
94
'size_units' => ['px', 'em', 'vh'],
95
'type' => Controls_Manager::SLIDER,
96
'range' => [
97
'px' => [
108
'premium_gallery_img_size_select' => 'fitRows'
109
],
110
'selectors' => [
111
+ '{{WRAPPER}} .premium-gallery-item .pa-gallery-image' => 'min-height: {{SIZE}}{{UNIT}}'
112
]
113
]
114
);
widgets/premium-person.php CHANGED
@@ -666,7 +666,7 @@ class Premium_Person extends Widget_Base {
666
667
<div {{{ view.getRenderAttributeString('container') }}} >
668
<div class="premium-person-image-container">
669
- <img src="{{ settings.premium_person_image.url}}" alt="{{ settings.premium_person_name }}">
670
</div>
671
<div class="premium-person-info">
672
<div class="premium-person-info-container">
666
667
<div {{{ view.getRenderAttributeString('container') }}} >
668
<div class="premium-person-image-container">
669
+ <img src="{{ settings.premium_person_image.url }}" alt="{{ settings.premium_person_name }}">
670
</div>
671
<div class="premium-person-info">
672
<div class="premium-person-info-container">