MetaSlider - Version 3.20.3

Version Description

  • 2021/Mar/02 =
  • FIX: Update responsive slides to improve jQuery compatability
  • FIX: Updates uasort to be PHP8 compatible
  • FIX: Fixes a typo in the export callback
Download this release

Release Info

Developer metaslider
Plugin Icon 128x128 MetaSlider
Version 3.20.3
Comparing to
See all releases

Code changes from version 3.20.2 to 3.20.3

admin/routes/api.php CHANGED
@@ -1001,7 +1001,7 @@ if (class_exists('WP_REST_Controller')) :
1001
  )));
1002
  register_rest_route($this->namespace, '/slideshow/export', array(array(
1003
  'methods' => 'GET',
1004
- 'callbacks' => array($this->api, 'export_slideshows'),
1005
  'permission_callback' => array($this->api, 'can_access')
1006
  )));
1007
  register_rest_route($this->namespace, '/slideshow/import', array(array(
1001
  )));
1002
  register_rest_route($this->namespace, '/slideshow/export', array(array(
1003
  'methods' => 'GET',
1004
+ 'callback' => array($this->api, 'export_slideshows'),
1005
  'permission_callback' => array($this->api, 'can_access')
1006
  )));
1007
  register_rest_route($this->namespace, '/slideshow/import', array(array(
assets/sliders/responsiveslides/README.md ADDED
@@ -0,0 +1,106 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # ResponsiveSlides.js v1.55
2
+ ### Simple & lightweight responsive slider plugin (in 1kb)
3
+
4
+
5
+ [ResponsiveSlides.js](http://responsiveslides.com/) is a tiny jQuery plugin that creates a responsive slider using elements inside a container. It has been used on sites like [Microsoft's Build 2012](http://www.buildwindows.com/launch) and [Gridset App](https://gridsetapp.com). ResponsiveSlides.js works with wide range of browsers including all IE versions from IE6 and up. It also adds CSS max-width support for IE6 and other browsers that don't natively support it. Only dependency is [jQuery](http://jquery.com/) (1.6 and up supported, tested up to 1.8.3) and that all the images are the same size.
6
+
7
+ Biggest difference to other responsive slider plugins is the file size (1.4kb minified and gzipped) + that this one doesn't try to do everything. ResponsiveSlides.js has basically only two different modes: Either it just automatically fades the images, or operates as a responsive image container with pagination and/or navigation to fade between slides.
8
+
9
+ #### Features:
10
+ * Fully responsive
11
+ * 1kb minified and gzipped
12
+ * CSS3 transitions with JavaScript fallback
13
+ * Simple markup using unordered list
14
+ * Settings for transition and timeout durations
15
+ * Multiple slideshows supported
16
+ * Automatic and manual fade
17
+ * Works in all major desktop and mobile browsers
18
+ * Captions and other html-elements supported inside slides
19
+ * Separate pagination and next/prev controls
20
+ * Possibility to choose where the controls append to
21
+ * Possibility to randomize the order of the slides
22
+ * Possibility to use custom markup for pagination
23
+ * Can be paused while hovering slideshow and/or controls
24
+ * Images can be wrapped inside links
25
+ * Optional 'before' and 'after' callbacks
26
+
27
+
28
+
29
+ Usage Instructions and demo
30
+ ======
31
+
32
+ For instructions and demo go to [http://responsiveslides.com/](http://responsiveslides.com/), or [download this repository as a zip file](https://github.com/viljamis/ResponsiveSlides.js/zipball/master) and and open "index.html" from the "example" folder.
33
+
34
+ * View [additional usage examples online](http://responsiveslides.com/themes/themes.html).
35
+ * View [a demo with captions](http://responsiveslides.com/with-captions/themes.html).
36
+
37
+ Currently jQuery 1.6 and up is supported.
38
+
39
+
40
+
41
+ License
42
+ ======
43
+
44
+ Licensed under the MIT license.
45
+
46
+ Copyright (c) 2011-2012 Viljami Salminen, http://viljamis.com/
47
+
48
+ Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
49
+
50
+ The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
51
+
52
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
53
+
54
+
55
+
56
+ Changelog
57
+ ======
58
+
59
+
60
+ v1.55 (2016-08-05) - Adds jQuery 3.0 compatibility (thanks to [@Requios](https://github.com/Requios)!).
61
+
62
+ v1.54 (2013-04-26) - Fixes few bugs with the before and after callbacks.
63
+
64
+ v1.53 (2013-01-14) - Minor speed optimization (thanks [@bazineta](https://github.com/bazineta)!).
65
+
66
+ v1.52 (2013-01-07) - Adds option called "manualControls" which allows to write custom markup for pager navigation (thanks to [@andyadams](https://github.com/andyadams)). "controls" option is renamed to "navContainer". Default speed of the transition is now to 500ms. Adds also webkit-backface-visibility: hidden; style for the slides to prevent some HD acceleration issues on mobile WebKit browsers.
67
+
68
+ v1.51 (2012-12-15) - Fixes a bug where pictures would not display if next button was clicked too quickly 10 times.
69
+
70
+ v1.5 (2012-12-14) - Adds CSS3 transition support with automatic jQuery fallback.
71
+
72
+ v1.32 (2012-05-09) - Fixes a bug which caused the slideshow to break in Chrome when changing between active and inactive browser tabs.
73
+
74
+ v1.31 (2012-05-02) - Easier to use callbacks (+ optional "active" class for the next/prev buttons when animating slides. If you need this functionality, open the unminified version and search for "Adds active class during slide animation" and remove comments around it).
75
+
76
+ v1.3 (2012-04-26) - Three new options: "random", "pause", "pauseControls" + small bug fixes.
77
+
78
+ v1.25 (2012-04-19) - No more flashing of unstyled slideshow before JS has loaded. Adds also better support for cases when JavaScript isn't available.
79
+
80
+ v1.24 (2012-04-12) - Changes the way slideshow works if there's only one slide. Now all classes and max-width for the container are added, but we don't show the next and prev buttons anymore as they don't make much sense in that case. This version also fixes a bug which made the 'previous' button always go to the next slide.
81
+
82
+ v1.23 (2012-03-31) - Adds new option called "controls", which allows to choose where the controls should be appended to. Includes also code optimization, bug fixes, better option names and better jQuery support (jQuery 1.4 and up is now supported).
83
+
84
+ v1.22 (2012-03-27) - Adds callback events which are similar as in [@Wilto](https://github.com/Wilto)'s [Dynamic Carousel](https://github.com/Wilto/Dynamic-Carousel/). The possibility to change the 'namespace' is also back + next/prev buttons have now classes which make more sense.
85
+
86
+ v1.21 (2012-03-23) - Added two new options: 'nextText' and 'prevText'.
87
+
88
+ v1.20 (2012-03-21) - New option called 'nav', which enables next and previous buttons. Can be used with 'pagination' and 'auto' options. Adds also new [themes folder](http://responsiveslides.com/themes/themes.html) with three different ways to use the new next and previous buttons.
89
+
90
+ v1.10 (2012-03-12) - Refactoring, New markup style, CSS is now separated from the plugin, you can have links around images and other elements inside slides (not just images, but also captions etc.) + New option called "pagination", which enables to choose both "pagination" and "auto" at the same time. Shout outs for the help to [@bgutschke](https://github.com/bgutschke)
91
+
92
+ v1.05 (2012-03-05) - No more need to change the namespace if you have more than one slideshow on the same page.
93
+
94
+ v1.04 (2011-12-19) - Fixes problems when ResponsiveSlides.js is used with other plugins
95
+
96
+ v1.03 (2011-12-12) - Code refactoring, smaller size, better performance
97
+
98
+ v1.01 (2011-12-11) - Better usage of styles and the namespace
99
+
100
+ v1.00 (2011-12-04) - Release
101
+
102
+
103
+ Want to do a pull request?
104
+ ======
105
+
106
+ Great! New ideas are more than welcome, but please check the [Pull Request Guidelines](https://github.com/viljamis/ResponsiveSlides.js/wiki/Pull-Request-Guidelines) first before doing so.
assets/sliders/responsiveslides/responsiveslides.js ADDED
@@ -0,0 +1,391 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ /*! ResponsiveSlides.js v1.55
2
+ * http://responsiveslides.com
3
+ * http://viljamis.com
4
+ *
5
+ * Copyright (c) 2011-2012 @viljamis
6
+ * Available under the MIT license
7
+ */
8
+
9
+ /*jslint browser: true, sloppy: true, vars: true, plusplus: true, indent: 2 */
10
+
11
+ (function ($, window, i) {
12
+ $.fn.responsiveSlides = function (options) {
13
+
14
+ // Default settings
15
+ var settings = $.extend({
16
+ "auto": true, // Boolean: Animate automatically, true or false
17
+ "speed": 500, // Integer: Speed of the transition, in milliseconds
18
+ "timeout": 4000, // Integer: Time between slide transitions, in milliseconds
19
+ "pager": false, // Boolean: Show pager, true or false
20
+ "nav": false, // Boolean: Show navigation, true or false
21
+ "random": false, // Boolean: Randomize the order of the slides, true or false
22
+ "pause": false, // Boolean: Pause on hover, true or false
23
+ "pauseControls": true, // Boolean: Pause when hovering controls, true or false
24
+ "prevText": "Previous", // String: Text for the "previous" button
25
+ "nextText": "Next", // String: Text for the "next" button
26
+ "maxwidth": "", // Integer: Max-width of the slideshow, in pixels
27
+ "navContainer": "", // Selector: Where auto generated controls should be appended to, default is after the <ul>
28
+ "manualControls": "", // Selector: Declare custom pager navigation
29
+ "namespace": "rslides", // String: change the default namespace used
30
+ "before": $.noop, // Function: Before callback
31
+ "after": $.noop // Function: After callback
32
+ }, options);
33
+
34
+ return this.each(function () {
35
+
36
+ // Index for namespacing
37
+ i++;
38
+
39
+ var $this = $(this),
40
+
41
+ // Local variables
42
+ vendor,
43
+ selectTab,
44
+ startCycle,
45
+ restartCycle,
46
+ rotate,
47
+ $tabs,
48
+
49
+ // Helpers
50
+ index = 0,
51
+ $slide = $this.children(),
52
+ length = $slide.length,
53
+ fadeTime = parseFloat(settings.speed),
54
+ waitTime = parseFloat(settings.timeout),
55
+ maxw = parseFloat(settings.maxwidth),
56
+
57
+ // Namespacing
58
+ namespace = settings.namespace,
59
+ namespaceIdx = namespace + i,
60
+
61
+ // Classes
62
+ navClass = namespace + "_nav " + namespaceIdx + "_nav",
63
+ activeClass = namespace + "_here",
64
+ visibleClass = namespaceIdx + "_on",
65
+ slideClassPrefix = namespaceIdx + "_s",
66
+
67
+ // Pager
68
+ $pager = $("<ul class='" + namespace + "_tabs " + namespaceIdx + "_tabs' />"),
69
+
70
+ // Styles for visible and hidden slides
71
+ visible = {"float": "left", "position": "relative", "opacity": 1, "zIndex": 2},
72
+ hidden = {"float": "none", "position": "absolute", "opacity": 0, "zIndex": 1},
73
+
74
+ // Detect transition support
75
+ supportsTransitions = (function () {
76
+ var docBody = document.body || document.documentElement;
77
+ var styles = docBody.style;
78
+ var prop = "transition";
79
+ if (typeof styles[prop] === "string") {
80
+ return true;
81
+ }
82
+ // Tests for vendor specific prop
83
+ vendor = ["Moz", "Webkit", "Khtml", "O", "ms"];
84
+ prop = prop.charAt(0).toUpperCase() + prop.substr(1);
85
+ var i;
86
+ for (i = 0; i < vendor.length; i++) {
87
+ if (typeof styles[vendor[i] + prop] === "string") {
88
+ return true;
89
+ }
90
+ }
91
+ return false;
92
+ })(),
93
+
94
+ // Fading animation
95
+ slideTo = function (idx) {
96
+ settings.before(idx);
97
+ // If CSS3 transitions are supported
98
+ if (supportsTransitions) {
99
+ $slide
100
+ .removeClass(visibleClass)
101
+ .css(hidden)
102
+ .eq(idx)
103
+ .addClass(visibleClass)
104
+ .css(visible);
105
+ index = idx;
106
+ setTimeout(function () {
107
+ settings.after(idx);
108
+ }, fadeTime);
109
+ // If not, use jQuery fallback
110
+ } else {
111
+ $slide
112
+ .stop()
113
+ .fadeOut(fadeTime, function () {
114
+ $(this)
115
+ .removeClass(visibleClass)
116
+ .css(hidden)
117
+ .css("opacity", 1);
118
+ })
119
+ .eq(idx)
120
+ .fadeIn(fadeTime, function () {
121
+ $(this)
122
+ .addClass(visibleClass)
123
+ .css(visible);
124
+ settings.after(idx);
125
+ index = idx;
126
+ });
127
+ }
128
+ };
129
+
130
+ // Random order
131
+ if (settings.random) {
132
+ $slide.sort(function () {
133
+ return (Math.round(Math.random()) - 0.5);
134
+ });
135
+ $this
136
+ .empty()
137
+ .append($slide);
138
+ }
139
+
140
+ // Add ID's to each slide
141
+ $slide.each(function (i) {
142
+ this.id = slideClassPrefix + i;
143
+ });
144
+
145
+ // Add max-width and classes
146
+ $this.addClass(namespace + " " + namespaceIdx);
147
+ if (options && options.maxwidth) {
148
+ $this.css("max-width", maxw);
149
+ }
150
+
151
+ // Hide all slides, then show first one
152
+ $slide
153
+ .hide()
154
+ .css(hidden)
155
+ .eq(0)
156
+ .addClass(visibleClass)
157
+ .css(visible)
158
+ .show();
159
+
160
+ // CSS transitions
161
+ if (supportsTransitions) {
162
+ $slide
163
+ .show()
164
+ .css({
165
+ // -ms prefix isn't needed as IE10 uses prefix free version
166
+ "-webkit-transition": "opacity " + fadeTime + "ms ease-in-out",
167
+ "-moz-transition": "opacity " + fadeTime + "ms ease-in-out",
168
+ "-o-transition": "opacity " + fadeTime + "ms ease-in-out",
169
+ "transition": "opacity " + fadeTime + "ms ease-in-out"
170
+ });
171
+ }
172
+
173
+ // Only run if there's more than one slide
174
+ if ($slide.length > 1) {
175
+
176
+ // Make sure the timeout is at least 100ms longer than the fade
177
+ if (waitTime < fadeTime + 100) {
178
+ return;
179
+ }
180
+
181
+ // Pager
182
+ if (settings.pager && !settings.manualControls) {
183
+ var tabMarkup = [];
184
+ $slide.each(function (i) {
185
+ var n = i + 1;
186
+ tabMarkup +=
187
+ "<li>" +
188
+ "<a href='#' class='" + slideClassPrefix + n + "'>" + n + "</a>" +
189
+ "</li>";
190
+ });
191
+ $pager.append(tabMarkup);
192
+
193
+ // Inject pager
194
+ if (options.navContainer) {
195
+ $(settings.navContainer).append($pager);
196
+ } else {
197
+ $this.after($pager);
198
+ }
199
+ }
200
+
201
+ // Manual pager controls
202
+ if (settings.manualControls) {
203
+ $pager = $(settings.manualControls);
204
+ $pager.addClass(namespace + "_tabs " + namespaceIdx + "_tabs");
205
+ }
206
+
207
+ // Add pager slide class prefixes
208
+ if (settings.pager || settings.manualControls) {
209
+ $pager.find('li').each(function (i) {
210
+ $(this).addClass(slideClassPrefix + (i + 1));
211
+ });
212
+ }
213
+
214
+ // If we have a pager, we need to set up the selectTab function
215
+ if (settings.pager || settings.manualControls) {
216
+ $tabs = $pager.find('a');
217
+
218
+ // Select pager item
219
+ selectTab = function (idx) {
220
+ $tabs
221
+ .closest("li")
222
+ .removeClass(activeClass)
223
+ .eq(idx)
224
+ .addClass(activeClass);
225
+ };
226
+ }
227
+
228
+ // Auto cycle
229
+ if (settings.auto) {
230
+
231
+ startCycle = function () {
232
+ rotate = setInterval(function () {
233
+
234
+ // Clear the event queue
235
+ $slide.stop(true, true);
236
+
237
+ var idx = index + 1 < length ? index + 1 : 0;
238
+
239
+ // Remove active state and set new if pager is set
240
+ if (settings.pager || settings.manualControls) {
241
+ selectTab(idx);
242
+ }
243
+
244
+ slideTo(idx);
245
+ }, waitTime);
246
+ };
247
+
248
+ // Init cycle
249
+ startCycle();
250
+ }
251
+
252
+ // Restarting cycle
253
+ restartCycle = function () {
254
+ if (settings.auto) {
255
+ // Stop
256
+ clearInterval(rotate);
257
+ // Restart
258
+ startCycle();
259
+ }
260
+ };
261
+
262
+ // Pause on hover
263
+ if (settings.pause) {
264
+ $this.hover(function () {
265
+ clearInterval(rotate);
266
+ }, function () {
267
+ restartCycle();
268
+ });
269
+ }
270
+
271
+ // Pager click event handler
272
+ if (settings.pager || settings.manualControls) {
273
+ $tabs.bind("click", function (e) {
274
+ e.preventDefault();
275
+
276
+ if (!settings.pauseControls) {
277
+ restartCycle();
278
+ }
279
+
280
+ // Get index of clicked tab
281
+ var idx = $tabs.index(this);
282
+
283
+ // Break if element is already active or currently animated
284
+ if (index === idx || $("." + visibleClass).queue('fx').length) {
285
+ return;
286
+ }
287
+
288
+ // Remove active state from old tab and set new one
289
+ selectTab(idx);
290
+
291
+ // Do the animation
292
+ slideTo(idx);
293
+ })
294
+ .eq(0)
295
+ .closest("li")
296
+ .addClass(activeClass);
297
+
298
+ // Pause when hovering pager
299
+ if (settings.pauseControls) {
300
+ $tabs.hover(function () {
301
+ clearInterval(rotate);
302
+ }, function () {
303
+ restartCycle();
304
+ });
305
+ }
306
+ }
307
+
308
+ // Navigation
309
+ if (settings.nav) {
310
+ var navMarkup =
311
+ "<a href='#' class='" + navClass + " prev'>" + settings.prevText + "</a>" +
312
+ "<a href='#' class='" + navClass + " next'>" + settings.nextText + "</a>";
313
+
314
+ // Inject navigation
315
+ if (options.navContainer) {
316
+ $(settings.navContainer).append(navMarkup);
317
+ } else {
318
+ $this.after(navMarkup);
319
+ }
320
+
321
+ var $trigger = $("." + namespaceIdx + "_nav"),
322
+ $prev = $trigger.filter(".prev");
323
+
324
+ // Click event handler
325
+ $trigger.bind("click", function (e) {
326
+ e.preventDefault();
327
+
328
+ var $visibleClass = $("." + visibleClass);
329
+
330
+ // Prevent clicking if currently animated
331
+ if ($visibleClass.queue('fx').length) {
332
+ return;
333
+ }
334
+
335
+ // Adds active class during slide animation
336
+ // $(this)
337
+ // .addClass(namespace + "_active")
338
+ // .delay(fadeTime)
339
+ // .queue(function (next) {
340
+ // $(this).removeClass(namespace + "_active");
341
+ // next();
342
+ // });
343
+
344
+ // Determine where to slide
345
+ var idx = $slide.index($visibleClass),
346
+ prevIdx = idx - 1,
347
+ nextIdx = idx + 1 < length ? index + 1 : 0;
348
+
349
+ // Go to slide
350
+ slideTo($(this)[0] === $prev[0] ? prevIdx : nextIdx);
351
+ if (settings.pager || settings.manualControls) {
352
+ selectTab($(this)[0] === $prev[0] ? prevIdx : nextIdx);
353
+ }
354
+
355
+ if (!settings.pauseControls) {
356
+ restartCycle();
357
+ }
358
+ });
359
+
360
+ // Pause when hovering navigation
361
+ if (settings.pauseControls) {
362
+ $trigger.hover(function () {
363
+ clearInterval(rotate);
364
+ }, function () {
365
+ restartCycle();
366
+ });
367
+ }
368
+ }
369
+
370
+ }
371
+
372
+ // Max-width fallback
373
+ if (typeof document.body.style.maxWidth === "undefined" && options.maxwidth) {
374
+ var widthSupport = function () {
375
+ $this.css("width", "100%");
376
+ if ($this.width() > maxw) {
377
+ $this.css("width", maxw);
378
+ }
379
+ };
380
+
381
+ // Init fallback
382
+ widthSupport();
383
+ $(window).bind("resize", function () {
384
+ widthSupport();
385
+ });
386
+ }
387
+
388
+ });
389
+
390
+ };
391
+ })(jQuery, this, 0);
assets/sliders/responsiveslides/responsiveslides.min.js CHANGED
@@ -1,8 +1,8 @@
1
- /*! http://responsiveslides.com v1.54 by @viljamis */
2
- (function(c,I,B){c.fn.responsiveSlides=function(l){var a=c.extend({auto:!0,speed:500,timeout:4E3,pager:!1,nav:!1,random:!1,pause:!1,pauseControls:!0,prevText:"Previous",nextText:"Next",maxwidth:"",navContainer:"",manualControls:"",namespace:"rslides",before:c.noop,after:c.noop},l);return this.each(function(){B++;var f=c(this),s,r,t,m,p,q,n=0,e=f.children(),C=e.size(),h=parseFloat(a.speed),D=parseFloat(a.timeout),u=parseFloat(a.maxwidth),g=a.namespace,d=g+B,E=g+"_nav "+d+"_nav",v=g+"_here",j=d+"_on",
3
- w=d+"_s",k=c("<ul class='"+g+"_tabs "+d+"_tabs' />"),x={"float":"left",position:"relative",opacity:1,zIndex:2},y={"float":"none",position:"absolute",opacity:0,zIndex:1},F=function(){var b=(document.body||document.documentElement).style,a="transition";if("string"===typeof b[a])return!0;s=["Moz","Webkit","Khtml","O","ms"];var a=a.charAt(0).toUpperCase()+a.substr(1),c;for(c=0;c<s.length;c++)if("string"===typeof b[s[c]+a])return!0;return!1}(),z=function(b){a.before(b);F?(e.removeClass(j).css(y).eq(b).addClass(j).css(x),
4
- n=b,setTimeout(function(){a.after(b)},h)):e.stop().fadeOut(h,function(){c(this).removeClass(j).css(y).css("opacity",1)}).eq(b).fadeIn(h,function(){c(this).addClass(j).css(x);a.after(b);n=b})};a.random&&(e.sort(function(){return Math.round(Math.random())-0.5}),f.empty().append(e));e.each(function(a){this.id=w+a});f.addClass(g+" "+d);l&&l.maxwidth&&f.css("max-width",u);e.hide().css(y).eq(0).addClass(j).css(x).show();F&&e.show().css({"-webkit-transition":"opacity "+h+"ms ease-in-out","-moz-transition":"opacity "+
5
- h+"ms ease-in-out","-o-transition":"opacity "+h+"ms ease-in-out",transition:"opacity "+h+"ms ease-in-out"});if(1<e.size()){if(D<h+100)return;if(a.pager&&!a.manualControls){var A=[];e.each(function(a){a+=1;A+="<li><a href='#' class='"+w+a+"'>"+a+"</a></li>"});k.append(A);l.navContainer?c(a.navContainer).append(k):f.after(k)}a.manualControls&&(k=c(a.manualControls),k.addClass(g+"_tabs "+d+"_tabs"));(a.pager||a.manualControls)&&k.find("li").each(function(a){c(this).addClass(w+(a+1))});if(a.pager||a.manualControls)q=
6
- k.find("a"),r=function(a){q.closest("li").removeClass(v).eq(a).addClass(v)};a.auto&&(t=function(){p=setInterval(function(){e.stop(!0,!0);var b=n+1<C?n+1:0;(a.pager||a.manualControls)&&r(b);z(b)},D)},t());m=function(){a.auto&&(clearInterval(p),t())};a.pause&&f.hover(function(){clearInterval(p)},function(){m()});if(a.pager||a.manualControls)q.bind("click",function(b){b.preventDefault();a.pauseControls||m();b=q.index(this);n===b||c("."+j).queue("fx").length||(r(b),z(b))}).eq(0).closest("li").addClass(v),
7
- a.pauseControls&&q.hover(function(){clearInterval(p)},function(){m()});if(a.nav){g="<a href='#' class='"+E+" prev'>"+a.prevText+"</a><a href='#' class='"+E+" next'>"+a.nextText+"</a>";l.navContainer?c(a.navContainer).append(g):f.after(g);var d=c("."+d+"_nav"),G=d.filter(".prev");d.bind("click",function(b){b.preventDefault();b=c("."+j);if(!b.queue("fx").length){var d=e.index(b);b=d-1;d=d+1<C?n+1:0;z(c(this)[0]===G[0]?b:d);if(a.pager||a.manualControls)r(c(this)[0]===G[0]?b:d);a.pauseControls||m()}});
8
- a.pauseControls&&d.hover(function(){clearInterval(p)},function(){m()})}}if("undefined"===typeof document.body.style.maxWidth&&l.maxwidth){var H=function(){f.css("width","100%");f.width()>u&&f.css("width",u)};H();c(I).bind("resize",function(){H()})}})}})(jQuery,this,0);
1
+ /*! http://responsiveslides.com v1.55 by @viljamis */
2
+ (function(c,K,C){c.fn.responsiveSlides=function(m){var a=c.extend({auto:!0,speed:500,timeout:4E3,pager:!1,nav:!1,random:!1,pause:!1,pauseControls:!0,prevText:"Previous",nextText:"Next",maxwidth:"",navContainer:"",manualControls:"",namespace:"rslides",before:c.noop,after:c.noop},m);return this.each(function(){C++;var f=c(this),u,t,v,n,q,r,p=0,e=f.children(),D=e.length,h=parseFloat(a.speed),E=parseFloat(a.timeout),w=parseFloat(a.maxwidth),g=a.namespace,d=g+C,F=g+"_nav "+d+"_nav",x=g+"_here",k=d+"_on",
3
+ y=d+"_s",l=c("<ul class='"+g+"_tabs "+d+"_tabs' />"),z={"float":"left",position:"relative",opacity:1,zIndex:2},A={"float":"none",position:"absolute",opacity:0,zIndex:1},G=function(){var b=(document.body||document.documentElement).style,a="transition";if("string"===typeof b[a])return!0;u=["Moz","Webkit","Khtml","O","ms"];var a=a.charAt(0).toUpperCase()+a.substr(1),c;for(c=0;c<u.length;c++)if("string"===typeof b[u[c]+a])return!0;return!1}(),B=function(b){a.before(b);G?(e.removeClass(k).css(A).eq(b).addClass(k).css(z),
4
+ p=b,setTimeout(function(){a.after(b)},h)):e.stop().fadeOut(h,function(){c(this).removeClass(k).css(A).css("opacity",1)}).eq(b).fadeIn(h,function(){c(this).addClass(k).css(z);a.after(b);p=b})};a.random&&(e.sort(function(){return Math.round(Math.random())-.5}),f.empty().append(e));e.each(function(a){this.id=y+a});f.addClass(g+" "+d);m&&m.maxwidth&&f.css("max-width",w);e.hide().css(A).eq(0).addClass(k).css(z).show();G&&e.show().css({"-webkit-transition":"opacity "+h+"ms ease-in-out","-moz-transition":"opacity "+
5
+ h+"ms ease-in-out","-o-transition":"opacity "+h+"ms ease-in-out",transition:"opacity "+h+"ms ease-in-out"});if(1<e.length){if(E<h+100)return;if(a.pager&&!a.manualControls){var H=[];e.each(function(a){a+=1;H+="<li><a href='#' class='"+y+a+"'>"+a+"</a></li>"});l.append(H);m.navContainer?c(a.navContainer).append(l):f.after(l)}a.manualControls&&(l=c(a.manualControls),l.addClass(g+"_tabs "+d+"_tabs"));(a.pager||a.manualControls)&&l.find("li").each(function(a){c(this).addClass(y+(a+1))});if(a.pager||a.manualControls)r=
6
+ l.find("a"),t=function(a){r.closest("li").removeClass(x).eq(a).addClass(x)};a.auto&&(v=function(){q=setInterval(function(){e.stop(!0,!0);var b=p+1<D?p+1:0;(a.pager||a.manualControls)&&t(b);B(b)},E)},v());n=function(){a.auto&&(clearInterval(q),v())};a.pause&&f.hover(function(){clearInterval(q)},function(){n()});if(a.pager||a.manualControls)r.bind("click",function(b){b.preventDefault();a.pauseControls||n();b=r.index(this);p===b||c("."+k).queue("fx").length||(t(b),B(b))}).eq(0).closest("li").addClass(x),
7
+ a.pauseControls&&r.hover(function(){clearInterval(q)},function(){n()});if(a.nav){g="<a href='#' class='"+F+" prev'>"+a.prevText+"</a><a href='#' class='"+F+" next'>"+a.nextText+"</a>";m.navContainer?c(a.navContainer).append(g):f.after(g);var d=c("."+d+"_nav"),I=d.filter(".prev");d.bind("click",function(b){b.preventDefault();b=c("."+k);if(!b.queue("fx").length){var d=e.index(b);b=d-1;d=d+1<D?p+1:0;B(c(this)[0]===I[0]?b:d);(a.pager||a.manualControls)&&t(c(this)[0]===I[0]?b:d);a.pauseControls||n()}});
8
+ a.pauseControls&&d.hover(function(){clearInterval(q)},function(){n()})}}if("undefined"===typeof document.body.style.maxWidth&&m.maxwidth){var J=function(){f.css("width","100%");f.width()>w&&f.css("width",w)};J();c(K).bind("resize",function(){J()})}})}})(jQuery,this,0);
ml-slider.php CHANGED
@@ -6,7 +6,7 @@
6
  * Plugin Name: MetaSlider
7
  * Plugin URI: https://www.metaslider.com
8
  * Description: Easy to use slideshow plugin. Create SEO optimised responsive slideshows with Nivo Slider, Flex Slider, Coin Slider and Responsive Slides.
9
- * Version: 3.20.2
10
  * Author: MetaSlider
11
  * Author URI: https://www.metaslider.com
12
  * License: GPL-2.0+
@@ -35,7 +35,7 @@ class MetaSliderPlugin
35
  *
36
  * @var string
37
  */
38
- public $version = '3.20.2';
39
 
40
  /**
41
  * Pro installed version number
@@ -893,11 +893,14 @@ class MetaSliderPlugin
893
  *
894
  * @param array $elem1 The first element to comapre
895
  * @param array $elem2 The second element to comapr
896
- * @return bool
897
  */
898
  private function compare_elems($elem1, $elem2)
899
  {
900
- return $elem1['priority'] > $elem2['priority'];
 
 
 
901
  }
902
 
903
 
6
  * Plugin Name: MetaSlider
7
  * Plugin URI: https://www.metaslider.com
8
  * Description: Easy to use slideshow plugin. Create SEO optimised responsive slideshows with Nivo Slider, Flex Slider, Coin Slider and Responsive Slides.
9
+ * Version: 3.20.3
10
  * Author: MetaSlider
11
  * Author URI: https://www.metaslider.com
12
  * License: GPL-2.0+
35
  *
36
  * @var string
37
  */
38
+ public $version = '3.20.3';
39
 
40
  /**
41
  * Pro installed version number
893
  *
894
  * @param array $elem1 The first element to comapre
895
  * @param array $elem2 The second element to comapr
896
+ * @return int
897
  */
898
  private function compare_elems($elem1, $elem2)
899
  {
900
+ if ($elem1['priority'] == $elem2['priority']) {
901
+ return 0;
902
+ }
903
+ return $elem1['priority'] > $elem2['priority'] ? 1 : -1;
904
  }
905
 
906
 
readme.txt CHANGED
@@ -2,9 +2,9 @@
2
  Contributors: matchalabs, DavidAnderson, dnutbourne, kbat82
3
  Tags: slideshow, slider, image slider, carousel, gallery, flexslider, wordpress slider, nivoslider, rotating banner, responsive slideshow, seo slideshow, unsplash
4
  Requires at least: 3.5
5
- Stable tag: 3.20.2
6
  Requires PHP: 5.2
7
- Tested up to: 5.6
8
  License: GPLv2 or later
9
  License URI: https://www.gnu.org/licenses/gpl-2.0.html
10
 
@@ -12,100 +12,204 @@ The best slider, gallery, and carousel plugin for WordPress. Responsive and easy
12
 
13
  == Description ==
14
 
15
- Create a powerful, SEO-optimized slider, gallery, or carousel in minutes with the world’s #1 image and photo plugin!
16
 
17
  [vimeo https://vimeo.com/393891282]
18
 
19
- With WordPress’ most popular slider plugin, enhancing your blog or website couldn’t be easier: simply select images from your WordPress Media Library, drag and drop them into place, and then set the slide captions, links and SEO fields all from one page.
 
20
 
21
- With WordPress’s most popular slider and gallery plugin, enhancing your blog or website couldn’t be easier: simply select images and photos from your WordPress Media Library, and drag and drop them into place in your slider or gallery.
22
 
23
- MetaSlider sliders, galleries, and carousels are Gutenberg compatible.
 
24
 
25
- **Features**
 
26
 
27
- * Four responsive slideshow types with 20+ transition effects: Flex Slider 2, Nivo Slider, Responsive Slides, Coin Slider
28
- * Simple, easy-to-use slider and gallery building interface to build beautiful image and photo sliders and galleries that are fast and responsive
29
- * Access to free images and photos via Unsplash.com for sliders, galleries, and carousels
30
- * Create a responsive, SEO-optimized slideshow or gallery in seconds
31
- * Unrestricted support for image and photo sliders and galleries
32
- * Full width slider and gallery support
33
- * Drag and drop slider and gallery reordering
34
- * Intelligent slider image and photo cropping
35
- * Set slider image and photo crop position
36
- * Themes includes 11 free professional slideshow themes for sliders
37
- * Built in slider Gutenberg block, Widget and Shortcode
38
- * Loads of slider configuration options transition effect, speed, etc. (per slideshow)
39
- * Fully localized
40
- * WordPress Multi Site compatible
41
- * Compatible with translation plugins (WPML, PolyLang & qTranslate)
42
- * Extensive developer API (hooks & filters)
43
- * Fast only the minimum JavaScript/CSS is included on your page to power your slider, gallery, or carousel
44
- * Import/Export slideshows
45
- * Free basic support (covering installation issues and theme/plugin conflicts)
46
- * Lightbox support with the [MetaSlider Lightbox](https://wordpress.org/plugins/ml-slider-lightbox/) add-on
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
47
 
48
- **General:**
49
 
50
- * Simple and intuitive interface – perfect for individual users, developers & clients!
51
- * Fast requires only the minimum JavaScript/CSS on your page
52
- * Creatively responsive
53
 
54
- **Creative:**
55
 
56
- * Unrestricted full-width support for image slides, including captions, links, title texts and alt. texts.
57
- * Includes drag and drop slide reordering, intelligent image cropping, set image crop position.
58
- * Multiple slideshow configuration options (e.g. for speed, timing, plus many more!)
59
 
60
- **Other:**
 
61
 
62
- * Preview from within the admin area
63
- * Shortcode lets you add the slideshow anyway
64
- * Fully localized
65
- * WordPress Multi-site compatible, and
66
- * Compatible with translation plugins (WPML, PolyLang & qTranslate)
67
- * Developer Friendly, with extensive hooks & filters
68
 
69
- **Support:**
 
70
 
71
- * Includes free basic support (covering installation issues and theme/plugin conflicts).
72
 
73
- The <a href="https://www.metaslider.com/upgrade">MetaSlider Pro</a> includes added support for:
74
 
75
- * YouTube & Vimeo slides
76
- * HTML slides
77
- * Layer slides with CSS3 animations & HTML5 Video backgrounds
78
- * Full-featured text editor to include extra CSS
79
- * Dynamic Post Feed/Featured Image Slides (content slider)
80
- * Slide scheduling & slide visibility
81
- * Custom Themes - build your own theme
82
- * Thumbnail Navigation
83
- * Premium Support
84
 
85
- Read more and thanks to:
86
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
87
  * [Flex Slider](http://flexslider.woothemes.com/)
88
  * [Responsive Slides](http://responsiveslides.com/)
89
  * [Coin Slider](http://workshop.rs/projects/coin-slider/)
90
  * [Nivo Slider](https://github.com/Codeinwp/Nivo-Slider-jQuery)
91
 
92
- Find out more at <a href="https://www.metaslider.com">metaslider.com</a>
93
 
94
  Follow us on Twitter: [@wpmetaslider](https://twitter.com/wpmetaslider)
95
 
96
- **Privacy Policy:**
97
-
98
- MetaSlider uses the Appsero SDK to collect non-sensitive diagnostic data upon a user's confirmation. This data helps us to troubleshoot problems faster & make product improvements.
99
 
100
- MetaSlider only collects this diagnostic data when a user allows it via a notice in WP Admin or MetaSlider settings. View our [privacy policy](https://www.metaslider.com/privacy-policy).
101
 
102
  == Installation ==
103
 
104
  The easy way:
105
 
106
  1. Go to the Plugins Menu in WordPress
107
- 1. Search for "MetaSlider"
108
- 1. Click "Install"
109
 
110
  The not so easy way:
111
 
@@ -163,6 +267,10 @@ See https://www.metaslider.com/documentation/image-cropping/
163
 
164
  == Changelog ==
165
 
 
 
 
 
166
 
167
  = 3.20.2 - 2021/Feb/08 =
168
  * FIX: Removes various PHP notices
2
  Contributors: matchalabs, DavidAnderson, dnutbourne, kbat82
3
  Tags: slideshow, slider, image slider, carousel, gallery, flexslider, wordpress slider, nivoslider, rotating banner, responsive slideshow, seo slideshow, unsplash
4
  Requires at least: 3.5
5
+ Stable tag: 3.20.3
6
  Requires PHP: 5.2
7
+ Tested up to: 5.7
8
  License: GPLv2 or later
9
  License URI: https://www.gnu.org/licenses/gpl-2.0.html
10
 
12
 
13
  == Description ==
14
 
15
+ With MetaSlider you can create a powerful, SEO-optimized slider, slideshow, carousel, or gallery in minutes with the world’s #1 responsive plugin for image, photo, video (YouTube/Vimeo), layer, html, product, and post feed slides!
16
 
17
  [vimeo https://vimeo.com/393891282]
18
 
19
+ ### Overview
20
+ With MetaSlider and [MetaSlider Pro](https://www.metaslider.com/upgrade/), WordPress’s most popular slider plugin, enhancing your blog or website couldn’t be easier! Simply select images, photos, videos and more from your WordPress Media Library, drag and drop them into place, and then set the slide captions, links and SEO fields all from one page.
21
 
22
+ Meta Slider sliders, slideshows, carousels, and galleries are compatible with the WordPress Block Editor (Gutenberg).
23
 
24
+ ### For Site Owners
25
+ MetaSlider gives you the power to create a beautiful slider, slideshow, carousel, or gallery on your WordPress site, through the most simple and intuitive plugin interface of any WordPress image, photo, and video plugin. Show off your images, photographs and videos, latest work, or even the products in your online store. MetaSlider’s built-in SEO features ensure that people will have no trouble finding your site and the slider, slide show, gallery and carousel that you create!
26
 
27
+ ### For Developers
28
+ Create impressive sliders, slideshows, carousels, and galleries for your clients and feel confident that when they take over they will easily be able to maintain it. Meta Slider gives access to much of its functionality through WordPress filters and actions, so you can customise MetaSlider just the way you want.
29
 
30
+ ### For Theme Developers
31
+ Use MetaSlider’s powerful filters and actions to perfectly customise MetaSlider to your WordPress theme. A perfectly integrated slider, slide show, carousel, and gallery plugin will make your theme more engaging and effective for your users. MetaSlider supports any content type that your users might want: image, photo, video (YouTube/Vimeo), layer, html, product, and post feed.
32
+
33
+ ### MetaSlider Pro
34
+ For users looking to further customize a slider, slideshow, carousel, or gallery experience, we offer additional power features with [MetaSlider Pro](https://www.metaslider.com/upgrade/).
35
+
36
+ * **YouTube & Vimeo video slides**: Easily include responsive high definition YouTube & Vimeo videos in your slideshows.
37
+ * **HTML slides**: Create completely customised HTML slides using the inline editor. We’ve even built-in over 50 awesome CSS3 transitions!
38
+ * **Layer slides**: Create CSS3 animated HTML Layer slides using the built in Drag & Drop WYSIWYG editor.
39
+ * **Full-featured text editor to include extra CSS**
40
+ * **Dynamic Post Feed/Featured Image Slides**: Automatically show your latest blog posts, events or WooCommerce products in your slide show.
41
+ * **Slide scheduling & slide visibility**: Pro customers can now schedule sliders to appear only within specific dates.
42
+ * **Custom Themes – build your own theme**: MetaSlider now has 11 stunning new and free of charge professional slider themes for you to explore.
43
+ * **Thumbnail Navigation**: Give your slideshows a gallery feel with Thumbnail Navigation
44
+ * **Premium Support**
45
+
46
+ ### Four Slideshow Types
47
+ MetaSlider sliders, slideshows, and carousels feature four responsive slideshow types with 20+ transition effects: Flex Slider 2, Nivo Slider, Responsive Slides, Coin Slider. These sliders support image, photo, video (YouTube/Vimeo), layer, html, product, and post feed slides. Some slide types require [MetaSlider Pro](https://www.metaslider.com/upgrade/).
48
+
49
+ ### New Photo Gallery Experience
50
+ MetaSlider now features a new gallery experience that supports images and photos. With an easy drag and drop photo gallery builder, you can create a responsive and optimized photo gallery in seconds using the same WordPress Media Gallery images you are already using with MetaSlider sliders, slide shows, and carousels. The Meta Slider photo gallery can be added to any page using a simple shortcode, just like MetaSlider.
51
+
52
+ We are building the photo gallery following these principles:
53
+ * Fast - Using modern best practices, your responsive photo gallery will be faster than ever.
54
+ * SEO-focused - Search engines will love your photo gallery.
55
+ * Fully WCAG accessible - All users will be able to enjoy your responsive photo gallery.
56
+ * Easy to use, fun to master. With advanced photo gallery features for those who need them.
57
+
58
+ Our responsive photo gallery includes the easy to use features you would expect. You can create a photo gallery, add images to your gallery from the WordPress Media Library, drag and drop images and photos in your gallery to reorder, and add an image alt attribute to your images and photos to ensure that your gallery is SEO friendly. To make sure that your responsive photo gallery looks just right on your WordPress page or post, the Meta Slider gallery allows you to change the image and photo width, max width, min width, and spacing of your gallery.
59
+
60
+ The MetaSlider photo gallery also offers a distraction free fullscreen mode for gallery editing, and we will soon add to the photo gallery a dark mode and background color selection.
61
+
62
+ To add your responsive Meta Slider photo gallery to a page, simply click the “add to page” button in your gallery editor to generate a WordPress shortcode that you can drop onto any page or post.
63
+
64
+ The MetaSlider photo gallery is in development, and we would love to hear your feedback on the gallery and ideas for photo gallery features we should work on next.
65
+
66
+ ### Carousel
67
+ In addition to creating traditional sliders and slideshows, MetaSlider can be used to build carousels that allow you to show multiple images at any one time. MetaSlider carousels are compatible with all slide types: image, photo, video (YouTube/Vimeo), layer, html, product, and post feed slides. They’re ideal for showing a list of your latest posts or to use as a “Featured Product” slider for your homepage.
68
+
69
+ ### Simple and Easy to Use
70
+ MetaSlider has a beautiful, intuitive interface that will let you create stunning slideshows with ease. MetaSlider’s simple, easy-to-use slider and gallery building interface allows you to build a beautiful image, photo, video (YouTube/Vimeo), layer, html, product, and post feed slider, slideshow, carousel and gallery that is fast and responsive. With MetaSlider’s drag and drop reordering for your slider, slideshow, carousel, and gallery, you can easily iterate on a design to find the perfect look for your site.
71
+
72
+ Our simple and intuitive interface is perfect for individual users, developers & clients!
73
+
74
+ ### Support for Every Type of Content
75
+ MetaSlider provides unrestricted support for your image and photo slider, slide show, carousel, and gallery, including captions, links, title texts and alt text. With the [MetaSlider Pro](https://www.metaslider.com/upgrade/) add-on you can also add video (YouTube/Vimeo), layer, html, product, and post feed content to a slider, slide show or carousel.
76
+
77
+ You can use any combination of MetaSlider Pro slide types for sliders, slideshows, and carousels. For example you can have a slider with an image slide, a post feed slide (that can contain multiple posts), and a video slide. To create this simply add slides as you normally would, selecting the relevant slide type each time.
78
+
79
+ The Meta Slider gallery currently supports image and photo content that can be added directly from your WordPress Media Library.
80
+
81
+ ### Images
82
+ This may be the most basic slide type, but it still makes a great impression on any website! Present your beautiful images to a stunning slider, slide show, carousel, or gallery. Image slides are a basic slide type included in Meta Slider. An image slide will display an image with a caption. You can optionally link the slide to a URL of your choice.
83
+
84
+ Add images to your slide shows directly from your WordPress media manager, add the captions you want, set SEO fields and adjust the settings to display the slideshow just how you like it. Take it further with [MetaSlider Pro](https://www.metaslider.com/upgrade/) and use the Theme Editor to change the look of the navigation, the arrows, and the captions.
85
+
86
+ ### Photos
87
+ Use responsive image slides and filmstrip navigation to create a simple but effective slideshow to show off your beautiful photographs and other images. Add a photo lightbox plugin with our [MetaSlider Lightbox add-on](https://wordpress.org/plugins/ml-slider-lightbox/) to let people view the image as large as possible.
88
+
89
+ Take your photo portfolio further with Thumbnail Navigation as part of [MetaSlider Pro](https://www.metaslider.com/upgrade/). Thumbnail navigation for photos adds a carousel row of thumbnails below your slider or slideshow. You can customize the photo thumbnails to optimize the most engaging experience for your site visitors.
90
+
91
+ ### Animated Layer Slides
92
+ With [MetaSlider Pro](https://www.metaslider.com/upgrade/) you can create animated Layer Slides for your slider, slideshow, or carousel. Create CSS3 animated HTML Layer slides using the built in drag and drop editor. Meta Slider Layer Slides are ideal for easily creating eye catching slider presentations and slide shows using stunning effects with 50 animation options and a beautiful, easy to use interface. Layers can include text, html, images, photos, videos and even shortcodes! Layer Slide users also benefit from additional optimisation and customisation options, including using a video as the slide background and adjusting the padding and background colour of each layer.
93
+
94
+ ### Post Feed Slides
95
+ With [MetaSlider Pro](https://www.metaslider.com/upgrade/) you can create Post Feed slides to automatically show your latest content, blog posts, events or WooCommerce products in your slider, slide show, or carousel. MetaSlider Post Feed slides dynamically pull in slides based on your WordPress posts, using the featured image as the slide. They are also commonly known as “Content Sliders”, “Featured Sliders”, “Post Sliders” or “Dynamic Sliders”.
96
+
97
+ The post feed slide settings allow you to control which post types you want to display, the order to display them in and to restrict the posts to certain tags or categories. You can customise the caption template with a selection of template tags including {title}, {excerpt}, {author} and {date}. As with all our other slide types a Post Feed slide can appear in combination with any other slide type.
98
 
99
+ Post Feed slides can be used to show one post at a time but they work particularly well in carousel mode (as above) allowing you to show off a large number of your latest posts in a small amount of space.
100
 
101
+ ### Video Slides
102
+ With [MetaSlider Pro](https://www.metaslider.com/upgrade/) you can easily include responsive high definition YouTube & Vimeo videos in your slider, slideshow, or carousel. A video slide will display a video in your slide show directly from Vimeo or YouTube. The video will automatically pause if the user skips to the next slide.
 
103
 
104
+ Simply add the URL of your video to a YouTube or Vimeo slide and Meta Slider will add it to your slider, slideshow, or carousel. Either create a slide show full of you favourite videos or mix it in between slides of other types to get just the result that you want.
105
 
106
+ If you select the FlexSlider option with video slides you can take advantage of MetaSliders play/pause functionality. This means that you can have your slideshow autoplay but will pause when you set a video to play and carry on once the video has finished. You could even have the slider or slide show autoplay to give you a smooth, completely automatic presentation!
 
 
107
 
108
+ ### HTML Overlay Slides
109
+ With [MetaSlider Pro](https://www.metaslider.com/upgrade/) you can create completely customized HTML slides using the inline editor. We’ve even built-in over 50 awesome CSS3 transitions!
110
 
111
+ ### External URL Slides
112
+ With [MetaSlider Pro](https://www.metaslider.com/upgrade/) you can create External URL Slides to load images for your slider, slideshow, or carousel directly from non-WordPress sources, for example CDN’s or image hosts.
 
 
 
 
113
 
114
+ ### Sliders Make Any Site More Engaging
115
+ **Portfolio Sites**
116
 
117
+ Add some photos to your slider, slideshow, or carousel as layer slides, then add a layer covering the image set to a semi-transparent colour to give a fantastic overlay. Then add some text that animates in to give some details about your company. Select the stretch option so that your slider, slideshow, or carousel fills the screen to really make an impact. Underneath that, add an image slide showing some of your latest work. Add our [MetaSlider Lightbox add-on plugin](https://wordpress.org/plugins/ml-slider-lightbox/) to let you zoom-in on the work. Or you could add a post slide in carousel mode, set to display a post type of your client with their logo as the featured image.
118
 
119
+ **Photography Sites**
120
 
121
+ Use image slides and filmstrip navigation to create a simple but effective slider or slideshow to show off your beautiful photographs and other images. Add a lightbox plugin with our [MetaSlider Lightbox add-on](https://wordpress.org/plugins/ml-slider-lightbox/) to let people view the image as large as possible.
 
 
 
 
 
 
 
 
122
 
123
+ **Online Store**
124
 
125
+ With [MetaSlider Pro](https://www.metaslider.com/upgrade/), add a slider or slideshow with layer slides showing off your latest offers at the top and a carousel post slide at the bottom displaying your products post type. MetaSlider works nicely with Woocommerce and allows you to use information such as the product price in the post slide template.
126
+
127
+ **News Site or Blog**
128
+
129
+ With [MetaSlider Pro](https://www.metaslider.com/upgrade/), show off your featured story or use a Post Slide to show your latest posts with a slider, slideshow, or carousel.
130
+
131
+ Use simple image slides to show images relating to a featured story. Combine that with a slider or slide show, set to carousel mode, containing a post slide to display other stories. Use the Theme Editor to move and style the captions to fit your theme.
132
+
133
+ ### Optimized for Speed
134
+ MetaSlider is Fast – only the minimum JavaScript/CSS is included on your page to power your slider, slideshow, carousel, or gallery. We have optimized the Meta Slider plugin so that your images, photos, videos (YouTube/Vimeo), layers, html slides, products, and post feeds, load quickly without slowing down your website visitors’ experience.
135
+ ### Unsplash Integration
136
+ MetaSlider is integrated with Unsplash to access free images and photos via Unsplash.com for your slider, slideshow, carousel, and gallery. Finding the right image or photo can be the hardest part of creating a compelling slider, slide show, carousel, or gallery, and MetaSlider makes this process easy for you by never leaving your WordPress plugin interface.
137
+ ### Responsive and SEO-optimized
138
+ MetaSlider is a responsive, SEO-optimized WordPress plugin that lets you create a slider, slideshow, carousel, and gallery in seconds that are responsive and SEO-optimized.
139
+
140
+ Your MetaSlider responsive slider, slideshow, carousel, or gallery will adapt to the width of the device they’re being displayed on, including desktop, mobile or tablet. The content will be responsive regardless of the type of content you use: image, photo, video (YouTube/Vimeo), layer, html, product, and post feed slides.
141
+
142
+ The Meta Slider SEO tab lets you set image title and alt text for your slides. The title text should provide additional information about the slide, whereas the alt text should be used to describe the image itself. This data allows search engines to ‘read’ your slides and helps with search engine rankings!
143
+
144
+ ### Powerful Editing Options
145
+ In addition to MetaSlider simple and easy to use drag and drop features, our slider, slide show, gallery, and carousel plugin for WordPress offers many powerful features. Whether you are someone running a site who wants to make a great first impression with beautiful photos or someone making websites for clients, Meta Slider enables you to create the perfect customized experience. These editing features support any content type, including image, photo, video (YouTube/Vimeo), layer, html, product, and post feed.
146
+
147
+ * **Full width slider and gallery support** to match your site design, compatible with any WordPress theme that you choose to use.
148
+ * **Intelligent Image Cropping**: Unique Smart Crop functionality ensures your slides are perfectly resized. No fuss.
149
+ * **Smart Pad**: WWith cropping disabled, Smart Pad automatically adds padding to portrait images allowing you to mix portrait and landscape images and maintain a consistent slideshow height.
150
+ * **Drag and Drop editor**: Includes drag and drop slide reordering, intelligent image cropping, set image crop position.
151
+ * **Slider configuration**: transition effect, speed, timing, plus many more!
152
+ * **Live Theme Editor**: With [MetaSlider Pro](https://www.metaslider.com/upgrade/) you can create unlimited themes and preview them on-the-fly.
153
+ * **Thumbnail Navigation (Pro)**: [MetaSlider Pro](https://www.metaslider.com/upgrade/) adds in 2 new types of slider and slideshow navigation:
154
+ * “Thumbnail” will output a static row of thumbnails below the slideshow. Compatible with Flex and Nivo Slider.
155
+ * “Filmstrip” will output a carousel style row of thumbnails below the slideshow (with left and right navigation) – perfect if you have lots of slides! Compatible with Flex Slider.
156
+
157
+ ### Flexible Workflow
158
+ MetaSlider is optimized for a fast and flexible workflow. You can preview your slider, slideshow, carousel, or gallery directly from the editor in the Meta Slider dashboard. You can create the perfect design without switching back and forth between the dashboard and your page or post.
159
+
160
+ Adding a MetaSlider slider, slideshow, carousel, or gallery is as easy as adding a shortcode to your WordPress page or post. The shortcode workflow creates maximum flexibility for embedding Meta Slider exactly where it will be most effective.
161
+
162
+ ### Slider Themes
163
+ [MetaSlider Pro](https://www.metaslider.com/upgrade/) introduces the Meta Slider Theme Editor. MetaSlider Pro includes 11 free professional and responsive slide show themes for sliders, slideshows, and carousels. These themes enable you to effortlessly create beautiful and effective sliders, slideshows, and carousels designed by professionals.
164
+
165
+ The MetaSlider theme editor also allows you to create your own slider, slideshow, and carousel themes to use across your sites where you install Meta Slider. With these themes you can perfectly display any content, including image, photo, video (YouTube/Vimeo), layer, html, product, and post feed slides.
166
+
167
+ ### Import/Export Sliders
168
+ With slider, slideshow, and carousel import/export you can move your perfectly designed sliders between your websites or your clients’ websites. Instead of recreating your settings on every website, export your slider, slideshow, or carousel with one click and import it to another WordPress suite just as easily with Meta Slider.
169
+ Gutenberg Block Editor Ready
170
+ MetaSlider has been designed to also work seamlessly with the new Gutenberg WordPress Block Editor by using our Gutenberg block. We give you ultimate flexibility to embed Meta Slider into your WordPress website using a Gutenberg block, shortcode, or widget.
171
+
172
+ ### Fully Localized with Translation Support
173
+ MetaSlider is compatible with some of the most popular WordPress translation plugins, including WPML, PolyLang & qTranslate. You can make sure that your slider, slideshow, carousel, or gallery are fully localized for your audiences around the world. Localization supports any content you include in your slider, including image, photo, video (YouTube/Vimeo), layer, html, product, and post feed slides.
174
+
175
+ ### Lightbox Support
176
+ MetaSlider offers responsive image and photo lightbox support with the [MetaSlider Lightbox add-on](https://www.metaslider.com/upgrade/), allowing slides to be opened in a lightbox, using one of several supported lightbox plugins, including Easy FancyBox, Simple Lightbox, and FooBox Image Lightbox.
177
+
178
+ ### Plugin Integrations
179
+ MetaSlider is integrated with other popular WordPress plugins including WooCommerce, the Events Calendar, and WPML, to enable you to seamlessly show the most engaging content to your audience in a slider, slide show, carousel, or gallery.
180
+
181
+ Popular events management plugin The Events Calendar can be used in conjunction with MetaSlider’s new Post Feed Slides. MetaSlider detects if you have The Events Calendar plugin activated and offers you the ability to order by event date so you can show off your upcoming events in a slider, slideshow, or carousel.
182
+
183
+ ### Advanced Developer Features
184
+ In addition to being the easiest to use WordPress slider, slideshow, carousel, and gallery plugin, MetaSlider also offers advanced developer features that make Meta Slider the most powerful plugin to create a slider, slideshow, carousel, and gallery:
185
+
186
+ * Developer Friendly, with extensive hooks & filters - Meta Slider exposes its functionality through WordPress filters and actions, so you can customise Meta Slider just the way you want
187
+ * Advanced theme editor to design the perfect slider, slide show, or carousel
188
+ * WordPress Multi Site compatible
189
+
190
+ ## Special Thanks to the Sliders that we Support
191
+ You can read more about them here:
192
  * [Flex Slider](http://flexslider.woothemes.com/)
193
  * [Responsive Slides](http://responsiveslides.com/)
194
  * [Coin Slider](http://workshop.rs/projects/coin-slider/)
195
  * [Nivo Slider](https://github.com/Codeinwp/Nivo-Slider-jQuery)
196
 
197
+ Find out more at [metaslider.com](https://www.metaslider.com/)
198
 
199
  Follow us on Twitter: [@wpmetaslider](https://twitter.com/wpmetaslider)
200
 
201
+ ### Privacy Policy:
202
+ MetaSlider uses the Appsero SDK to collect non-sensitive diagnostic data upon a user’s confirmation. This data helps us to troubleshoot problems faster & make product improvements.
203
+ Meta Slider only collects this diagnostic data when a user allows it via a notice in WP Admin or MetaSlider settings. View our [privacy policy](https://www.metaslider.com/privacy-policy).
204
 
 
205
 
206
  == Installation ==
207
 
208
  The easy way:
209
 
210
  1. Go to the Plugins Menu in WordPress
211
+ 2. Search for "MetaSlider"
212
+ 3. Click "Install"
213
 
214
  The not so easy way:
215
 
267
 
268
  == Changelog ==
269
 
270
+ = 3.20.3 - 2021/Mar/02 =
271
+ * FIX: Update responsive slides to improve jQuery compatability
272
+ * FIX: Updates uasort to be PHP8 compatible
273
+ * FIX: Fixes a typo in the export callback
274
 
275
  = 3.20.2 - 2021/Feb/08 =
276
  * FIX: Removes various PHP notices
seasonal-discounts.json CHANGED
@@ -1,18 +1,18 @@
1
  {
2
  "blackfriday": {
3
- "discount_code": "blackfridaysale2020",
4
- "valid_from": "2020-11-20 00:00:00",
5
- "valid_to": "2020-11-30 23:59:59"
6
  },
7
  "christmas": {
8
- "discount_code": "christmassale2020",
9
- "valid_from": "2020-12-01 00:00:00",
10
- "valid_to": "2020-12-25 23:59:59"
11
  },
12
  "newyear": {
13
- "discount_code": "newyearsale2021",
14
- "valid_from": "2020-12-26 00:00:00",
15
- "valid_to": "2021-01-14 23:59:59"
16
  },
17
  "spring": {
18
  "discount_code": "springsale2021",
1
  {
2
  "blackfriday": {
3
+ "discount_code": "blackfridaysale2021",
4
+ "valid_from": "2021-11-20 00:00:00",
5
+ "valid_to": "2021-11-30 23:59:59"
6
  },
7
  "christmas": {
8
+ "discount_code": "christmassale2021",
9
+ "valid_from": "2021-12-01 00:00:00",
10
+ "valid_to": "2021-12-25 23:59:59"
11
  },
12
  "newyear": {
13
+ "discount_code": "newyearsale2022",
14
+ "valid_from": "2021-12-26 00:00:00",
15
+ "valid_to": "2022-01-14 23:59:59"
16
  },
17
  "spring": {
18
  "discount_code": "springsale2021",