Version Description
- New: Compatible up to WordPress 5.4
- Fix: Fatal error on WordPress 4.6 and older
Download this release
Release Info
Developer | ReneHermi |
Plugin | WP Staging – DB & File Duplicator & Migration |
Version | 2.7.2 |
Comparing to | |
See all releases |
Code changes from version 2.7.1 to 2.7.2
- Service/AbstractPlugin.php +13 -1
- readme.txt +7 -9
- vendor/autoload.php +1 -1
- vendor/composer/ClassLoader.php +2 -2
- vendor/composer/LICENSE +17 -52
- vendor/composer/autoload_real.php +7 -4
- vendor/composer/autoload_static.php +3 -3
- wp-staging.php +3 -3
Service/AbstractPlugin.php
CHANGED
@@ -121,6 +121,18 @@ abstract class AbstractPlugin implements PluginInterface
|
|
121 |
return $this->container;
|
122 |
}
|
123 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
124 |
private function loadLanguages()
|
125 |
{
|
126 |
/** @noinspection NullPointerExceptionInspection */
|
@@ -130,7 +142,7 @@ abstract class AbstractPlugin implements PluginInterface
|
|
130 |
$languagesDirectory = apply_filters($this->getSlug() . '_languages_directory', $languagesDirectory);
|
131 |
|
132 |
// Traditional WP plugin locale filter
|
133 |
-
$locale = apply_filters('plugin_locale', get_user_locale(), 'wp-staging');
|
134 |
$moFile = sprintf('%1$s-%2$s.mo', 'wp-staging', $locale);
|
135 |
|
136 |
// Setup paths to current locale file
|
121 |
return $this->container;
|
122 |
}
|
123 |
|
124 |
+
/**
|
125 |
+
* get_user_locale exists since WP 4.8 only
|
126 |
+
* @return string
|
127 |
+
*/
|
128 |
+
private function get_user_locale(){
|
129 |
+
if (function_exists('get_user_locale')){
|
130 |
+
return get_user_locale();
|
131 |
+
}
|
132 |
+
|
133 |
+
return get_locale();
|
134 |
+
}
|
135 |
+
|
136 |
private function loadLanguages()
|
137 |
{
|
138 |
/** @noinspection NullPointerExceptionInspection */
|
142 |
$languagesDirectory = apply_filters($this->getSlug() . '_languages_directory', $languagesDirectory);
|
143 |
|
144 |
// Traditional WP plugin locale filter
|
145 |
+
$locale = apply_filters('plugin_locale', $this->get_user_locale(), 'wp-staging');
|
146 |
$moFile = sprintf('%1$s-%2$s.mo', 'wp-staging', $locale);
|
147 |
|
148 |
// Setup paths to current locale file
|
readme.txt
CHANGED
@@ -8,8 +8,8 @@ License: GPLv2 or later
|
|
8 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
9 |
Tags: staging, duplication, cloning, clone, migration, sandbox, test site, testing, backup, post, admin, administration, duplicate posts
|
10 |
Requires at least: 3.6+
|
11 |
-
Tested up to: 5.
|
12 |
-
Stable tag: 2.7.
|
13 |
Requires PHP: 5.3
|
14 |
|
15 |
A duplicator plugin - clone/move, duplicate & migrate live websites to independent staging and development sites that are accessible by authorized users only.
|
@@ -153,6 +153,10 @@ https://wp-staging.com
|
|
153 |
|
154 |
== Changelog ==
|
155 |
|
|
|
|
|
|
|
|
|
156 |
= 2.7.1 =
|
157 |
* HotFix: Prefix hotfix failed
|
158 |
|
@@ -247,10 +251,4 @@ Complete changelog: [https://wp-staging.com/wp-staging-changelog](https://wp-sta
|
|
247 |
|
248 |
== Upgrade Notice ==
|
249 |
* Install this version for supporting latest WordPress version
|
250 |
-
|
251 |
-
* Fix: Can not login to staging site under certain circumstances
|
252 |
-
* Fix: Use user selected language setting instead global site based one
|
253 |
-
* Fix: Fatal Error: curl_version() not defined in SystemInfo.php
|
254 |
-
* New: Refactored structure for easier maintenance
|
255 |
-
* New: Core support for WP Staging snapshots
|
256 |
-
* New: Implementing of UnitTests
|
8 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
9 |
Tags: staging, duplication, cloning, clone, migration, sandbox, test site, testing, backup, post, admin, administration, duplicate posts
|
10 |
Requires at least: 3.6+
|
11 |
+
Tested up to: 5.4
|
12 |
+
Stable tag: 2.7.2
|
13 |
Requires PHP: 5.3
|
14 |
|
15 |
A duplicator plugin - clone/move, duplicate & migrate live websites to independent staging and development sites that are accessible by authorized users only.
|
153 |
|
154 |
== Changelog ==
|
155 |
|
156 |
+
= 2.7.2 =
|
157 |
+
* New: Compatible up to WordPress 5.4
|
158 |
+
* Fix: Fatal error on WordPress 4.6 and older
|
159 |
+
|
160 |
= 2.7.1 =
|
161 |
* HotFix: Prefix hotfix failed
|
162 |
|
251 |
|
252 |
== Upgrade Notice ==
|
253 |
* Install this version for supporting latest WordPress version
|
254 |
+
* Fix: Fatal error on WordPress 4.6 and older
|
|
|
|
|
|
|
|
|
|
|
|
vendor/autoload.php
CHANGED
@@ -4,4 +4,4 @@
|
|
4 |
|
5 |
require_once __DIR__ . '/composer/autoload_real.php';
|
6 |
|
7 |
-
return
|
4 |
|
5 |
require_once __DIR__ . '/composer/autoload_real.php';
|
6 |
|
7 |
+
return ComposerAutoloaderInitee22bbb45ac7485b1bb51f603f013aa2::getLoader();
|
vendor/composer/ClassLoader.php
CHANGED
@@ -279,7 +279,7 @@ class ClassLoader
|
|
279 |
*/
|
280 |
public function setApcuPrefix($apcuPrefix)
|
281 |
{
|
282 |
-
$this->apcuPrefix = function_exists('apcu_fetch') && ini_get('apc.enabled') ? $apcuPrefix : null;
|
283 |
}
|
284 |
|
285 |
/**
|
@@ -377,7 +377,7 @@ class ClassLoader
|
|
377 |
$subPath = $class;
|
378 |
while (false !== $lastPos = strrpos($subPath, '\\')) {
|
379 |
$subPath = substr($subPath, 0, $lastPos);
|
380 |
-
$search = $subPath.'\\';
|
381 |
if (isset($this->prefixDirsPsr4[$search])) {
|
382 |
$pathEnd = DIRECTORY_SEPARATOR . substr($logicalPathPsr4, $lastPos + 1);
|
383 |
foreach ($this->prefixDirsPsr4[$search] as $dir) {
|
279 |
*/
|
280 |
public function setApcuPrefix($apcuPrefix)
|
281 |
{
|
282 |
+
$this->apcuPrefix = function_exists('apcu_fetch') && filter_var(ini_get('apc.enabled'), FILTER_VALIDATE_BOOLEAN) ? $apcuPrefix : null;
|
283 |
}
|
284 |
|
285 |
/**
|
377 |
$subPath = $class;
|
378 |
while (false !== $lastPos = strrpos($subPath, '\\')) {
|
379 |
$subPath = substr($subPath, 0, $lastPos);
|
380 |
+
$search = $subPath . '\\';
|
381 |
if (isset($this->prefixDirsPsr4[$search])) {
|
382 |
$pathEnd = DIRECTORY_SEPARATOR . substr($logicalPathPsr4, $lastPos + 1);
|
383 |
foreach ($this->prefixDirsPsr4[$search] as $dir) {
|
vendor/composer/LICENSE
CHANGED
@@ -1,56 +1,21 @@
|
|
1 |
-
Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
|
2 |
-
Upstream-Name: Composer
|
3 |
-
Upstream-Contact: Jordi Boggiano <j.boggiano@seld.be>
|
4 |
-
Source: https://github.com/composer/composer
|
5 |
|
6 |
-
|
7 |
-
Copyright: 2016, Nils Adermann <naderman@naderman.de>
|
8 |
-
2016, Jordi Boggiano <j.boggiano@seld.be>
|
9 |
-
License: Expat
|
10 |
|
11 |
-
|
12 |
-
|
13 |
-
|
14 |
-
|
15 |
-
|
|
|
16 |
|
17 |
-
|
18 |
-
|
19 |
-
|
20 |
-
|
21 |
-
|
22 |
-
|
23 |
-
|
24 |
-
|
25 |
-
|
26 |
-
|
27 |
-
.
|
28 |
-
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
29 |
-
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
30 |
-
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
31 |
-
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
|
32 |
-
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
33 |
-
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
34 |
-
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
35 |
-
ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
36 |
-
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
37 |
-
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
38 |
|
39 |
-
License: Expat
|
40 |
-
Permission is hereby granted, free of charge, to any person obtaining a copy
|
41 |
-
of this software and associated documentation files (the "Software"), to deal
|
42 |
-
in the Software without restriction, including without limitation the rights
|
43 |
-
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
44 |
-
copies of the Software, and to permit persons to whom the Software is furnished
|
45 |
-
to do so, subject to the following conditions:
|
46 |
-
.
|
47 |
-
The above copyright notice and this permission notice shall be included in all
|
48 |
-
copies or substantial portions of the Software.
|
49 |
-
.
|
50 |
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
51 |
-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
52 |
-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
53 |
-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
54 |
-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
55 |
-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
56 |
-
THE SOFTWARE.
|
|
|
|
|
|
|
|
|
1 |
|
2 |
+
Copyright (c) Nils Adermann, Jordi Boggiano
|
|
|
|
|
|
|
3 |
|
4 |
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
5 |
+
of this software and associated documentation files (the "Software"), to deal
|
6 |
+
in the Software without restriction, including without limitation the rights
|
7 |
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
8 |
+
copies of the Software, and to permit persons to whom the Software is furnished
|
9 |
+
to do so, subject to the following conditions:
|
10 |
|
11 |
+
The above copyright notice and this permission notice shall be included in all
|
12 |
+
copies or substantial portions of the Software.
|
13 |
+
|
14 |
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
15 |
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
16 |
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
17 |
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
18 |
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
19 |
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
20 |
+
THE SOFTWARE.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
21 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
vendor/composer/autoload_real.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
|
3 |
// autoload_real.php @generated by Composer
|
4 |
|
5 |
-
class
|
6 |
{
|
7 |
private static $loader;
|
8 |
|
@@ -13,21 +13,24 @@ class ComposerAutoloaderInitc2c8fce0bd7d21d1b2bc76515b028e91
|
|
13 |
}
|
14 |
}
|
15 |
|
|
|
|
|
|
|
16 |
public static function getLoader()
|
17 |
{
|
18 |
if (null !== self::$loader) {
|
19 |
return self::$loader;
|
20 |
}
|
21 |
|
22 |
-
spl_autoload_register(array('
|
23 |
self::$loader = $loader = new \Composer\Autoload\ClassLoader();
|
24 |
-
spl_autoload_unregister(array('
|
25 |
|
26 |
$useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded());
|
27 |
if ($useStaticLoader) {
|
28 |
require_once __DIR__ . '/autoload_static.php';
|
29 |
|
30 |
-
call_user_func(\Composer\Autoload\
|
31 |
} else {
|
32 |
$map = require __DIR__ . '/autoload_namespaces.php';
|
33 |
foreach ($map as $namespace => $path) {
|
2 |
|
3 |
// autoload_real.php @generated by Composer
|
4 |
|
5 |
+
class ComposerAutoloaderInitee22bbb45ac7485b1bb51f603f013aa2
|
6 |
{
|
7 |
private static $loader;
|
8 |
|
13 |
}
|
14 |
}
|
15 |
|
16 |
+
/**
|
17 |
+
* @return \Composer\Autoload\ClassLoader
|
18 |
+
*/
|
19 |
public static function getLoader()
|
20 |
{
|
21 |
if (null !== self::$loader) {
|
22 |
return self::$loader;
|
23 |
}
|
24 |
|
25 |
+
spl_autoload_register(array('ComposerAutoloaderInitee22bbb45ac7485b1bb51f603f013aa2', 'loadClassLoader'), true, true);
|
26 |
self::$loader = $loader = new \Composer\Autoload\ClassLoader();
|
27 |
+
spl_autoload_unregister(array('ComposerAutoloaderInitee22bbb45ac7485b1bb51f603f013aa2', 'loadClassLoader'));
|
28 |
|
29 |
$useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded());
|
30 |
if ($useStaticLoader) {
|
31 |
require_once __DIR__ . '/autoload_static.php';
|
32 |
|
33 |
+
call_user_func(\Composer\Autoload\ComposerStaticInitee22bbb45ac7485b1bb51f603f013aa2::getInitializer($loader));
|
34 |
} else {
|
35 |
$map = require __DIR__ . '/autoload_namespaces.php';
|
36 |
foreach ($map as $namespace => $path) {
|
vendor/composer/autoload_static.php
CHANGED
@@ -4,7 +4,7 @@
|
|
4 |
|
5 |
namespace Composer\Autoload;
|
6 |
|
7 |
-
class
|
8 |
{
|
9 |
public static $prefixLengthsPsr4 = array (
|
10 |
'W' =>
|
@@ -36,8 +36,8 @@ class ComposerStaticInitc2c8fce0bd7d21d1b2bc76515b028e91
|
|
36 |
public static function getInitializer(ClassLoader $loader)
|
37 |
{
|
38 |
return \Closure::bind(function () use ($loader) {
|
39 |
-
$loader->prefixLengthsPsr4 =
|
40 |
-
$loader->prefixDirsPsr4 =
|
41 |
|
42 |
}, null, ClassLoader::class);
|
43 |
}
|
4 |
|
5 |
namespace Composer\Autoload;
|
6 |
|
7 |
+
class ComposerStaticInitee22bbb45ac7485b1bb51f603f013aa2
|
8 |
{
|
9 |
public static $prefixLengthsPsr4 = array (
|
10 |
'W' =>
|
36 |
public static function getInitializer(ClassLoader $loader)
|
37 |
{
|
38 |
return \Closure::bind(function () use ($loader) {
|
39 |
+
$loader->prefixLengthsPsr4 = ComposerStaticInitee22bbb45ac7485b1bb51f603f013aa2::$prefixLengthsPsr4;
|
40 |
+
$loader->prefixDirsPsr4 = ComposerStaticInitee22bbb45ac7485b1bb51f603f013aa2::$prefixDirsPsr4;
|
41 |
|
42 |
}, null, ClassLoader::class);
|
43 |
}
|
wp-staging.php
CHANGED
@@ -7,7 +7,7 @@
|
|
7 |
* Author: WP-Staging
|
8 |
* Author URI: https://wp-staging.com
|
9 |
* Contributors: ReneHermi, ilgityildirim
|
10 |
-
* Version: 2.7.
|
11 |
* Text Domain: wp-staging
|
12 |
* Domain Path: /languages/
|
13 |
*
|
@@ -39,12 +39,12 @@ if (!defined('WPSTG_PLUGIN_SLUG')) {
|
|
39 |
|
40 |
// Plugin Version
|
41 |
if (!defined('WPSTG_VERSION')) {
|
42 |
-
define('WPSTG_VERSION', '2.7.
|
43 |
}
|
44 |
|
45 |
// Compatible up to WordPress Version
|
46 |
if (!defined('WPSTG_COMPATIBLE')) {
|
47 |
-
define('WPSTG_COMPATIBLE', '5.
|
48 |
}
|
49 |
|
50 |
// Absolute path to plugin
|
7 |
* Author: WP-Staging
|
8 |
* Author URI: https://wp-staging.com
|
9 |
* Contributors: ReneHermi, ilgityildirim
|
10 |
+
* Version: 2.7.2
|
11 |
* Text Domain: wp-staging
|
12 |
* Domain Path: /languages/
|
13 |
*
|
39 |
|
40 |
// Plugin Version
|
41 |
if (!defined('WPSTG_VERSION')) {
|
42 |
+
define('WPSTG_VERSION', '2.7.2');
|
43 |
}
|
44 |
|
45 |
// Compatible up to WordPress Version
|
46 |
if (!defined('WPSTG_COMPATIBLE')) {
|
47 |
+
define('WPSTG_COMPATIBLE', '5.4.0');
|
48 |
}
|
49 |
|
50 |
// Absolute path to plugin
|