LoftLoader - Version 2.2.0

Version Description

Download this release

Release Info

Developer loftocean
Plugin Icon 128x128 LoftLoader
Version 2.2.0
Comparing to
See all releases

Code changes from version 2.1.12 to 2.2.0

assets/css/loftloader-settings.css CHANGED
@@ -6,7 +6,7 @@
6
  * Author: Kaylolo Yinxi Chen @Loft.Ocean
7
  * Author URI: http://www.loftocean.com
8
  * Description: LoftLoader (Lite Version) is a plugin for adding beautiful and smooth preload animation to your WordPress website. With setting options, you can choose from preset animations, add custom logo image, choose colours to match your branding, and amuse and impress your visitors while loading site content.
9
- * Version: 2.1.12
10
  */
11
  @import url(https://fonts.googleapis.com/css?family=Lato:400,600);
12
  #customize-theme-controls.loftloader-controls-wrapper {
@@ -426,4 +426,4 @@
426
 
427
  .customize-partial-edit-shortcut,
428
  .widget .customize-partial-edit-shortcut {
429
- display: none !important; }
6
  * Author: Kaylolo Yinxi Chen @Loft.Ocean
7
  * Author URI: http://www.loftocean.com
8
  * Description: LoftLoader (Lite Version) is a plugin for adding beautiful and smooth preload animation to your WordPress website. With setting options, you can choose from preset animations, add custom logo image, choose colours to match your branding, and amuse and impress your visitors while loading site content.
9
+ * Version: 2.2.0
10
  */
11
  @import url(https://fonts.googleapis.com/css?family=Lato:400,600);
12
  #customize-theme-controls.loftloader-controls-wrapper {
426
 
427
  .customize-partial-edit-shortcut,
428
  .widget .customize-partial-edit-shortcut {
429
+ display: none !important; }
assets/css/loftloader.css CHANGED
@@ -6,7 +6,7 @@
6
  * Author: Kaylolo Yinxi Chen @Loft.Ocean
7
  * Author URI: http://www.loftocean.com
8
  * Description: LoftLoader (Lite Version) is a plugin for adding beautiful and smooth preload animation to your WordPress website. With setting options, you can choose from preset animations, add custom logo image, choose colours to match your branding, and amuse and impress your visitors while loading site content.
9
- * Version: 2.1.12
10
  */
11
  @-webkit-keyframes spinReturn {
12
  0% {
@@ -643,4 +643,4 @@ body {
643
  word-wrap: normal !important; }
644
  .loader-close-button .close-des {
645
  padding: 0 5px;
646
- font-size: 12px; }
6
  * Author: Kaylolo Yinxi Chen @Loft.Ocean
7
  * Author URI: http://www.loftocean.com
8
  * Description: LoftLoader (Lite Version) is a plugin for adding beautiful and smooth preload animation to your WordPress website. With setting options, you can choose from preset animations, add custom logo image, choose colours to match your branding, and amuse and impress your visitors while loading site content.
9
+ * Version: 2.2.0
10
  */
11
  @-webkit-keyframes spinReturn {
12
  0% {
643
  word-wrap: normal !important; }
644
  .loader-close-button .close-des {
645
  padding: 0 5px;
646
+ font-size: 12px; }
assets/js/customize.js CHANGED
@@ -5,12 +5,12 @@
5
 
6
  (function(api, $){
7
  $('head').append($('<style>', {'id': 'loftloader-hide-site-title', 'text': '.site-title { opacity: 0; }'}));
8
- // Main Switch section
9
  api.LoftLoaderSwitchSection = api.Section.extend({
10
  initialize: function () {
11
  return api.Section.prototype.initialize.apply( this, arguments );
12
  },
13
- ready: function(){
14
  var checked = this.container.find('input[name=loftloader-main-switch]').attr('checked') ? true : false;
15
  checked ? '' : $('#customize-theme-controls').addClass('loftloader-settings-disabled');
16
  $('#customize-theme-controls').addClass('loftloader-controls-wrapper');
@@ -65,7 +65,7 @@
65
 
66
  $container.children('.placeholder').css('display', 'none').after($image).remove();
67
  }
68
- }
69
 
70
  $('body')
71
  .on('change', 'input[type=number]', function(e){
@@ -153,6 +153,7 @@
153
  },
154
  'loftloader_show_close_timer': {},
155
  'loftloader_show_close_tip': {},
 
156
  'loftloader_inline_js': {}
157
  };
158
  var loftloader = type_value = loop = '';
@@ -168,6 +169,11 @@
168
  case 'loftloader_bg_animation':
169
  loop = [];
170
  break;
 
 
 
 
 
171
  default:
172
  loop = dependency[id][type_value] ? dependency[id][type_value] : [];
173
  }
5
 
6
  (function(api, $){
7
  $('head').append($('<style>', {'id': 'loftloader-hide-site-title', 'text': '.site-title { opacity: 0; }'}));
8
+ // Main Switch section
9
  api.LoftLoaderSwitchSection = api.Section.extend({
10
  initialize: function () {
11
  return api.Section.prototype.initialize.apply( this, arguments );
12
  },
13
+ ready: function(){
14
  var checked = this.container.find('input[name=loftloader-main-switch]').attr('checked') ? true : false;
15
  checked ? '' : $('#customize-theme-controls').addClass('loftloader-settings-disabled');
16
  $('#customize-theme-controls').addClass('loftloader-controls-wrapper');
65
 
66
  $container.children('.placeholder').css('display', 'none').after($image).remove();
67
  }
68
+ }
69
 
70
  $('body')
71
  .on('change', 'input[type=number]', function(e){
153
  },
154
  'loftloader_show_close_timer': {},
155
  'loftloader_show_close_tip': {},
156
+ 'loftloader_max_load_time': {},
157
  'loftloader_inline_js': {}
158
  };
159
  var loftloader = type_value = loop = '';
169
  case 'loftloader_bg_animation':
170
  loop = [];
171
  break;
172
+ case 'loftloader_max_load_time':
173
+ if ( ! type_value ) {
174
+ type_value = 0;
175
+ }
176
+ break;
177
  default:
178
  loop = dependency[id][type_value] ? dependency[id][type_value] : [];
179
  }
assets/js/customize.min.js CHANGED
@@ -1 +1 @@
1
- !function(n,r){function l(e){var t,o=n.get(),a=!!o[e]&&o[e];return"string"==typeof a&&(a=a.trim()),!0===(t=a)?"on":t}r("head").append(r("<style>",{id:"loftloader-hide-site-title",text:".site-title { opacity: 0; }"})),n.LoftLoaderSwitchSection=n.Section.extend({initialize:function(){return n.Section.prototype.initialize.apply(this,arguments)},ready:function(){!!!this.container.find("input[name=loftloader-main-switch]").attr("checked")&&r("#customize-theme-controls").addClass("loftloader-settings-disabled"),r("#customize-theme-controls").addClass("loftloader-controls-wrapper")},attachEvents:function(){var l=this.container;l.on("change","input[name=loftloader-main-switch]",function(e){var t=!!r(this).attr("checked"),o=l.find("#customize-control-loftloader_main_switch input[type=checkbox]"),a=r("#customize-theme-controls");t?o.attr("checked","checked"):o.removeAttr("checked"),o.trigger("change"),t?a.removeClass("loftloader-settings-disabled"):a.addClass("loftloader-settings-disabled")})}}),r.extend(n.sectionConstructor,{loftloader_switch:n.LoftLoaderSwitchSection}),n.controlConstructor.slider=n.Control.extend({ready:function(){var e=this.container.find(".loader-ui-slider"),o=this.container.find("input[data-customize-setting-link]");e.slider({range:"min",min:e.data("min"),max:e.data("max"),value:e.data("value"),step:e.data("step"),slide:function(e,t){o.val(t.value).trigger("change")}})}}),n.bind("ready",function(e){loftloader_lite_i18n&&r(".site-title").text(loftloader_lite_i18n.name),r("#loftloader-hide-site-title").remove();var t=n.get(),o=r("#customize-control-loftloader_custom_img");if(o.length&&!o.find(".attachment-thumb").length&&t&&t.loftloader_custom_img){var a=t.loftloader_custom_img;if(a){var l=o.find(".attachment-media-view").addClass("attachment-media-view-image"),i=r("<div>",{class:"thumbnail thumbnail-image"}).append(r("<img>",{class:"attachment-thumb",src:a}));l.children(".placeholder").css("display","none").after(i).remove()}}r("body").on("change","input[type=number]",function(e){var t=parseInt(r(this).val()),o=r(this).attr("min")?parseInt(r(this).attr("min")):1;t<o&&r(this).val(o).trigger("change")}).on("change","input.loftlader-checkbox",function(e){var t=!!r(this).attr("checked"),o=r(this).siblings("input");o.length&&(t?o.attr("checked","checked"):o.removeAttr("checked"),o.trigger("change"))}).on("click",".customize-more-toggle",function(e){e.preventDefault();var t=r(this),o=r(this).siblings(".customize-control-description");o.length&&(t.hasClass("expanded")?o.slideUp("slow"):o.slideDown("slow",function(){r(this).css("display","block")}),t.toggleClass("expanded"))}).on("click",".loftloader-any-page-generate",function(e){e.preventDefault();var t=n.loftloader_generate_parameters();r(this).siblings(".loftloader-any-page-shortcode").val("[loftloader "+t+"]").select()})}),n.loftloader_generate_parameters=function(){var e={loftloader_bg_color:{},loftloader_bg_opacity:{},loftloader_bg_animation:{},loftloader_loader_type:{sun:["loftloader_loader_color"],circles:["loftloader_loader_color"],wave:["loftloader_loader_color"],square:["loftloader_loader_color"],beating:["loftloader_loader_color"],frame:["loftloader_loader_color","loftloader_custom_img"],imgloading:["loftloader_custom_img","loftloader_img_width"]},loftloader_show_close_timer:{},loftloader_show_close_tip:{},loftloader_inline_js:{}},t=type_value=loop="";if("on"===l("loftloader_main_switch"))for(var o in t="loftloader_main_switch=on loftloader_show_range=sitewide",e){switch(type_value=l(o),o){case"loftloader_show_close_tip":type_value=type_value?'"'+btoa(unescape(encodeURIComponent(type_value)))+'"':'""';case"loftloader_bg_color":case"loftloader_bg_opacity":case"loftloader_bg_animation":loop=[];break;default:loop=e[o][type_value]?e[o][type_value]:[]}if(t+=" "+o+"="+type_value,loop)for(var a in loop)t+=" "+loop[a]+"="+l(loop[a])}else t="loftloader_main_switch=false";return t}}(wp.customize,jQuery);
1
+ !function(r,n){function l(e){var t,o=r.get(),a=!!o[e]&&o[e];return"string"==typeof a&&(a=a.trim()),!0===(t=a)?"on":t}n("head").append(n("<style>",{id:"loftloader-hide-site-title",text:".site-title { opacity: 0; }"})),r.LoftLoaderSwitchSection=r.Section.extend({initialize:function(){return r.Section.prototype.initialize.apply(this,arguments)},ready:function(){this.container.find("input[name=loftloader-main-switch]").attr("checked")||n("#customize-theme-controls").addClass("loftloader-settings-disabled"),n("#customize-theme-controls").addClass("loftloader-controls-wrapper")},attachEvents:function(){var l=this.container;l.on("change","input[name=loftloader-main-switch]",function(e){var t=!!n(this).attr("checked"),o=l.find("#customize-control-loftloader_main_switch input[type=checkbox]"),a=n("#customize-theme-controls");t?o.attr("checked","checked"):o.removeAttr("checked"),o.trigger("change"),t?a.removeClass("loftloader-settings-disabled"):a.addClass("loftloader-settings-disabled")})}}),n.extend(r.sectionConstructor,{loftloader_switch:r.LoftLoaderSwitchSection}),r.controlConstructor.slider=r.Control.extend({ready:function(){var e=this.container.find(".loader-ui-slider"),o=this.container.find("input[data-customize-setting-link]");e.slider({range:"min",min:e.data("min"),max:e.data("max"),value:e.data("value"),step:e.data("step"),slide:function(e,t){o.val(t.value).trigger("change")}})}}),r.bind("ready",function(e){loftloader_lite_i18n&&n(".site-title").text(loftloader_lite_i18n.name),n("#loftloader-hide-site-title").remove();var t=r.get(),o=n("#customize-control-loftloader_custom_img");if(o.length&&!o.find(".attachment-thumb").length&&t&&t.loftloader_custom_img){var a=t.loftloader_custom_img;if(a){var l=o.find(".attachment-media-view").addClass("attachment-media-view-image"),i=n("<div>",{class:"thumbnail thumbnail-image"}).append(n("<img>",{class:"attachment-thumb",src:a}));l.children(".placeholder").css("display","none").after(i).remove()}}n("body").on("change","input[type=number]",function(e){var t=parseInt(n(this).val()),o=n(this).attr("min")?parseInt(n(this).attr("min")):1;t<o&&n(this).val(o).trigger("change")}).on("change","input.loftlader-checkbox",function(e){var t=!!n(this).attr("checked"),o=n(this).siblings("input");o.length&&(t?o.attr("checked","checked"):o.removeAttr("checked"),o.trigger("change"))}).on("click",".customize-more-toggle",function(e){e.preventDefault();var t=n(this),o=n(this).siblings(".customize-control-description");o.length&&(t.hasClass("expanded")?o.slideUp("slow"):o.slideDown("slow",function(){n(this).css("display","block")}),t.toggleClass("expanded"))}).on("click",".loftloader-any-page-generate",function(e){e.preventDefault();var t=r.loftloader_generate_parameters();n(this).siblings(".loftloader-any-page-shortcode").val("[loftloader "+t+"]").select()})}),r.loftloader_generate_parameters=function(){var e={loftloader_bg_color:{},loftloader_bg_opacity:{},loftloader_bg_animation:{},loftloader_loader_type:{sun:["loftloader_loader_color"],circles:["loftloader_loader_color"],wave:["loftloader_loader_color"],square:["loftloader_loader_color"],beating:["loftloader_loader_color"],frame:["loftloader_loader_color","loftloader_custom_img"],imgloading:["loftloader_custom_img","loftloader_img_width"]},loftloader_show_close_timer:{},loftloader_show_close_tip:{},loftloader_max_load_time:{},loftloader_inline_js:{}},t=type_value=loop="";if("on"===l("loftloader_main_switch"))for(var o in t="loftloader_main_switch=on loftloader_show_range=sitewide",e){switch(type_value=l(o),o){case"loftloader_show_close_tip":type_value=type_value?'"'+btoa(unescape(encodeURIComponent(type_value)))+'"':'""';case"loftloader_bg_color":case"loftloader_bg_opacity":case"loftloader_bg_animation":loop=[];break;case"loftloader_max_load_time":type_value=type_value||0;break;default:loop=e[o][type_value]?e[o][type_value]:[]}if(t+=" "+o+"="+type_value,loop)for(var a in loop)t+=" "+loop[a]+"="+l(loop[a])}else t="loftloader_main_switch=false";return t}}(wp.customize,jQuery);
assets/js/loftloader.js CHANGED
@@ -3,24 +3,31 @@
3
  $('body').addClass( 'loaded' );
4
  }
5
  if ( $( '#loftloader-wrapper' ).length ) {
6
- $(window).load( function(){
7
- loftloader_finished();
8
  } );
9
 
10
  $( document ).ready( function() {
11
- var $loader_wrapper = $( '#loftloader-wrapper' ),
12
- show_close_time = '';
13
  if ( $loader_wrapper.data( 'show-close-time' ) ) {
14
- show_close_time = parseInt( $loader_wrapper.data( 'show-close-time' ) );
15
  if( show_close_time ) {
16
- setTimeout( function(){
17
- $loader_wrapper.find( '.loader-close-button' ).css('display', '' );
18
  }, show_close_time );
19
  $( '.loader-close-button' ).on( 'click', function() {
20
  loftloader_finished();
21
  } );
22
  }
23
  }
 
 
 
 
 
 
 
 
24
  } );
25
  }
26
- } )( jQuery );
3
  $('body').addClass( 'loaded' );
4
  }
5
  if ( $( '#loftloader-wrapper' ).length ) {
6
+ $( window ).load( function() {
7
+ loftloader_finished();
8
  } );
9
 
10
  $( document ).ready( function() {
11
+ var $loader_wrapper = $( '#loftloader-wrapper' ), show_close_time = '', max_load_time = false;
 
12
  if ( $loader_wrapper.data( 'show-close-time' ) ) {
13
+ show_close_time = parseInt( $loader_wrapper.data( 'show-close-time' ), 10 );
14
  if( show_close_time ) {
15
+ setTimeout( function(){
16
+ $loader_wrapper.find( '.loader-close-button' ).css('display', '' );
17
  }, show_close_time );
18
  $( '.loader-close-button' ).on( 'click', function() {
19
  loftloader_finished();
20
  } );
21
  }
22
  }
23
+ if ( $loader_wrapper.data( 'max-load-time' ) ) {
24
+ max_load_time = parseInt( $loader_wrapper.data( 'max-load-time' ), 10 );
25
+ if( max_load_time ) {
26
+ setTimeout( function() {
27
+ loftloader_finished();
28
+ }, max_load_time );
29
+ }
30
+ }
31
  } );
32
  }
33
+ } )( jQuery );
assets/js/loftloader.min.js CHANGED
@@ -1 +1 @@
1
- !function(o){function t(){o("body").addClass("loaded")}o("#loftloader-wrapper").length&&(o(window).load(function(){t()}),o(document).ready(function(){var e=o("#loftloader-wrapper"),n="";e.data("show-close-time")&&(n=parseInt(e.data("show-close-time")))&&(setTimeout(function(){e.find(".loader-close-button").css("display","")},n),o(".loader-close-button").on("click",function(){t()}))}))}(jQuery);
1
+ !function(e){function n(){e("body").addClass("loaded")}e("#loftloader-wrapper").length&&(e(window).load(function(){n()}),e(document).ready(function(){var o=e("#loftloader-wrapper"),t="",a=!1;o.data("show-close-time")&&(t=parseInt(o.data("show-close-time"),10))&&(setTimeout(function(){o.find(".loader-close-button").css("display","")},t),e(".loader-close-button").on("click",function(){n()})),o.data("max-load-time")&&(a=parseInt(o.data("max-load-time"),10))&&setTimeout(function(){n()},a)}))}(jQuery);
assets/scss/loftloader-settings.scss CHANGED
@@ -6,7 +6,7 @@
6
  * Author: Kaylolo Yinxi Chen @Loft.Ocean
7
  * Author URI: http://www.loftocean.com
8
  * Description: LoftLoader (Lite Version) is a plugin for adding beautiful and smooth preload animation to your WordPress website. With setting options, you can choose from preset animations, add custom logo image, choose colours to match your branding, and amuse and impress your visitors while loading site content.
9
- * Version: 2.1.12
10
  */
11
 
12
 
@@ -52,7 +52,7 @@ $description-color: #888;
52
  letter-spacing: 0.05em;
53
  font-weight: bold;
54
  color: $text-color;
55
-
56
  .rtl & {
57
  float: left;
58
  padding-right: 0;
@@ -70,7 +70,7 @@ $description-color: #888;
70
  font-weight: bold;
71
  color: $text-color;
72
  text-align: right;
73
-
74
  .rtl & {
75
  text-align: left;
76
  }
@@ -146,7 +146,7 @@ $description-color: #888;
146
  #customize-control-loftloader_show_close_tip input[type="text"] {
147
  width: 100%;
148
  text-align: left;
149
-
150
  .rtl & {
151
  text-align: right;
152
  }
@@ -166,7 +166,7 @@ $description-color: #888;
166
  border: 2px solid $primary-color;
167
  box-shadow: none;
168
  font-size: 0;
169
-
170
  .rtl & {
171
  float: left;
172
  }
@@ -224,7 +224,7 @@ $description-color: #888;
224
 
225
  & + div {
226
  float: right;
227
-
228
  .rtl & {
229
  float: left;
230
  }
@@ -312,7 +312,7 @@ $description-color: #888;
312
  float: right;
313
  margin-top: -2px;
314
  width: auto;
315
-
316
  .rtl & {
317
  margin-left: 15px;
318
  }
@@ -424,7 +424,7 @@ $description-color: #888;
424
  background: $primary-color;
425
  border-radius: 50%;
426
  border: none;
427
-
428
  .rtl & {
429
  float: left;
430
  }
@@ -469,7 +469,7 @@ $description-color: #888;
469
  margin: 0 -2px -2px 0;
470
  padding: 0;
471
  @include animations(8);
472
-
473
  .rtl & {
474
  float: right;
475
  }
@@ -522,7 +522,7 @@ $description-color: #888;
522
  border: 2px solid $primary-color;
523
  box-shadow: none;
524
  font-size: 0;
525
-
526
  .rtl & {
527
  float: left;
528
  }
@@ -577,14 +577,14 @@ $description-color: #888;
577
  font-weight: bold;
578
  letter-spacing: 0.05em;
579
  color: $text-color;
580
-
581
  .rtl & {
582
  float: left;
583
  }
584
 
585
  input[type="number"] {
586
  margin-right: 5px;
587
-
588
  .rtl & {
589
  margin-right: 0;
590
  margin-left: 5px;
6
  * Author: Kaylolo Yinxi Chen @Loft.Ocean
7
  * Author URI: http://www.loftocean.com
8
  * Description: LoftLoader (Lite Version) is a plugin for adding beautiful and smooth preload animation to your WordPress website. With setting options, you can choose from preset animations, add custom logo image, choose colours to match your branding, and amuse and impress your visitors while loading site content.
9
+ * Version: 2.2.0
10
  */
11
 
12
 
52
  letter-spacing: 0.05em;
53
  font-weight: bold;
54
  color: $text-color;
55
+
56
  .rtl & {
57
  float: left;
58
  padding-right: 0;
70
  font-weight: bold;
71
  color: $text-color;
72
  text-align: right;
73
+
74
  .rtl & {
75
  text-align: left;
76
  }
146
  #customize-control-loftloader_show_close_tip input[type="text"] {
147
  width: 100%;
148
  text-align: left;
149
+
150
  .rtl & {
151
  text-align: right;
152
  }
166
  border: 2px solid $primary-color;
167
  box-shadow: none;
168
  font-size: 0;
169
+
170
  .rtl & {
171
  float: left;
172
  }
224
 
225
  & + div {
226
  float: right;
227
+
228
  .rtl & {
229
  float: left;
230
  }
312
  float: right;
313
  margin-top: -2px;
314
  width: auto;
315
+
316
  .rtl & {
317
  margin-left: 15px;
318
  }
424
  background: $primary-color;
425
  border-radius: 50%;
426
  border: none;
427
+
428
  .rtl & {
429
  float: left;
430
  }
469
  margin: 0 -2px -2px 0;
470
  padding: 0;
471
  @include animations(8);
472
+
473
  .rtl & {
474
  float: right;
475
  }
522
  border: 2px solid $primary-color;
523
  box-shadow: none;
524
  font-size: 0;
525
+
526
  .rtl & {
527
  float: left;
528
  }
577
  font-weight: bold;
578
  letter-spacing: 0.05em;
579
  color: $text-color;
580
+
581
  .rtl & {
582
  float: left;
583
  }
584
 
585
  input[type="number"] {
586
  margin-right: 5px;
587
+
588
  .rtl & {
589
  margin-right: 0;
590
  margin-left: 5px;
assets/scss/loftloader.scss CHANGED
@@ -6,7 +6,7 @@
6
  * Author: Kaylolo Yinxi Chen @Loft.Ocean
7
  * Author URI: http://www.loftocean.com
8
  * Description: LoftLoader (Lite Version) is a plugin for adding beautiful and smooth preload animation to your WordPress website. With setting options, you can choose from preset animations, add custom logo image, choose colours to match your branding, and amuse and impress your visitors while loading site content.
9
- * Version: 2.1.12
10
  */
11
 
12
  $primary-color: #248acc;
6
  * Author: Kaylolo Yinxi Chen @Loft.Ocean
7
  * Author URI: http://www.loftocean.com
8
  * Description: LoftLoader (Lite Version) is a plugin for adding beautiful and smooth preload animation to your WordPress website. With setting options, you can choose from preset animations, add custom logo image, choose colours to match your branding, and amuse and impress your visitors while loading site content.
9
+ * Version: 2.2.0
10
  */
11
 
12
  $primary-color: #248acc;
inc/any-page/class-any-page-filter.php CHANGED
@@ -1,7 +1,7 @@
1
  <?php
2
  if ( ! class_exists('LoftLoader_Any_Page_Filter' ) ) {
3
  class LoftLoader_Any_Page_Filter{
4
- private $defaults = array();
5
  private $page_settings = array();
6
  private $page_enabled = false;
7
  private $is_customize = false;
@@ -13,13 +13,13 @@ if ( ! class_exists('LoftLoader_Any_Page_Filter' ) ) {
13
  /**
14
  * @description get the plugin settings
15
  */
16
- public function loader_settings(){
17
  global $wp_customize, $loftloader_default_settings;
18
- $this->is_customize = isset($wp_customize) ? true : false;
19
- if(((is_front_page() || is_home()) && (get_option('show_on_front', false) == 'page')) || is_page()){
20
- $page = get_queried_object();
21
- if(($atts = $this->get_loader_attributes($page->ID)) !== false){
22
- if( isset( $atts['loftloader_show_close_tip'] ) ) {
23
  $atts['loftloader_show_close_tip'] = base64_decode( $atts['loftloader_show_close_tip'] );
24
  }
25
  $this->page_settings = array_merge( $loftloader_default_settings, $atts );
@@ -52,5 +52,35 @@ if ( ! class_exists('LoftLoader_Any_Page_Filter' ) ) {
52
  public function get_loader_setting($setting_value, $setting_id){
53
  return ($this->page_enabled && !$this->is_customize && isset($this->page_settings[$setting_id])) ? $this->page_settings[$setting_id] : $setting_value;
54
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
55
  }
56
- }
1
  <?php
2
  if ( ! class_exists('LoftLoader_Any_Page_Filter' ) ) {
3
  class LoftLoader_Any_Page_Filter{
4
+ private $defaults = array();
5
  private $page_settings = array();
6
  private $page_enabled = false;
7
  private $is_customize = false;
13
  /**
14
  * @description get the plugin settings
15
  */
16
+ public function loader_settings() {
17
  global $wp_customize, $loftloader_default_settings;
18
+ $this->is_customize = isset( $wp_customize ) ? true : false;
19
+ if ( $this->is_any_page_extension_enabled() ) {
20
+ $page = $this->get_queried_object();
21
+ if ( ( $atts = $this->get_loader_attributes( $page->ID ) ) !== false ) {
22
+ if ( isset( $atts['loftloader_show_close_tip'] ) ) {
23
  $atts['loftloader_show_close_tip'] = base64_decode( $atts['loftloader_show_close_tip'] );
24
  }
25
  $this->page_settings = array_merge( $loftloader_default_settings, $atts );
52
  public function get_loader_setting($setting_value, $setting_id){
53
  return ($this->page_enabled && !$this->is_customize && isset($this->page_settings[$setting_id])) ? $this->page_settings[$setting_id] : $setting_value;
54
  }
55
+
56
+ /**
57
+ * Help function to test if any page extension enabled on current page
58
+ */
59
+ protected function is_any_page_extension_enabled() {
60
+ $is_fromt_home_page = ( is_front_page() || is_home() ) && ( get_option('show_on_front', false ) == 'page' );
61
+ $is_shop_page = $this->is_woocommerce_shop();
62
+ return $is_fromt_home_page || $is_shop_page || is_page();
63
+ }
64
+ /**
65
+ * Get queried page object
66
+ */
67
+ protected function get_queried_object() {
68
+ if ( $this->is_woocommerce_shop() ) {
69
+ $page_id = wc_get_page_id( 'shop' );
70
+ return get_page( $page_id );
71
+ } else {
72
+ return get_queried_object();
73
+ }
74
+ }
75
+ /**
76
+ * Condition function test if is woocommerce shop page
77
+ */
78
+ protected function is_woocommerce_shop() {
79
+ if ( function_exists( 'is_shop' ) ) {
80
+ $page_id = wc_get_page_id( 'shop' );
81
+ return ! empty( $page_id ) && ( $page_id !== -1 ) && is_shop();
82
+ }
83
+ return false;
84
+ }
85
  }
86
+ }
inc/class-loftloader-customize.php CHANGED
@@ -137,10 +137,12 @@ if ( class_exists( 'WP_Customize_Setting' ) ) {
137
  // LoftLoader base customize control class: add class properties as displaying dependency.
138
  class LoftLoader_Customize_Control extends WP_Customize_Control {
139
  public $filter = false;
 
140
  public $parent_setting_id = '';
141
  public $show_filter = array();
142
  public $img = '';
143
  public $href = '';
 
144
  public function active_callback() {
145
  if ( $this->filter && ( $this->manager->get_setting($this->parent_setting_id ) instanceof WP_Customize_Setting ) && ! empty( $this->show_filter ) ) {
146
  $parent_setting_value = $this->manager->get_setting( $this->parent_setting_id )->value();
@@ -190,6 +192,12 @@ if ( class_exists( 'WP_Customize_Setting' ) ) {
190
  </label> <?php break;
191
  default:
192
  parent::render_content();
 
 
 
 
 
 
193
  }
194
  }
195
  }
@@ -347,4 +355,22 @@ if ( class_exists( 'WP_Customize_Setting' ) ) {
347
  return in_array( $input, $choices ) ? $input : $setting->default;
348
  }
349
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
350
  }
137
  // LoftLoader base customize control class: add class properties as displaying dependency.
138
  class LoftLoader_Customize_Control extends WP_Customize_Control {
139
  public $filter = false;
140
+ public $text = '';
141
  public $parent_setting_id = '';
142
  public $show_filter = array();
143
  public $img = '';
144
  public $href = '';
145
+ public $note_below = '';
146
  public function active_callback() {
147
  if ( $this->filter && ( $this->manager->get_setting($this->parent_setting_id ) instanceof WP_Customize_Setting ) && ! empty( $this->show_filter ) ) {
148
  $parent_setting_value = $this->manager->get_setting( $this->parent_setting_id )->value();
192
  </label> <?php break;
193
  default:
194
  parent::render_content();
195
+ if ( ! empty( $this->text ) ) {
196
+ echo esc_html( $this->text ) . '<br/>';
197
+ }
198
+ if ( ! empty( $this->note_below ) ) : ?>
199
+ <span class="description"><?php echo esc_html( $this->note_below ); ?></span><?php
200
+ endif;
201
  }
202
  }
203
  }
355
  return in_array( $input, $choices ) ? $input : $setting->default;
356
  }
357
  }
358
+
359
+ if ( ! function_exists( 'loftloader_sanitize_number' ) ) {
360
+ /**
361
+ * Check the value is float with 1 decimal
362
+ *
363
+ * @param string the value from user
364
+ * @param object customize setting object
365
+ * @return string the value from user or the default setting value
366
+ */
367
+
368
+ function loftloader_sanitize_number( $value) {
369
+ if ( ! empty( $value ) ) {
370
+ $value = floatval( $value );
371
+ return number_format( $value, 1, '.', '' );
372
+ }
373
+ return 0;
374
+ }
375
+ }
376
  }
inc/class-loftloader-front.php CHANGED
@@ -93,7 +93,7 @@ if ( ! class_exists( 'LoftLoader_Front' ) ) {
93
  loftloader_finished();
94
  } );
95
  if ( loader.dataset && loader.dataset.showCloseTime ) {
96
- var showCloseTime = parseInt( loader.dataset.showCloseTime ),
97
  closeBtn = loader.getElementsByClassName( 'loader-close-button' );
98
  if ( showCloseTime && closeBtn.length ) {
99
  setTimeout( function() {
@@ -104,6 +104,15 @@ if ( ! class_exists( 'LoftLoader_Front' ) ) {
104
  } );
105
  }
106
  }
 
 
 
 
 
 
 
 
 
107
  }
108
  } ) ();
109
  </script> <?php
@@ -233,6 +242,13 @@ if ( ! class_exists( 'LoftLoader_Front' ) ) {
233
  $show_close_time = $this->get_loader_setting( 'loftloader_show_close_timer' );
234
  $show_close_time = number_format( $show_close_time, 0, '.', '' );
235
  $attrs .= sprintf( ' data-show-close-time="%s"', esc_js( esc_attr( $show_close_time * 1000 ) ) );
 
 
 
 
 
 
 
236
  return apply_filters( 'loftloader_loader_attributes', $attrs );
237
  }
238
  /**
93
  loftloader_finished();
94
  } );
95
  if ( loader.dataset && loader.dataset.showCloseTime ) {
96
+ var showCloseTime = parseInt( loader.dataset.showCloseTime, 10 ), maxLoadTime = false,
97
  closeBtn = loader.getElementsByClassName( 'loader-close-button' );
98
  if ( showCloseTime && closeBtn.length ) {
99
  setTimeout( function() {
104
  } );
105
  }
106
  }
107
+ if ( loader.dataset.maxLoadTime ) {
108
+ maxLoadTime = loader.dataset.maxLoadTime;
109
+ maxLoadTime = parseInt( maxLoadTime, 10 );
110
+ if ( maxLoadTime ) {
111
+ setTimeout( function() {
112
+ loftloader_finished();
113
+ }, maxLoadTime );
114
+ }
115
+ }
116
  }
117
  } ) ();
118
  </script> <?php
242
  $show_close_time = $this->get_loader_setting( 'loftloader_show_close_timer' );
243
  $show_close_time = number_format( $show_close_time, 0, '.', '' );
244
  $attrs .= sprintf( ' data-show-close-time="%s"', esc_js( esc_attr( $show_close_time * 1000 ) ) );
245
+
246
+ $max_load_time = $this->get_loader_setting( 'loftloader_max_load_time' );
247
+ $max_load_time = number_format( $max_load_time, 1, '.', '' );
248
+ if ( ! empty( $max_load_time ) ) {
249
+ $attrs .= sprintf( ' data-max-load-time="%s"', esc_js( esc_attr( $max_load_time * 1000 ) ) );
250
+ }
251
+
252
  return apply_filters( 'loftloader_loader_attributes', $attrs );
253
  }
254
  /**
inc/configs/customize-advanced.php CHANGED
@@ -5,7 +5,7 @@
5
  * @since version 2.0.0
6
  */
7
  add_action( 'customize_register', 'loftloader_customize_advanced', 50 );
8
- function loftloader_customize_advanced( $wp_customize ) {
9
  global $loftloader_default_settings;
10
 
11
  $wp_customize->add_setting( new WP_Customize_Setting( $wp_customize, 'loftloader_inline_js', array(
@@ -30,14 +30,14 @@ function loftloader_customize_advanced( $wp_customize ) {
30
  $wp_customize->add_section( new LoftLoader_Customize_Section( $wp_customize, 'loftloader_customize_advanced', array(
31
  'title' => esc_html__( 'Advanced', 'loftloader' ),
32
  'description' => '',
33
- 'priority' => 50
34
  ) ) );
35
 
36
  $wp_customize->add_control( new LoftLoader_Customize_Control( $wp_customize, 'loftloader_inline_js', array(
37
  'type' => 'radio',
38
  'label' => esc_html__( 'How to Load LoftLoader\'s JavaScript', 'loftloader' ),
39
  'description' => '',
40
- 'choices' => array(
41
  '' => esc_html__( 'External JavaScript', 'loftloader' ),
42
  'inline' => esc_html__( 'Inline JavaScript', 'loftloader' )
43
  ),
@@ -62,4 +62,4 @@ function loftloader_customize_advanced( $wp_customize ) {
62
  'parent_setting_id' => 'loftloader_enable_any_page',
63
  'show_filter' => array( 'on' )
64
  ) ) );
65
- }
5
  * @since version 2.0.0
6
  */
7
  add_action( 'customize_register', 'loftloader_customize_advanced', 50 );
8
+ function loftloader_customize_advanced( $wp_customize ) {
9
  global $loftloader_default_settings;
10
 
11
  $wp_customize->add_setting( new WP_Customize_Setting( $wp_customize, 'loftloader_inline_js', array(
30
  $wp_customize->add_section( new LoftLoader_Customize_Section( $wp_customize, 'loftloader_customize_advanced', array(
31
  'title' => esc_html__( 'Advanced', 'loftloader' ),
32
  'description' => '',
33
+ 'priority' => 55
34
  ) ) );
35
 
36
  $wp_customize->add_control( new LoftLoader_Customize_Control( $wp_customize, 'loftloader_inline_js', array(
37
  'type' => 'radio',
38
  'label' => esc_html__( 'How to Load LoftLoader\'s JavaScript', 'loftloader' ),
39
  'description' => '',
40
+ 'choices' => array(
41
  '' => esc_html__( 'External JavaScript', 'loftloader' ),
42
  'inline' => esc_html__( 'Inline JavaScript', 'loftloader' )
43
  ),
62
  'parent_setting_id' => 'loftloader_enable_any_page',
63
  'show_filter' => array( 'on' )
64
  ) ) );
65
+ }
inc/configs/customize-more.php CHANGED
@@ -5,15 +5,29 @@
5
  * @since version 2.1.3
6
  */
7
  add_action( 'customize_register', 'loftloader_customize_more', 45 );
8
- function loftloader_customize_more( $wp_customize ) {
9
  global $loftloader_default_settings;
10
 
11
- $wp_customize->add_section( new LoftLoader_Customize_Section( $wp_customize, 'loftloader_section_more', array(
12
  'title' => esc_html__( 'More', 'loftloader' ),
13
- 'description' => '',
14
- 'priority' => 50
15
  ) ) );
16
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
17
  $wp_customize->add_setting( new WP_Customize_Setting( $wp_customize, 'loftloader_show_close_timer', array(
18
  'default' => $loftloader_default_settings['loftloader_show_close_timer'],
19
  'transport' => 'postMessage',
@@ -27,6 +41,15 @@ function loftloader_customize_more( $wp_customize ) {
27
  'sanitize_callback' => 'sanitize_text_field'
28
  ) ) );
29
 
 
 
 
 
 
 
 
 
 
30
  $wp_customize->add_control( new LoftLoader_Customize_Slider_Control( $wp_customize, 'loftloader_show_close_timer', array(
31
  'type' => 'slider',
32
  'label' => esc_html__( 'Show Close Button after', 'loftloader' ),
@@ -38,13 +61,13 @@ function loftloader_customize_more( $wp_customize ) {
38
  'data-step' => '1'
39
  ),
40
  'input_class' => 'loftloader-show-close-timer',
41
- 'section' => 'loftloader_section_more',
42
  'settings' => 'loftloader_show_close_timer'
43
  ) ) );
44
  $wp_customize->add_control( new LoftLoader_Customize_Control( $wp_customize, 'loftloader_show_close_tip', array(
45
  'type' => 'text',
46
  'label' => esc_html__( 'Description for Close Button', 'loftloader' ),
47
- 'section' => 'loftloader_section_more',
48
  'settings' => 'loftloader_show_close_tip'
49
  ) ) );
50
- }
5
  * @since version 2.1.3
6
  */
7
  add_action( 'customize_register', 'loftloader_customize_more', 45 );
8
+ function loftloader_customize_more( $wp_customize ) {
9
  global $loftloader_default_settings;
10
 
11
+ $wp_customize->add_panel( new WP_Customize_Panel ( $wp_customize, 'loftloader_panel_more', array(
12
  'title' => esc_html__( 'More', 'loftloader' ),
13
+ 'priority' => 52
 
14
  ) ) );
15
 
16
+ $wp_customize->add_section( new LoftLoader_Customize_Section( $wp_customize, 'loftloader_section_max_load_time', array(
17
+ 'title' => esc_html__( 'Maximum Load Time', 'loftloader' ),
18
+ 'panel' => 'loftloader_panel_more'
19
+ ) ) );
20
+ $wp_customize->add_section( new LoftLoader_Customize_Section( $wp_customize, 'loftloader_section_close_button', array(
21
+ 'title' => esc_html__( 'Close Button', 'loftloader' ),
22
+ 'panel' => 'loftloader_panel_more'
23
+ ) ) );
24
+
25
+ $wp_customize->add_setting( new WP_Customize_Setting( $wp_customize, 'loftloader_max_load_time', array(
26
+ 'default' => $loftloader_default_settings['loftloader_max_load_time'],
27
+ 'transport' => 'postMessage',
28
+ 'type' => 'option',
29
+ 'sanitize_callback' => 'loftloader_sanitize_number'
30
+ ) ) );
31
  $wp_customize->add_setting( new WP_Customize_Setting( $wp_customize, 'loftloader_show_close_timer', array(
32
  'default' => $loftloader_default_settings['loftloader_show_close_timer'],
33
  'transport' => 'postMessage',
41
  'sanitize_callback' => 'sanitize_text_field'
42
  ) ) );
43
 
44
+ $wp_customize->add_control( new LoftLoader_Customize_Control( $wp_customize, 'loftloader_max_load_time', array(
45
+ 'type' => 'number',
46
+ 'label' => esc_html__( 'Maximum Load Time', 'loftloader' ),
47
+ 'note_below' => esc_html__( 'Please enter any number greater than 0 to enable this feature.', 'loftloader' ),
48
+ 'section' => 'loftloader_section_max_load_time',
49
+ 'input_attrs' => array( 'min' => '0' ),
50
+ 'text' => esc_html__( ' second(s)', 'loftloader' ),
51
+ 'settings' => 'loftloader_max_load_time'
52
+ ) ) );
53
  $wp_customize->add_control( new LoftLoader_Customize_Slider_Control( $wp_customize, 'loftloader_show_close_timer', array(
54
  'type' => 'slider',
55
  'label' => esc_html__( 'Show Close Button after', 'loftloader' ),
61
  'data-step' => '1'
62
  ),
63
  'input_class' => 'loftloader-show-close-timer',
64
+ 'section' => 'loftloader_section_close_button',
65
  'settings' => 'loftloader_show_close_timer'
66
  ) ) );
67
  $wp_customize->add_control( new LoftLoader_Customize_Control( $wp_customize, 'loftloader_show_close_tip', array(
68
  'type' => 'text',
69
  'label' => esc_html__( 'Description for Close Button', 'loftloader' ),
70
+ 'section' => 'loftloader_section_close_button',
71
  'settings' => 'loftloader_show_close_tip'
72
  ) ) );
73
+ }
inc/configs/default-settings.php CHANGED
@@ -23,6 +23,8 @@ $loftloader_default_settings = array(
23
  'loftloader_show_close_timer' => 15,
24
  'loftloader_show_close_tip' => '',
25
 
 
 
26
  'loftloader_inline_js' => '',
27
  'loftloader_enable_any_page' => ''
28
- );
23
  'loftloader_show_close_timer' => 15,
24
  'loftloader_show_close_tip' => '',
25
 
26
+ 'loftloader_max_load_time' => 0,
27
+
28
  'loftloader_inline_js' => '',
29
  'loftloader_enable_any_page' => ''
30
+ );
languages/loftloader.pot CHANGED
@@ -1,18 +1,36 @@
1
- # Copyright (C) 2019 LoftLoader
2
- # This file is distributed under the same license as the LoftLoader package.
3
  #, fuzzy
4
  msgid ""
5
  msgstr ""
6
- "Project-Id-Version: LoftLoader 2.1.12\n"
7
- "Report-Msgid-Bugs-To: http://wordpress.org/support/plugin/loftloader\n"
8
- "POT-Creation-Date: 2019-11-15 23:09+0800\n"
 
9
  "MIME-Version: 1.0\n"
10
  "Content-Type: text/plain; charset=UTF-8\n"
11
  "Content-Transfer-Encoding: 8bit\n"
12
- "PO-Revision-Date: 2019-MO-DA HO:MI+ZONE\n"
13
- "Last-Translator: Suihai <cain@loftocean.com>\n"
14
- "Language-Team: Loft Ocean <cain@loftocean.com>\n"
15
  "X-Generator: Poedit 2.2.4\n"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
16
 
17
  #: inc/any-page/class-loftloader-any-page.php:24
18
  msgid "LoftLoader Any Page Shortcode"
@@ -34,18 +52,14 @@ msgstr ""
34
  msgid "Back"
35
  msgstr ""
36
 
37
- #: inc/class-loftloader-customize.php:175 inc/configs/customize-advanced.php:24
38
  msgid "Generate"
39
  msgstr ""
40
 
41
- #: inc/class-loftloader-customize.php:259
42
  msgid "More info"
43
  msgstr ""
44
 
45
- #: inc/class-loftloader-front.php:180
46
- msgid "loader image"
47
- msgstr ""
48
-
49
  #: inc/class-loftloader-front.php:205
50
  msgid "Close"
51
  msgstr ""
@@ -166,11 +180,27 @@ msgstr ""
166
  msgid "More"
167
  msgstr ""
168
 
169
- #: inc/configs/customize-more.php:32
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
170
  msgid "Show Close Button after"
171
  msgstr ""
172
 
173
- #: inc/configs/customize-more.php:46
174
  msgid "Description for Close Button"
175
  msgstr ""
176
 
@@ -201,22 +231,3 @@ msgstr ""
201
  #: loftloader.php:74
202
  msgid "Settings"
203
  msgstr ""
204
-
205
- #. Plugin Name of the plugin/theme
206
- msgid "LoftLoader"
207
- msgstr ""
208
-
209
- #. Plugin URI of the plugin/theme
210
- #. Author URI of the plugin/theme
211
- msgid "http://www.loftocean.com/"
212
- msgstr ""
213
-
214
- #. Description of the plugin/theme
215
- msgid ""
216
- "An easy to use plugin to add an animated preloader to your website with "
217
- "fully customisations."
218
- msgstr ""
219
-
220
- #. Author of the plugin/theme
221
- msgid "Loft Ocean"
222
- msgstr ""
1
+ # Copyright (C) 2020 Loft Ocean
2
+ # This file is distributed under the same license as the LoftLoader plugin.
3
  #, fuzzy
4
  msgid ""
5
  msgstr ""
6
+ "Project-Id-Version: LoftLoader 2.2.0\n"
7
+ "Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/loftloader\n"
8
+ "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
9
+ "Language-Team: LANGUAGE <LL@li.org>\n"
10
  "MIME-Version: 1.0\n"
11
  "Content-Type: text/plain; charset=UTF-8\n"
12
  "Content-Transfer-Encoding: 8bit\n"
13
+ "POT-Creation-Date: 2020-02-22 14:51+0800\n"
14
+ "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 
15
  "X-Generator: Poedit 2.2.4\n"
16
+ "X-Domain: loftloader\n"
17
+
18
+ #. Plugin Name of the plugin
19
+ msgid "LoftLoader"
20
+ msgstr ""
21
+
22
+ #. Plugin URI of the plugin
23
+ #. Author URI of the plugin
24
+ msgid "http://www.loftocean.com/"
25
+ msgstr ""
26
+
27
+ #. Description of the plugin
28
+ msgid "An easy to use plugin to add an animated preloader to your website with fully customisations."
29
+ msgstr ""
30
+
31
+ #. Author of the plugin
32
+ msgid "Loft Ocean"
33
+ msgstr ""
34
 
35
  #: inc/any-page/class-loftloader-any-page.php:24
36
  msgid "LoftLoader Any Page Shortcode"
52
  msgid "Back"
53
  msgstr ""
54
 
55
+ #: inc/class-loftloader-customize.php:177 inc/configs/customize-advanced.php:24
56
  msgid "Generate"
57
  msgstr ""
58
 
59
+ #: inc/class-loftloader-customize.php:267
60
  msgid "More info"
61
  msgstr ""
62
 
 
 
 
 
63
  #: inc/class-loftloader-front.php:205
64
  msgid "Close"
65
  msgstr ""
180
  msgid "More"
181
  msgstr ""
182
 
183
+ #: inc/configs/customize-more.php:17 inc/configs/customize-more.php:46
184
+ msgid "Maximum Load Time"
185
+ msgstr ""
186
+
187
+ #: inc/configs/customize-more.php:21
188
+ msgid "Close Button"
189
+ msgstr ""
190
+
191
+ #: inc/configs/customize-more.php:47
192
+ msgid "Please enter any number greater than 0 to enable this feature."
193
+ msgstr ""
194
+
195
+ #: inc/configs/customize-more.php:50
196
+ msgid " second(s)"
197
+ msgstr ""
198
+
199
+ #: inc/configs/customize-more.php:55
200
  msgid "Show Close Button after"
201
  msgstr ""
202
 
203
+ #: inc/configs/customize-more.php:69
204
  msgid "Description for Close Button"
205
  msgstr ""
206
 
231
  #: loftloader.php:74
232
  msgid "Settings"
233
  msgstr ""
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
loftloader.php CHANGED
@@ -3,7 +3,7 @@
3
  Plugin Name: LoftLoader
4
  Plugin URI: http://www.loftocean.com/
5
  Description: An easy to use plugin to add an animated preloader to your website with fully customisations.
6
- Version: 2.1.12
7
  Author: Loft Ocean
8
  Author URI: http://www.loftocean.com/
9
  Text Domain: loftloader
@@ -32,7 +32,7 @@ if ( ! class_exists( 'LoftLoader' ) ) {
32
  define( 'LOFTLOADER_ROOT', dirname( __FILE__ ) . '/' );
33
  define( 'LOFTLOADER_NAME', plugin_basename( __FILE__ ) );
34
  define( 'LOFTLOADER_URI', plugin_dir_url( __FILE__ ) );
35
- define( 'LOFTLOADER_ASSET_VERSION', '2019111501' );
36
 
37
  class LoftLoader {
38
  public function __construct() {
3
  Plugin Name: LoftLoader
4
  Plugin URI: http://www.loftocean.com/
5
  Description: An easy to use plugin to add an animated preloader to your website with fully customisations.
6
+ Version: 2.2.0
7
  Author: Loft Ocean
8
  Author URI: http://www.loftocean.com/
9
  Text Domain: loftloader
32
  define( 'LOFTLOADER_ROOT', dirname( __FILE__ ) . '/' );
33
  define( 'LOFTLOADER_NAME', plugin_basename( __FILE__ ) );
34
  define( 'LOFTLOADER_URI', plugin_dir_url( __FILE__ ) );
35
+ define( 'LOFTLOADER_ASSET_VERSION', '2020022204' );
36
 
37
  class LoftLoader {
38
  public function __construct() {
readme.txt CHANGED
@@ -4,7 +4,7 @@ Tags: loader, load, preloader, page preloader, prelader spinner, preloader with
4
  Donate link:
5
  Requires at least: 4.7
6
  Tested up to: 5.3
7
- Stable tag: 2.1.12
8
  License: GPLv2 or later
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
 
@@ -96,6 +96,11 @@ Check some [examples](http://www.loftocean.com/loftloader/example-13/) created b
96
  8. Pro version: Load Time, Device Control & Smooth Page Transition
97
 
98
  == Changelog ==
 
 
 
 
 
99
  = 2.1.12
100
  * Fixed: Minor style issues in LoftLoader Settings panel for WordPress 5.3
101
  * Fixed: Minor CSS issues of Settings Panel UI for RTL sites
4
  Donate link:
5
  Requires at least: 4.7
6
  Tested up to: 5.3
7
+ Stable tag: 2.2.0
8
  License: GPLv2 or later
9
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
 
96
  8. Pro version: Load Time, Device Control & Smooth Page Transition
97
 
98
  == Changelog ==
99
+ = 2.2.0
100
+ * New: Option to set a Maximum Load Time
101
+ * Improved: Rearranged options in More section
102
+ * Fixed: Any Page Extension - shortcode did not work on WooCommerce Shop Page
103
+
104
  = 2.1.12
105
  * Fixed: Minor style issues in LoftLoader Settings panel for WordPress 5.3
106
  * Fixed: Minor CSS issues of Settings Panel UI for RTL sites