Version Description
- New: Compatible up to WordPress 5.8.1
- Enh: Refactor the wp_login action hook to work with different parameter count than the one in WordPress Core #1223
- Enh: Sort new staging backup sites in descending order by creation time #1226
- Enh: Warn if creating a backup in PHP 32 bit version #1231
- Enh: Update the backup upload success message #1221
- Enh: Show a notice if there is a new WP STAGING free version of the backup plugin #1250
- Enh: Rename db option wpstg_existing_clones_beta to wpstg_staging_sites #1211
- Enh: Update the warning message shown when the delete process of the staging backup site fails #1257
- Enh: Allow use of REST API on staging backup sites without login #1287
- Enh: Add new EDD software licensing updater for the pro version of the WP STAGING backup plugin #1294
- Fix: New pro version does not recognize staging backup sites created with older free version #1293
- Fix: Fix a rare issue that could happen when creating a new staging backup site or restoring a backup when there is a row with primary key with value zero #1271
- Fix: Try to repair MyISAM table if it's corrupt when creating a Backup #1222
- Fix: Fix an issue on backup creation that would cause a database export to loop when encountering a table with negative integers or zeros as a primary key value #1251
- Fix: Lock specific tables while exporting a backup, to prevent a rare duplicated row issue #1245
- Fix: If the memory exhausts during a database export using the Backup feature, lower the memory usage/speed of the export and try again automatically #1230
- Fix: Prevent failure of adding database to backup from causing a loop #1231
- Fix: Fix issue when old backup clones from version 1.1.6 or lower replaces the existing clones from later version when upgrading from FREE to PRO version #1233
- Fix: Fix inconsistent Unselect All Tables button's action #1243
- Fix: Replace undefined date with proper formatted date during backups for some warning and critical messages #1244
- Fix: Split file scanning of wp-content into scanning of plugins, themes, uploads and other directories to reduce timeout issues #1247
- Fix: Rename .user.ini to .user.ini.bak after cloning to reduce fatal errors on staging backup site. Also show a notice. #1255
- Fix: Skip scanning the root directory if all other directories are unselected before starting a backup staging site #1256
- Fix: Show correct insufficient space message instead of permission error if unable to copy or create a backup site due to insufficient space #1283
- Fix: Fix showing of error when unable to count tables rows and wrap table name when fetching rows during backup #1285
- Fix: Remove custom error handler that could cause errors due to notices being thrown #1292
- Fix: Fix an error that would occur when PHP lacked permission to get the size of a directory when pushing a staging backup site to production #1295
- Dev: Set the version of Selenium containers to 3.141.59-20210713 to avoid issues with broken latest version of selenium #1234
Download this release
Release Info
Developer | ReneHermi |
Plugin | WP Staging – DB & File Duplicator & Migration |
Version | 2.8.8 |
Comparing to | |
See all releases |
Code changes from version 2.8.7 to 2.8.8
- .wordpress-org/banner-1544x500.png +0 -0
- .wordpress-org/banner-772x250.png +0 -0
- Backend/Modules/Jobs/Files.php +4 -2
- Backend/Modules/Jobs/Job.php +8 -2
- Backend/Notices/BooleanNotice.php +1 -1
- Backend/Notices/OutdatedWpStagingNotice.php +1 -2
- Backend/Upgrade/Upgrade.php +3 -1
- Framework/Filesystem/DiskWriteCheck.php +8 -5
- Framework/Filesystem/Filesystem.php +9 -1
- Framework/Rest/Rest.php +45 -0
- Framework/Staging/Sites.php +34 -22
- Framework/Traits/MySQLRowsGeneratorTrait.php +1 -1
- Frontend/Frontend.php +6 -0
- constantsFree.php +2 -2
- opcacheBootstrap.php +1 -1
- readme.txt +59 -1
- vendor_wpstg/autoload/src.php +1 -0
- wp-staging.php +1 -1
.wordpress-org/banner-1544x500.png
CHANGED
Binary file
|
.wordpress-org/banner-772x250.png
CHANGED
Binary file
|
Backend/Modules/Jobs/Files.php
CHANGED
@@ -462,8 +462,10 @@ class Files extends JobExecutable
|
|
462 |
$destinationPath = $this->destination . $relativePath;
|
463 |
$destinationDirectory = dirname($destinationPath);
|
464 |
|
465 |
-
|
466 |
-
|
|
|
|
|
467 |
return false;
|
468 |
}
|
469 |
|
462 |
$destinationPath = $this->destination . $relativePath;
|
463 |
$destinationDirectory = dirname($destinationPath);
|
464 |
|
465 |
+
$fs = new Filesystem();
|
466 |
+
$isDirectoryNotCreated = !is_dir($destinationDirectory) && !$fs->mkdir($destinationDirectory) && !is_dir($destinationDirectory);
|
467 |
+
if ($isDirectoryNotCreated) {
|
468 |
+
$this->log("Files: Can not create directory {$destinationDirectory}." . $fs->getLogs()[0], Logger::TYPE_ERROR);
|
469 |
return false;
|
470 |
}
|
471 |
|
Backend/Modules/Jobs/Job.php
CHANGED
@@ -100,8 +100,14 @@ abstract class Job implements ShutdownableInterface
|
|
100 |
// Commit logs
|
101 |
if ($this->logger instanceof Logger) {
|
102 |
if (isset($this->options->mainJob)) {
|
103 |
-
|
104 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
105 |
}
|
106 |
|
107 |
$this->logger->commit();
|
100 |
// Commit logs
|
101 |
if ($this->logger instanceof Logger) {
|
102 |
if (isset($this->options->mainJob)) {
|
103 |
+
if (array_key_exists('datetime', $this->options->existingClones[$this->options->clone])) {
|
104 |
+
$timestamp = date('Y-m-d_H-i-s', $this->options->existingClones[$this->options->clone]['datetime']);
|
105 |
+
} else {
|
106 |
+
// This is a fallback for older staging sites that did not have the datetime property.
|
107 |
+
$timestamp = sanitize_file_name($this->options->clone) . '_' . date('Y-m-d', time());
|
108 |
+
}
|
109 |
+
|
110 |
+
$this->logger->setFileName($this->options->mainJob . '_' . $timestamp);
|
111 |
}
|
112 |
|
113 |
$this->logger->commit();
|
Backend/Notices/BooleanNotice.php
CHANGED
@@ -5,7 +5,7 @@ namespace WPStaging\Backend\Notices;
|
|
5 |
/**
|
6 |
* Class BooleanNotice
|
7 |
*
|
8 |
-
* This class is used to reduce the boilerplate code for boolean notices
|
9 |
*
|
10 |
* @package WPStaging\Backend\Notices;
|
11 |
*/
|
5 |
/**
|
6 |
* Class BooleanNotice
|
7 |
*
|
8 |
+
* This class is used to reduce the boilerplate code for dismissible boolean notices
|
9 |
*
|
10 |
* @package WPStaging\Backend\Notices;
|
11 |
*/
|
Backend/Notices/OutdatedWpStagingNotice.php
CHANGED
@@ -7,8 +7,7 @@ use WPStaging\Core\WPStaging;
|
|
7 |
/**
|
8 |
* Class OutdatedWpStagingNotice
|
9 |
*
|
10 |
-
*
|
11 |
-
*
|
12 |
* @see \WPStaging\Backend\Notices\Notices
|
13 |
*/
|
14 |
class OutdatedWpStagingNotice
|
7 |
/**
|
8 |
* Class OutdatedWpStagingNotice
|
9 |
*
|
10 |
+
* Show a notification if installed WP STAGING free version is outdated and if there is a new plugin update available
|
|
|
11 |
* @see \WPStaging\Backend\Notices\Notices
|
12 |
*/
|
13 |
class OutdatedWpStagingNotice
|
Backend/Upgrade/Upgrade.php
CHANGED
@@ -74,7 +74,9 @@ class Upgrade
|
|
74 |
*/
|
75 |
private function upgrade2_8_7()
|
76 |
{
|
77 |
-
(
|
|
|
|
|
78 |
}
|
79 |
|
80 |
/**
|
74 |
*/
|
75 |
private function upgrade2_8_7()
|
76 |
{
|
77 |
+
if (version_compare($this->previousVersion, '2.8.7', '<')) {
|
78 |
+
(new Sites())->upgradeStagingSitesOption();
|
79 |
+
}
|
80 |
}
|
81 |
|
82 |
/**
|
Framework/Filesystem/DiskWriteCheck.php
CHANGED
@@ -55,14 +55,17 @@ class DiskWriteCheck
|
|
55 |
throw new \RuntimeException('The path must be a directory.');
|
56 |
}
|
57 |
|
58 |
-
set_error_handler(function () {
|
59 |
-
throw new \RuntimeException();
|
60 |
-
});
|
61 |
$freeSpaceInBytes = @disk_free_space($path);
|
62 |
-
restore_error_handler();
|
63 |
|
64 |
if ($freeSpaceInBytes === false) {
|
65 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
66 |
}
|
67 |
|
68 |
if (!is_numeric($freeSpaceInBytes)) {
|
55 |
throw new \RuntimeException('The path must be a directory.');
|
56 |
}
|
57 |
|
|
|
|
|
|
|
58 |
$freeSpaceInBytes = @disk_free_space($path);
|
|
|
59 |
|
60 |
if ($freeSpaceInBytes === false) {
|
61 |
+
$message = '';
|
62 |
+
$error = error_get_last();
|
63 |
+
|
64 |
+
if (is_array($error) && array_key_exists('message', $error)) {
|
65 |
+
$message = $error['message'];
|
66 |
+
}
|
67 |
+
|
68 |
+
throw new \RuntimeException($message);
|
69 |
}
|
70 |
|
71 |
if (!is_numeric($freeSpaceInBytes)) {
|
Framework/Filesystem/Filesystem.php
CHANGED
@@ -156,7 +156,10 @@ class Filesystem extends FilterableDirectoryIterator
|
|
156 |
{
|
157 |
$path = $this->findPath($path);
|
158 |
|
159 |
-
|
|
|
|
|
|
|
160 |
if (defined('WPSTG_DEBUG') && WPSTG_DEBUG) {
|
161 |
error_log("Failed to create directory $path");
|
162 |
}
|
@@ -734,4 +737,9 @@ class Filesystem extends FilterableDirectoryIterator
|
|
734 |
|
735 |
return $path;
|
736 |
}
|
|
|
|
|
|
|
|
|
|
|
737 |
}
|
156 |
{
|
157 |
$path = $this->findPath($path);
|
158 |
|
159 |
+
set_error_handler([$this, 'handleMkdirError']);
|
160 |
+
$result = wp_mkdir_p($path);
|
161 |
+
restore_error_handler();
|
162 |
+
if (!$result) {
|
163 |
if (defined('WPSTG_DEBUG') && WPSTG_DEBUG) {
|
164 |
error_log("Failed to create directory $path");
|
165 |
}
|
737 |
|
738 |
return $path;
|
739 |
}
|
740 |
+
|
741 |
+
public function handleMkdirError($errno, $errstr)
|
742 |
+
{
|
743 |
+
$this->logs[] = "Unable to create directory. Reason: " . $errstr;
|
744 |
+
}
|
745 |
}
|
Framework/Rest/Rest.php
ADDED
@@ -0,0 +1,45 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
|
3 |
+
namespace WPStaging\Framework\Rest;
|
4 |
+
|
5 |
+
/**
|
6 |
+
* Class Rest
|
7 |
+
*
|
8 |
+
* @package WPStaging\Framework\Rest
|
9 |
+
*/
|
10 |
+
class Rest
|
11 |
+
{
|
12 |
+
// Is Rest URL
|
13 |
+
public function isRestUrl()
|
14 |
+
{
|
15 |
+
// Early bail if uri is empty
|
16 |
+
if (empty($_SERVER['REQUEST_URI'])) {
|
17 |
+
return false;
|
18 |
+
}
|
19 |
+
|
20 |
+
$requestPath = trim($_SERVER['REQUEST_URI'], '/');
|
21 |
+
|
22 |
+
$url = trailingslashit(get_home_url(get_current_blog_id(), ''));
|
23 |
+
// nginx only allows HTTP/1.0 methods when redirecting from / to /index.php.
|
24 |
+
// To work around this, we manually add index.php to the URL, avoiding the redirect.
|
25 |
+
if ('index.php' !== substr($url, 9)) {
|
26 |
+
$url .= 'index.php';
|
27 |
+
}
|
28 |
+
|
29 |
+
$url = add_query_arg('rest_route', '/', $url);
|
30 |
+
$restPath = trim(parse_url($url, PHP_URL_PATH), '/');
|
31 |
+
if (strpos($requestPath, $restPath) === 0) {
|
32 |
+
return true;
|
33 |
+
}
|
34 |
+
|
35 |
+
// Early bail rest url function not exists
|
36 |
+
if (!function_exists('rest_url')) {
|
37 |
+
return false;
|
38 |
+
}
|
39 |
+
|
40 |
+
$baseRestURL = get_rest_url(get_current_blog_id(), '/');
|
41 |
+
$restPath = trim(parse_url($baseRestURL, PHP_URL_PATH), '/');
|
42 |
+
|
43 |
+
return strpos($requestPath, $restPath) === 0;
|
44 |
+
}
|
45 |
+
}
|
Framework/Staging/Sites.php
CHANGED
@@ -20,15 +20,10 @@ class Sites
|
|
20 |
|
21 |
/**
|
22 |
* The old option that was used to store the staging sites
|
23 |
-
* @deprecated 4.0.
|
24 |
*/
|
25 |
const OLD_STAGING_SITES_OPTION = 'wpstg_existing_clones_beta';
|
26 |
|
27 |
-
/**
|
28 |
-
* The option that we use to store our existing clone;
|
29 |
-
*/
|
30 |
-
const CLONE_STRUCTURE_OPTION = 'wpstg_structure_updated';
|
31 |
-
|
32 |
/**
|
33 |
* Return list of staging sites in descending order of their creation time.
|
34 |
*
|
@@ -68,33 +63,50 @@ class Sites
|
|
68 |
/**
|
69 |
* Upgrade old existing clone beta option to new staging site option
|
70 |
*
|
71 |
-
* @see WPStaging\Backend\Upgrade\Upgrade::upgrade2_8_7
|
72 |
-
* @see WPStaging\Backend\Pro\Upgrade\Upgrade::
|
73 |
*/
|
74 |
public function upgradeStagingSitesOption()
|
75 |
{
|
76 |
-
//
|
77 |
-
$
|
78 |
-
|
|
|
|
|
79 |
return;
|
80 |
}
|
81 |
|
82 |
-
// Get the staging sites from new option
|
83 |
$newSites = get_option(self::STAGING_SITES_OPTION, []);
|
84 |
|
85 |
-
//
|
86 |
-
$
|
87 |
|
88 |
-
|
89 |
-
|
90 |
-
|
91 |
-
|
92 |
-
|
|
|
|
|
|
|
|
|
93 |
|
94 |
-
|
95 |
-
|
|
|
96 |
|
97 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
98 |
}
|
99 |
|
100 |
/**
|
20 |
|
21 |
/**
|
22 |
* The old option that was used to store the staging sites
|
23 |
+
* @deprecated 4.0.5
|
24 |
*/
|
25 |
const OLD_STAGING_SITES_OPTION = 'wpstg_existing_clones_beta';
|
26 |
|
|
|
|
|
|
|
|
|
|
|
27 |
/**
|
28 |
* Return list of staging sites in descending order of their creation time.
|
29 |
*
|
63 |
/**
|
64 |
* Upgrade old existing clone beta option to new staging site option
|
65 |
*
|
66 |
+
* @see \WPStaging\Backend\Upgrade\Upgrade::upgrade2_8_7 (Free version)
|
67 |
+
* @see \WPStaging\Backend\Pro\Upgrade\Upgrade::upgrade4_0_5 (Pro version)
|
68 |
*/
|
69 |
public function upgradeStagingSitesOption()
|
70 |
{
|
71 |
+
// Get the staging sites from old option
|
72 |
+
$oldSites = get_option(self::OLD_STAGING_SITES_OPTION, []);
|
73 |
+
|
74 |
+
// Early bail: No sites to migrate
|
75 |
+
if (empty($oldSites)) {
|
76 |
return;
|
77 |
}
|
78 |
|
|
|
79 |
$newSites = get_option(self::STAGING_SITES_OPTION, []);
|
80 |
|
81 |
+
// Convert old format to new, including when there are staging sites in both formats
|
82 |
+
$allStagingSites = $newSites;
|
83 |
|
84 |
+
foreach ($oldSites as $oldSiteSlug => $oldSite) {
|
85 |
+
// Migrate old site to new format
|
86 |
+
if (!array_key_exists($oldSiteSlug, $allStagingSites)) {
|
87 |
+
$allStagingSites[$oldSiteSlug] = $oldSite;
|
88 |
+
continue;
|
89 |
+
}
|
90 |
+
|
91 |
+
// Migrate old site to new format when site slug exists in both options
|
92 |
+
$i = 0;
|
93 |
|
94 |
+
do {
|
95 |
+
$oldSiteSlug = $oldSiteSlug . '_' . $i;
|
96 |
+
} while (array_key_exists($oldSiteSlug, $allStagingSites));
|
97 |
|
98 |
+
$allStagingSites[$oldSiteSlug] = $oldSite;
|
99 |
+
}
|
100 |
+
|
101 |
+
if (update_option(self::STAGING_SITES_OPTION, $allStagingSites)) {
|
102 |
+
// Keep a backup just in case
|
103 |
+
update_option('wpstg_staging_sites_backup', $oldSites, false);
|
104 |
+
delete_option(self::OLD_STAGING_SITES_OPTION);
|
105 |
+
} else {
|
106 |
+
if (defined('WPSTG_DEBUG') && WPSTG_DEBUG) {
|
107 |
+
error_log('WPSTAGING DEBUG: update_option for option renaming of staging sites failed.');
|
108 |
+
}
|
109 |
+
}
|
110 |
}
|
111 |
|
112 |
/**
|
Framework/Traits/MySQLRowsGeneratorTrait.php
CHANGED
@@ -124,7 +124,7 @@ ORDER BY `{$numericPrimaryKey}` ASC
|
|
124 |
LIMIT 0, {$batchSize}
|
125 |
SQL;
|
126 |
} else {
|
127 |
-
$query = "SELECT * FROM {$table} LIMIT {$offset}, {$batchSize}";
|
128 |
}
|
129 |
$jobDataDto->setLastQueryInfoJSON(json_encode([$requestId, $table, $offset, $batchSize]));
|
130 |
$result = $db->query($query);
|
124 |
LIMIT 0, {$batchSize}
|
125 |
SQL;
|
126 |
} else {
|
127 |
+
$query = "SELECT * FROM `{$table}` LIMIT {$offset}, {$batchSize}";
|
128 |
}
|
129 |
$jobDataDto->setLastQueryInfoJSON(json_encode([$requestId, $table, $offset, $batchSize]));
|
130 |
$result = $db->query($query);
|
Frontend/Frontend.php
CHANGED
@@ -2,6 +2,7 @@
|
|
2 |
|
3 |
namespace WPStaging\Frontend;
|
4 |
|
|
|
5 |
use WPStaging\Framework\SiteInfo;
|
6 |
|
7 |
/**
|
@@ -89,6 +90,11 @@ class Frontend
|
|
89 |
{
|
90 |
$this->accessDenied = false;
|
91 |
|
|
|
|
|
|
|
|
|
|
|
92 |
if ($this->isLoginPage() || is_admin()) {
|
93 |
return false;
|
94 |
}
|
2 |
|
3 |
namespace WPStaging\Frontend;
|
4 |
|
5 |
+
use WPStaging\Framework\Rest\Rest;
|
6 |
use WPStaging\Framework\SiteInfo;
|
7 |
|
8 |
/**
|
90 |
{
|
91 |
$this->accessDenied = false;
|
92 |
|
93 |
+
// Dont show login form for rest requests
|
94 |
+
if ((new Rest())->isRestUrl()) {
|
95 |
+
return false;
|
96 |
+
}
|
97 |
+
|
98 |
if ($this->isLoginPage() || is_admin()) {
|
99 |
return false;
|
100 |
}
|
constantsFree.php
CHANGED
@@ -2,10 +2,10 @@
|
|
2 |
|
3 |
// WP STAGING version number
|
4 |
if (!defined('WPSTG_VERSION')) {
|
5 |
-
define('WPSTG_VERSION', '2.8.
|
6 |
}
|
7 |
|
8 |
// Compatible up to WordPress Version
|
9 |
if (!defined('WPSTG_COMPATIBLE')) {
|
10 |
-
define('WPSTG_COMPATIBLE', '5.8.
|
11 |
}
|
2 |
|
3 |
// WP STAGING version number
|
4 |
if (!defined('WPSTG_VERSION')) {
|
5 |
+
define('WPSTG_VERSION', '2.8.8');
|
6 |
}
|
7 |
|
8 |
// Compatible up to WordPress Version
|
9 |
if (!defined('WPSTG_COMPATIBLE')) {
|
10 |
+
define('WPSTG_COMPATIBLE', '5.8.1');
|
11 |
}
|
opcacheBootstrap.php
CHANGED
@@ -45,7 +45,7 @@ if (!$canInvalidate) {
|
|
45 |
*
|
46 |
* We use the "Version" from the headers of the main file of the plugin to compare.
|
47 |
*/
|
48 |
-
$runtimeVersionDifferentFromBuildVersion = get_file_data($pluginFilePath, ['Version' => 'Version'])['Version'] !== '2.8.
|
49 |
$lastCheckHappenedAfterInterval = current_time('timestamp') > (int)get_site_transient('wpstg.bootstrap.opcache.lastCleared') + 5 * MINUTE_IN_SECONDS;
|
50 |
|
51 |
$shouldClearOpCache = apply_filters('wpstg.bootstrap.opcache.shouldClear', $runtimeVersionDifferentFromBuildVersion && $lastCheckHappenedAfterInterval);
|
45 |
*
|
46 |
* We use the "Version" from the headers of the main file of the plugin to compare.
|
47 |
*/
|
48 |
+
$runtimeVersionDifferentFromBuildVersion = get_file_data($pluginFilePath, ['Version' => 'Version'])['Version'] !== '2.8.8';
|
49 |
$lastCheckHappenedAfterInterval = current_time('timestamp') > (int)get_site_transient('wpstg.bootstrap.opcache.lastCleared') + 5 * MINUTE_IN_SECONDS;
|
50 |
|
51 |
$shouldClearOpCache = apply_filters('wpstg.bootstrap.opcache.shouldClear', $runtimeVersionDifferentFromBuildVersion && $lastCheckHappenedAfterInterval);
|
readme.txt
CHANGED
@@ -9,7 +9,7 @@ License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
|
9 |
Tags: backup, database backup, staging, duplication, clone
|
10 |
Requires at least: 3.6+
|
11 |
Tested up to: 5.8
|
12 |
-
Stable tag: 2.8.
|
13 |
Requires PHP: 5.5
|
14 |
|
15 |
A backup & duplicator plugin - clone, move, duplicate & migrate websites to staging, backup, and development sites for authorized users only.
|
@@ -179,6 +179,36 @@ https://wp-staging.com
|
|
179 |
|
180 |
== Changelog ==
|
181 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
182 |
= 2.8.7 =
|
183 |
* Enh: Refactor our wp_login action hook to work with custom calls to this action with different parameter count than the one in WordPress Core #1223
|
184 |
* Enh: Sort new staging sites in descending order by creation time #1226
|
@@ -469,6 +499,34 @@ SKIP VERSION
|
|
469 |
Full changelog: [https://wp-staging.com/wp-staging-changelog](https://wp-staging.com/wp-staging-changelog)
|
470 |
|
471 |
== Upgrade Notice ==
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
472 |
* Enh: Refactor our wp_login action hook to work with custom calls to this action with different parameter count than the one in WordPress Core #1223
|
473 |
* Enh: Sort new staging sites in descending order by creation time #1226
|
474 |
* Enh: Warn if creating a backup in PHP 32 bits #1231
|
9 |
Tags: backup, database backup, staging, duplication, clone
|
10 |
Requires at least: 3.6+
|
11 |
Tested up to: 5.8
|
12 |
+
Stable tag: 2.8.8
|
13 |
Requires PHP: 5.5
|
14 |
|
15 |
A backup & duplicator plugin - clone, move, duplicate & migrate websites to staging, backup, and development sites for authorized users only.
|
179 |
|
180 |
== Changelog ==
|
181 |
|
182 |
+
= 2.8.8 =
|
183 |
+
* New: Compatible up to WordPress 5.8.1
|
184 |
+
* Enh: Refactor the wp_login action hook to work with different parameter count than the one in WordPress Core #1223
|
185 |
+
* Enh: Sort new staging backup sites in descending order by creation time #1226
|
186 |
+
* Enh: Warn if creating a backup in PHP 32 bit version #1231
|
187 |
+
* Enh: Update the backup upload success message #1221
|
188 |
+
* Enh: Show a notice if there is a new WP STAGING free version of the backup plugin #1250
|
189 |
+
* Enh: Rename db option wpstg_existing_clones_beta to wpstg_staging_sites #1211
|
190 |
+
* Enh: Update the warning message shown when the delete process of the staging backup site fails #1257
|
191 |
+
* Enh: Allow use of REST API on staging backup sites without login #1287
|
192 |
+
* Enh: Add new EDD software licensing updater for the pro version of the WP STAGING backup plugin #1294
|
193 |
+
* Fix: New pro version does not recognize staging backup sites created with older free version #1293
|
194 |
+
* Fix: Fix a rare issue that could happen when creating a new staging backup site or restoring a backup when there is a row with primary key with value zero #1271
|
195 |
+
* Fix: Try to repair MyISAM table if it's corrupt when creating a Backup #1222
|
196 |
+
* Fix: Fix an issue on backup creation that would cause a database export to loop when encountering a table with negative integers or zeros as a primary key value #1251
|
197 |
+
* Fix: Lock specific tables while exporting a backup, to prevent a rare duplicated row issue #1245
|
198 |
+
* Fix: If the memory exhausts during a database export using the Backup feature, lower the memory usage/speed of the export and try again automatically #1230
|
199 |
+
* Fix: Prevent failure of adding database to backup from causing a loop #1231
|
200 |
+
* Fix: Fix issue when old backup clones from version 1.1.6 or lower replaces the existing clones from later version when upgrading from FREE to PRO version #1233
|
201 |
+
* Fix: Fix inconsistent Unselect All Tables button's action #1243
|
202 |
+
* Fix: Replace undefined date with proper formatted date during backups for some warning and critical messages #1244
|
203 |
+
* Fix: Split file scanning of wp-content into scanning of plugins, themes, uploads and other directories to reduce timeout issues #1247
|
204 |
+
* Fix: Rename .user.ini to .user.ini.bak after cloning to reduce fatal errors on staging backup site. Also show a notice. #1255
|
205 |
+
* Fix: Skip scanning the root directory if all other directories are unselected before starting a backup staging site #1256
|
206 |
+
* Fix: Show correct insufficient space message instead of permission error if unable to copy or create a backup site due to insufficient space #1283
|
207 |
+
* Fix: Fix showing of error when unable to count tables rows and wrap table name when fetching rows during backup #1285
|
208 |
+
* Fix: Remove custom error handler that could cause errors due to notices being thrown #1292
|
209 |
+
* Fix: Fix an error that would occur when PHP lacked permission to get the size of a directory when pushing a staging backup site to production #1295
|
210 |
+
* Dev: Set the version of Selenium containers to 3.141.59-20210713 to avoid issues with broken latest version of selenium #1234
|
211 |
+
|
212 |
= 2.8.7 =
|
213 |
* Enh: Refactor our wp_login action hook to work with custom calls to this action with different parameter count than the one in WordPress Core #1223
|
214 |
* Enh: Sort new staging sites in descending order by creation time #1226
|
499 |
Full changelog: [https://wp-staging.com/wp-staging-changelog](https://wp-staging.com/wp-staging-changelog)
|
500 |
|
501 |
== Upgrade Notice ==
|
502 |
+
* Enh: Refactor the wp_login action hook to work with different parameter count than the one in WordPress Core #1223
|
503 |
+
* Enh: Sort new staging backup sites in descending order by creation time #1226
|
504 |
+
* Enh: Warn if creating a backup in PHP 32 bit version #1231
|
505 |
+
* Enh: Update the backup upload success message #1221
|
506 |
+
* Enh: Show a notice if there is a new WP STAGING free version of the backup plugin #1250
|
507 |
+
* Enh: Rename db option wpstg_existing_clones_beta to wpstg_staging_sites #1211
|
508 |
+
* Enh: Update the warning message shown when the delete process of the staging backup site fails #1257
|
509 |
+
* Enh: Allow use of REST API on staging backup sites without login #1287
|
510 |
+
* Enh: Add new EDD software licensing updater for the pro version of the WP STAGING backup plugin #1294
|
511 |
+
* Fix: New pro version does not recognize staging backup sites created with older free version #1293
|
512 |
+
* Fix: Fix a rare issue that could happen when creating a new staging backup site or restoring a backup when there is a row with primary key with value zero #1271
|
513 |
+
* Fix: Try to repair MyISAM table if it's corrupt when creating a Backup #1222
|
514 |
+
* Fix: Fix an issue on backup creation that would cause a database export to loop when encountering a table with negative integers or zeros as a primary key value #1251
|
515 |
+
* Fix: Lock specific tables while exporting a backup, to prevent a rare duplicated row issue #1245
|
516 |
+
* Fix: If the memory exhausts during a database export using the Backup feature, lower the memory usage/speed of the export and try again automatically #1230
|
517 |
+
* Fix: Prevent failure of adding database to backup from causing a loop #1231
|
518 |
+
* Fix: Fix issue when old backup clones from version 1.1.6 or lower replaces the existing clones from later version when upgrading from FREE to PRO version #1233
|
519 |
+
* Fix: Fix inconsistent Unselect All Tables button's action #1243
|
520 |
+
* Fix: Replace undefined date with proper formatted date during backups for some warning and critical messages #1244
|
521 |
+
* Fix: Split file scanning of wp-content into scanning of plugins, themes, uploads and other directories to reduce timeout issues #1247
|
522 |
+
* Fix: Rename .user.ini to .user.ini.bak after cloning to reduce fatal errors on staging backup site. Also show a notice. #1255
|
523 |
+
* Fix: Skip scanning the root directory if all other directories are unselected before starting a backup staging site #1256
|
524 |
+
* Fix: Show correct insufficient space message instead of permission error if unable to copy or create a backup site due to insufficient space #1283
|
525 |
+
* Fix: Fix showing of error when unable to count tables rows and wrap table name when fetching rows during backup #1285
|
526 |
+
* Fix: Remove custom error handler that could cause errors due to notices being thrown #1292
|
527 |
+
* Fix: Fix an error that would occur when PHP lacked permission to get the size of a directory when pushing a staging backup site to production #1295
|
528 |
+
* Dev: Set the version of Selenium containers to 3.141.59-20210713 to avoid issues with broken latest version of selenium #1234
|
529 |
+
|
530 |
* Enh: Refactor our wp_login action hook to work with custom calls to this action with different parameter count than the one in WordPress Core #1223
|
531 |
* Enh: Sort new staging sites in descending order by creation time #1226
|
532 |
* Enh: Warn if creating a backup in PHP 32 bits #1231
|
vendor_wpstg/autoload/src.php
CHANGED
@@ -199,6 +199,7 @@ return array(
|
|
199 |
'WPStaging\\Framework\\Queue\\Storage\\QueueStorageException' => $baseDir . '/Framework/Queue/Storage/QueueStorageException.php',
|
200 |
'WPStaging\\Framework\\Queue\\Storage\\SPL\\JsonDoublyLinkedList' => $baseDir . '/Framework/Queue/Storage/SPL/JsonDoublyLinkedList.php',
|
201 |
'WPStaging\\Framework\\Queue\\Storage\\StorageInterface' => $baseDir . '/Framework/Queue/Storage/StorageInterface.php',
|
|
|
202 |
'WPStaging\\Framework\\Security\\AccessToken' => $baseDir . '/Framework/Security/AccessToken.php',
|
203 |
'WPStaging\\Framework\\Security\\Auth' => $baseDir . '/Framework/Security/Auth.php',
|
204 |
'WPStaging\\Framework\\Security\\Capabilities' => $baseDir . '/Framework/Security/Capabilities.php',
|
199 |
'WPStaging\\Framework\\Queue\\Storage\\QueueStorageException' => $baseDir . '/Framework/Queue/Storage/QueueStorageException.php',
|
200 |
'WPStaging\\Framework\\Queue\\Storage\\SPL\\JsonDoublyLinkedList' => $baseDir . '/Framework/Queue/Storage/SPL/JsonDoublyLinkedList.php',
|
201 |
'WPStaging\\Framework\\Queue\\Storage\\StorageInterface' => $baseDir . '/Framework/Queue/Storage/StorageInterface.php',
|
202 |
+
'WPStaging\\Framework\\Rest\\Rest' => $baseDir . '/Framework/Rest/Rest.php',
|
203 |
'WPStaging\\Framework\\Security\\AccessToken' => $baseDir . '/Framework/Security/AccessToken.php',
|
204 |
'WPStaging\\Framework\\Security\\Auth' => $baseDir . '/Framework/Security/Auth.php',
|
205 |
'WPStaging\\Framework\\Security\\Capabilities' => $baseDir . '/Framework/Security/Capabilities.php',
|
wp-staging.php
CHANGED
@@ -7,7 +7,7 @@
|
|
7 |
* Author: WP-STAGING
|
8 |
* Author URI: https://wp-staging.com
|
9 |
* Contributors: ReneHermi
|
10 |
-
* Version: 2.8.
|
11 |
* Text Domain: wp-staging
|
12 |
* Domain Path: /languages/
|
13 |
*
|
7 |
* Author: WP-STAGING
|
8 |
* Author URI: https://wp-staging.com
|
9 |
* Contributors: ReneHermi
|
10 |
+
* Version: 2.8.8
|
11 |
* Text Domain: wp-staging
|
12 |
* Domain Path: /languages/
|
13 |
*
|