WP Staging – DB & File Duplicator & Migration - Version 2.7.2

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 Icon 128x128 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 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.3
12
- Stable tag: 2.7.1
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 ComposerAutoloaderInitc2c8fce0bd7d21d1b2bc76515b028e91::getLoader();
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
- Files: *
7
- Copyright: 2016, Nils Adermann <naderman@naderman.de>
8
- 2016, Jordi Boggiano <j.boggiano@seld.be>
9
- License: Expat
10
 
11
- Files: src/Composer/Util/TlsHelper.php
12
- Copyright: 2016, Nils Adermann <naderman@naderman.de>
13
- 2016, Jordi Boggiano <j.boggiano@seld.be>
14
- 2013, Evan Coury <me@evancoury.com>
15
- License: Expat and BSD-2-Clause
 
16
 
17
- License: BSD-2-Clause
18
- Redistribution and use in source and binary forms, with or without modification,
19
- are permitted provided that the following conditions are met:
20
- .
21
- * Redistributions of source code must retain the above copyright notice,
22
- this list of conditions and the following disclaimer.
23
- .
24
- * Redistributions in binary form must reproduce the above copyright notice,
25
- this list of conditions and the following disclaimer in the documentation
26
- and/or other materials provided with the distribution.
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 ComposerAutoloaderInitc2c8fce0bd7d21d1b2bc76515b028e91
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('ComposerAutoloaderInitc2c8fce0bd7d21d1b2bc76515b028e91', 'loadClassLoader'), true, true);
23
  self::$loader = $loader = new \Composer\Autoload\ClassLoader();
24
- spl_autoload_unregister(array('ComposerAutoloaderInitc2c8fce0bd7d21d1b2bc76515b028e91', 'loadClassLoader'));
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\ComposerStaticInitc2c8fce0bd7d21d1b2bc76515b028e91::getInitializer($loader));
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 ComposerStaticInitc2c8fce0bd7d21d1b2bc76515b028e91
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 = ComposerStaticInitc2c8fce0bd7d21d1b2bc76515b028e91::$prefixLengthsPsr4;
40
- $loader->prefixDirsPsr4 = ComposerStaticInitc2c8fce0bd7d21d1b2bc76515b028e91::$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.1
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.1');
43
  }
44
 
45
  // Compatible up to WordPress Version
46
  if (!defined('WPSTG_COMPATIBLE')) {
47
- define('WPSTG_COMPATIBLE', '5.3.2');
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