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

Version Description

  • Fix: Fatal error on missing Backup Scheduler class in Free version #1688
  • Fix: Fix recursive scanning if there is symlink in root directory linking to root directory itself #1688
Download this release

Release Info

Developer ReneHermi
Plugin Icon 128x128 WP Staging – DB & File Duplicator & Migration
Version 2.9.10
Comparing to
See all releases

Code changes from version 2.9.9 to 2.9.10

Backend/Modules/Jobs/PreserveDataSecondStep.php CHANGED
@@ -6,7 +6,6 @@ use WPStaging\Core\WPStaging;
6
  use WPStaging\Framework\Adapter\SourceDatabase;
7
  use WPStaging\Framework\Staging\CloneOptions;
8
  use WPStaging\Framework\Staging\Sites;
9
- use WPStaging\Pro\Backup\BackupScheduler;
10
 
11
  /**
12
  * Copy wpstg_tmp_data back to wpstg_staging_sites after cloning with class::PreserveDataSecondStep
@@ -83,6 +82,10 @@ class PreserveDataSecondStep extends JobExecutable
83
  return true;
84
  }
85
 
 
 
 
 
86
  // Delete wpstg_tmp_data from the production site
87
  $deleteTmpData = $this->productionDb->query(
88
  $this->productionDb->prepare("DELETE FROM " . $this->productionDb->prefix . "options WHERE `option_name` = %s", "wpstg_tmp_data")
@@ -105,7 +108,7 @@ class PreserveDataSecondStep extends JobExecutable
105
 
106
  // Delete backup schedules tmp data from the staging site
107
  $deleteBackupSchedules = $this->stagingDb->query(
108
- $this->stagingDb->prepare("DELETE FROM " . $this->stagingPrefix . "options WHERE `option_name` = %s", BackupScheduler::OPTION_BACKUP_SCHEDULES)
109
  );
110
 
111
  $tempData = maybe_unserialize($result);
@@ -144,7 +147,7 @@ class PreserveDataSecondStep extends JobExecutable
144
  $insertBackupSchedules = $this->stagingDb->query(
145
  $this->stagingDb->prepare(
146
  "INSERT INTO `" . $this->stagingPrefix . "options` ( `option_id`, `option_name`, `option_value`, `autoload` ) VALUES ( NULL , %s, %s, %s )",
147
- BackupScheduler::OPTION_BACKUP_SCHEDULES,
148
  $tempData->backupSchedules,
149
  "no"
150
  )
@@ -167,7 +170,7 @@ class PreserveDataSecondStep extends JobExecutable
167
  }
168
 
169
  if ($deleteBackupSchedules === false) {
170
- $this->log("Preserve Data Second Step: Failed to delete " . BackupScheduler::OPTION_BACKUP_SCHEDULES . " from the staging site");
171
  }
172
 
173
  if ($result === false) {
@@ -187,7 +190,7 @@ class PreserveDataSecondStep extends JobExecutable
187
  }
188
 
189
  if ($insertBackupSchedules === false) {
190
- $this->log("Preserve Data Second Step: Failed to insert preserved clone options into " . BackupScheduler::OPTION_BACKUP_SCHEDULES . " of the staging site");
191
  }
192
 
193
  return true;
6
  use WPStaging\Framework\Adapter\SourceDatabase;
7
  use WPStaging\Framework\Staging\CloneOptions;
8
  use WPStaging\Framework\Staging\Sites;
 
9
 
10
  /**
11
  * Copy wpstg_tmp_data back to wpstg_staging_sites after cloning with class::PreserveDataSecondStep
82
  return true;
83
  }
84
 
85
+ // Make sure this is compatible with Free Version
86
+ // @see \WPStaging\Pro\Backup\BackupScheduler::OPTION_BACKUP_SCHEDULES
87
+ $backupSchedulesOption = 'wpstg_backup_schedules';
88
+
89
  // Delete wpstg_tmp_data from the production site
90
  $deleteTmpData = $this->productionDb->query(
91
  $this->productionDb->prepare("DELETE FROM " . $this->productionDb->prefix . "options WHERE `option_name` = %s", "wpstg_tmp_data")
108
 
109
  // Delete backup schedules tmp data from the staging site
110
  $deleteBackupSchedules = $this->stagingDb->query(
111
+ $this->stagingDb->prepare("DELETE FROM " . $this->stagingPrefix . "options WHERE `option_name` = %s", $backupSchedulesOption)
112
  );
113
 
114
  $tempData = maybe_unserialize($result);
147
  $insertBackupSchedules = $this->stagingDb->query(
148
  $this->stagingDb->prepare(
149
  "INSERT INTO `" . $this->stagingPrefix . "options` ( `option_id`, `option_name`, `option_value`, `autoload` ) VALUES ( NULL , %s, %s, %s )",
150
+ $backupSchedulesOption,
151
  $tempData->backupSchedules,
152
  "no"
153
  )
170
  }
171
 
172
  if ($deleteBackupSchedules === false) {
173
+ $this->log("Preserve Data Second Step: Failed to delete " . $backupSchedulesOption . " from the staging site");
174
  }
175
 
176
  if ($result === false) {
190
  }
191
 
192
  if ($insertBackupSchedules === false) {
193
+ $this->log("Preserve Data Second Step: Failed to insert preserved clone options into " . $backupSchedulesOption . " of the staging site");
194
  }
195
 
196
  return true;
Framework/Traits/FileScanToCacheTrait.php CHANGED
@@ -4,8 +4,6 @@ namespace WPStaging\Framework\Traits;
4
 
5
  use Exception;
6
  use RuntimeException;
7
- use stdClass;
8
- use WPStaging\Framework\Filesystem\Scanning\ScanConst;
9
  use WPStaging\Framework\Filesystem\FilterableDirectoryIterator;
10
  use WPStaging\Framework\Utils\Strings;
11
 
@@ -16,7 +14,7 @@ trait FileScanToCacheTrait
16
  *
17
  * @param resource $handle File handle to write to
18
  * @param string $content Content to write to the file
19
- * @return integer
20
  * @throws Exception
21
  */
22
  abstract public function write($handle, $content);
@@ -32,6 +30,7 @@ trait FileScanToCacheTrait
32
  * @param string $wpRootPath
33
  *
34
  * @return int count of files path written to cache file
 
35
  */
36
  public function scanToCacheFile($filesHandle, $path, $isRecursive = false, $excludePaths = [], $excludeSizeRules = [], $wpRootPath = ABSPATH)
37
  {
@@ -63,7 +62,7 @@ trait FileScanToCacheTrait
63
  $path = $item->getPathname();
64
  if ($item->isLink()) {
65
  // Allow copying of link if the link's source is a directory
66
- if (is_dir($item->getRealPath())) {
67
  $filesWrittenToCache += $this->scanToCacheFile($filesHandle, $path, $isRecursive, $excludePaths, $excludeSizeRules, $wpRootPath);
68
  }
69
 
4
 
5
  use Exception;
6
  use RuntimeException;
 
 
7
  use WPStaging\Framework\Filesystem\FilterableDirectoryIterator;
8
  use WPStaging\Framework\Utils\Strings;
9
 
14
  *
15
  * @param resource $handle File handle to write to
16
  * @param string $content Content to write to the file
17
+ * @return int
18
  * @throws Exception
19
  */
20
  abstract public function write($handle, $content);
30
  * @param string $wpRootPath
31
  *
32
  * @return int count of files path written to cache file
33
+ * @throws Exception
34
  */
35
  public function scanToCacheFile($filesHandle, $path, $isRecursive = false, $excludePaths = [], $excludeSizeRules = [], $wpRootPath = ABSPATH)
36
  {
62
  $path = $item->getPathname();
63
  if ($item->isLink()) {
64
  // Allow copying of link if the link's source is a directory
65
+ if (is_dir($item->getRealPath()) && $isRecursive) {
66
  $filesWrittenToCache += $this->scanToCacheFile($filesHandle, $path, $isRecursive, $excludePaths, $excludeSizeRules, $wpRootPath);
67
  }
68
 
constantsFree.php CHANGED
@@ -2,7 +2,7 @@
2
 
3
  // WP STAGING version number
4
  if (!defined('WPSTG_VERSION')) {
5
- define('WPSTG_VERSION', '2.9.9');
6
  }
7
 
8
  // Compatible up to WordPress Version
2
 
3
  // WP STAGING version number
4
  if (!defined('WPSTG_VERSION')) {
5
+ define('WPSTG_VERSION', '2.9.10');
6
  }
7
 
8
  // Compatible up to WordPress Version
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.9.9';
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.9.10';
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
@@ -1,72 +1,102 @@
1
  === WP STAGING - Backup Duplicator & Migration ===
2
 
3
- Author URL: https://wordpress.org/plugins/wp-staging
4
  Plugin URL: https://wordpress.org/plugins/wp-staging
5
  Contributors: ReneHermi, WP-Staging
6
- Donate link: https://wp-staging.com/#pricing
7
  License: GPLv2 or later
8
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
9
- Tags: backup, cloud backup, database backup, restore, wordpress backup
10
  Requires at least: 3.6+
11
  Tested up to: 5.9
12
- Stable tag: 2.9.9
13
  Requires PHP: 5.6
14
 
15
  Backup & Duplicator Plugin - Clone, move, duplicate & migrate websites to staging, backup, and development sites for authorized users only.
16
 
17
  == Description ==
18
 
19
- <h3>WP STAGING for WordPress Cloning & Migration</h3>
20
- This duplicator, staging, and backup plugin can create an exact copy of your entire website in seconds.* Great for staging, backup, or development purposes.
21
- (Cloning and Backup time depends on the size of your website)<br /><br />
22
- This clone plugin creates a clone of your website into a subfolder or subdomain (Pro) of your main WordPress installation. The clone includes an entire copy of your database.
 
 
 
23
  <br /> <br />
24
- <strong>Note: </strong> For pushing & migrating plugins and theme files to production site, check out the pro edition [https://wp-staging.com/](https://wp-staging.com/ "WP STAGING PRO")
25
  <br /><br />
26
- All the time-consumptive database and file cloning operations are done in the background. The plugin automatically does a complete search & replacement of all serialized links and paths.
27
  <br /><br />
28
  This staging and backup plugin can clone your website even if it runs on a weak shared hosting server.
29
  <br /><br />
30
- <br /><br />
31
  WP STAGING can help you prevent your website from being broken or unavailable because of installing untested plugin updates!
32
 
33
  [youtube https://www.youtube.com/watch?v=vkv52s36Yvg]
34
 
35
- = Main Features =
36
 
37
- * WP STAGING clones the whole production site into a subfolder like example.com/staging-site.
38
  * Easy to use! Create a clone / backup site by clicking one button
39
- * No Software as a Service - No account needed! All data belong to you only and stay on your server.
40
- * No server timeouts on huge websites or/and small hosting servers
41
  * Very fast - Migration and clone / backup process takes only a few seconds or minutes, depending on the website's size and server I/O power.
42
  * Use the clone as part of your backup strategy
43
  * Only administrators can access the clone / backup website.
44
  * SEO friendly: The clone website is unavailable to search engines due to a custom login prompt and the meta tag no-index.
45
  * The admin bar on the staging / backup website is orange colored and shows when you work on the staging site.
46
  * Extensive logging features
47
- * Supports all popular web servers: Apache, Nginx, and Microsoft IIS
48
- * <strong>[Premium]: </strong>Choose a separate database and select a custom directory for cloning
49
- * <strong>[Premium]: </strong>Make the clone website available from a subdomain like dev.example.com
50
- * <strong>[Premium]: </strong>Push & migrate entire clone site inc. all plugins, themes, and media files to the production website.
51
- * <strong>[Premium]: </strong>Define user roles that get access to the clone site only. For instance, clients or external developers.
52
- * <strong>[Premium]: </strong>Migration and cloning of WordPress multisites
53
- * <strong>[Premium]: </strong>Scheduled Backups running in the background
54
- * <strong>[Premium]: </strong>Backup of WordPress multisites
55
- * <strong>[Premium]: </strong>Backup to Google Drive (Released soon)
56
- * <strong>[Premium]: </strong>Backup to Amazon S3 (Released soon)
57
- * <strong>[Premium]: </strong>Backup to (s)FTP (Released soon)
58
-
59
- > Note: Some features are Premium. You need WP STAGING | PRO to use those features. [Read More about WP STAGING | PRO](https://wp-staging.com)!
60
-
61
- = Additional Features WP STAGING | PRO Edition =
62
-
63
- * Backup an entire website, even with millions of database rows faster and less resource-intensive than with other plugins
64
- * Migrate and transfer WordPress to another host or domain
65
- * Cloning and migration of WordPress multisite
66
- * Define a separate database and a custom directory for cloning
67
- * Clone your website into a subdomain
68
- * Specify user roles for accessing the staging site
69
- * Copy all modifications from the staging site to the production website
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
70
 
71
  <strong>Change your workflow of updating themes and plugins:</strong>
72
 
@@ -75,6 +105,7 @@ WP STAGING can help you prevent your website from being broken or unavailable be
75
  3. Customize the theme, configuration, update or install new plugins
76
  4. Test everything on your staging site and keep a backup of the original site
77
  5. If the staging site works 100%, start the migration and copy all updates to your production site!
 
78
 
79
  <h3> Can´t I just use my local WordPress development system like xampp / lampp for testing and backup purposes? </h3>
80
 
@@ -141,7 +172,7 @@ To bypass this limitation and to be able to create a backup of your staging site
141
  If you want to migrate your local website to an already existing production site, you can use our pro version WP STAGING | PRO or a tool like WP Migrate DB that copies only the database.
142
  WP STAGING is intended to create a staging site with the latest data from your production site or create a backup of it.
143
 
144
- = What are the benefits compared to a plugin like Duplicator? =
145
  We like the Duplicator plugin. Even though Duplicator is not as fast as WP STAGING for creating a backup, it's still is a great tool for migrating from a development site to production one or from production site to development one. Overall it's a good tool to create a backup of your WordPress website.
146
  The downside is that before you can even create an export or backup file with Duplicator, a lot of adjustments, manual interventions, and requirements are needed before you can start the backup process.
147
  The backup plugin Duplicator also needs some skills to be able to create a backup and development/staging site. In contrast, WP STAGING does not need more than a click from you to create a backup or staging site.
@@ -161,7 +192,7 @@ Suppose you can still not log in to your staging / backup site. In that case, yo
161
  Permalinks are disabled on the staging / backup site after first time cloning / backup creation
162
  [Read here](https://wp-staging.com/docs/activate-permalinks-staging-site/ "activate permalinks on staging site") how to activate permalinks on the staging site.
163
 
164
- = How to Transfer WordPress to another Host or Domain by Using a WP STAGING Backup
165
  The pro version of WP STAGING can backup your whole WordPress website. (In the future, we are implementing a basic free version of our sophisticated backup feature into this free version as well)
166
  With this backup function, you can backup and copy your entire WordPress website to another domain, new host, or new server very easily, and often faster and more reliable than with any other existing backup plugins.
167
  Have a look at [https://wp-staging.com/docs/how-to-migrate-your-wordpress-site-to-a-new-host/](this article), which introduces the backup feature.
@@ -174,8 +205,16 @@ If you are a developer, you will probably like to hear that we use Codeception a
174
  As there are infinite variations of possible server constellations, it still can happen that something does not work for you 100%. In that case,
175
  please open a [support request](https://wp-staging.com/support/ "support request") and describe your issue.
176
 
177
- == Official Site ==
178
- https://wp-staging.com
 
 
 
 
 
 
 
 
179
 
180
  == Installation ==
181
  2. Upload and install the backup & clone plugin WP STAGING on the WordPress plugin page wp-admin > Plugins > Add New > uploads
@@ -195,6 +234,10 @@ https://wp-staging.com
195
 
196
  == Changelog ==
197
 
 
 
 
 
198
  = 2.9.9 =
199
  * New: Support up to WordPress 5.9.3
200
  * New: Added upgrade routine for backup created with version 4.1.9 and 4.2.0 to fix backup metadata info #1647
1
  === WP STAGING - Backup Duplicator & Migration ===
2
 
3
+ Author URL: https://wp-staging.com/backup-wordpress
4
  Plugin URL: https://wordpress.org/plugins/wp-staging
5
  Contributors: ReneHermi, WP-Staging
6
+ Donate link: https://wp-staging.com/backup-wordpress
7
  License: GPLv2 or later
8
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
9
+ Tags: backup, backup plugin, database backup, wordpress backup plugin, migrate
10
  Requires at least: 3.6+
11
  Tested up to: 5.9
12
+ Stable tag: 2.9.10
13
  Requires PHP: 5.6
14
 
15
  Backup & Duplicator Plugin - Clone, move, duplicate & migrate websites to staging, backup, and development sites for authorized users only.
16
 
17
  == Description ==
18
 
19
+ <h3>Staging, Backup, Cloning & Migration of WordPress Sites</h3>
20
+ WP STAGING is a professional all in one duplicator, staging, and backup plugin. Create an exact copy and backup of your website in seconds.* Perfect for staging, backup, or development purposes.
21
+ (Cloning and backup time depends on the size of your website)
22
+ <br /><br />
23
+ Visit [https://wp-staging.com/backup-wordpress](https://wp-staging.com/backup-wordpress "https://wp-staging.com/backup-wordpress") for more details.
24
+ <br /><br />
25
+ This backup and staging tool creates a clone of your website into a subfolder or subdomain (Pro) of your main WordPress installation. The cloned site includes an entire copy of your database.
26
  <br /> <br />
27
+ For pushing & migrating plugins and themes to the live site, and creating cloud backups, check out the pro edition [https://wp-staging.com/backup-wordpress](https://wp-staging.com/backup-wordpress "WP STAGING | PRO")
28
  <br /><br />
29
+ WP STAGING runs all the time-consumptive database, file cloning and backup operations in the background. This tool does automatically a search & replacement of all links and paths.
30
  <br /><br />
31
  This staging and backup plugin can clone your website even if it runs on a weak shared hosting server.
32
  <br /><br />
 
33
  WP STAGING can help you prevent your website from being broken or unavailable because of installing untested plugin updates!
34
 
35
  [youtube https://www.youtube.com/watch?v=vkv52s36Yvg]
36
 
37
+ = WP STAGING | FREE BACKUP AND CLONING WORDPRESS FEATURES =
38
 
39
+ * Clones the entire production site into a subfolder like example.com/staging-site.
40
  * Easy to use! Create a clone / backup site by clicking one button
41
+ * No Software as a Service - No account needed! All your data stays on your server. Your data belongs to you only.
42
+ * No server timeouts on huge websites or small and weak servers
43
  * Very fast - Migration and clone / backup process takes only a few seconds or minutes, depending on the website's size and server I/O power.
44
  * Use the clone as part of your backup strategy
45
  * Only administrators can access the clone / backup website.
46
  * SEO friendly: The clone website is unavailable to search engines due to a custom login prompt and the meta tag no-index.
47
  * The admin bar on the staging / backup website is orange colored and shows when you work on the staging site.
48
  * Extensive logging features
49
+ * Supports all popular web servers: Apache, Nginx, Microsoft IIS, LiteSpeed Server
50
+ * Every release passes thousands of unit and acceptance tests to make the plugin extremely robust, reliable and fast on an enterprise code quality level
51
+ * Fast and professional support team
52
+
53
+ == WP STAGING | PRO BACKUP AND CLONING WORDPRESS FEATURES ==
54
+
55
+ Note: These backup & cloning features are Premium. You need WP STAGING | PRO to use those features. [More about WP STAGING | PRO](https://wp-staging.com/backup-wordpress)!
56
+
57
+ * Migration - Migrate and transfer WordPress to another host or domain
58
+ * High Performance - Backup and clone an entire website, even with millions of database rows faster and less resource-intensive than with other plugins
59
+ * Push staging website including all plugins, themes, and media files to the production website wth one click
60
+ * Clone the backup / clone site to a separate database
61
+ * Choose custom directory for backup & cloned site
62
+ * Select custom subdomain as destination for backup / clone site like dev.example.com
63
+ * Authentication - Define user roles for accessing the clone / backup site only. This can be clients or external developers.
64
+ * Multisite Support - Migrate, backup and clone WordPress multisites
65
+ * Backup Plans - Schedule recurring multiple backups by hours, time and interval
66
+ * Backup Transfer - Download and upload backups to another server for migration and website transfer
67
+ * Backup Retention - Select number of backups you want to keep on your server or cloud remote storage provider
68
+ * Backup Custom Names: Choose custom backup names to differentiate easily between different backup files
69
+ * High Performance Background Processor - Runs backup in the background very efficiently without slowing down your website
70
+ * Mail notifications - Be notified if a backup can not be created
71
+ * Backup of WordPress multisites
72
+ * Backup to Google Drive
73
+ * Backup to Amazon S3 (Released soon)
74
+ * Backup to (s)FTP (Released soon)
75
+ * Backup to Dropbox (Released soon)
76
+ * Specify custom backup folder destination for backup cloud storage providers
77
+ * Priority Support for backup & cloning or if something does not work as expected for you.
78
+
79
+ == DOCUMENTATION ==
80
+
81
+ == Backup, Restore & Migration ==
82
+
83
+ <strong>How to Backup and Restore WordPress</strong>
84
+ https://wp-staging.com/docs/how-to-backup-and-restore-your-wordpress-website/
85
+
86
+ <strong>Backup & Transfer WordPress Site to Another Host</strong>
87
+ https://wp-staging.com/docs/how-to-migrate-your-wordpress-site-to-a-new-host/
88
+
89
+ <strong>All Backup Guides</strong>
90
+ https://wp-staging.com/docs/category/backup-restore/
91
+
92
+ <strong> Working with Staging Sites </strong>
93
+ https://wp-staging.com/docs/category/working-with-wp-staging/
94
+
95
+ <strong>FAQ for Backup & Cloning</strong>
96
+ https://wp-staging.com/docs/category/frequently-asked-questions/
97
+
98
+ <strong>Troubleshooting Backup & Cloning</strong>
99
+ https://wp-staging.com/docs/category/troubleshooting/
100
 
101
  <strong>Change your workflow of updating themes and plugins:</strong>
102
 
105
  3. Customize the theme, configuration, update or install new plugins
106
  4. Test everything on your staging site and keep a backup of the original site
107
  5. If the staging site works 100%, start the migration and copy all updates to your production site!
108
+ 6. If something does not work as expected, restore the previous backup
109
 
110
  <h3> Can´t I just use my local WordPress development system like xampp / lampp for testing and backup purposes? </h3>
111
 
172
  If you want to migrate your local website to an already existing production site, you can use our pro version WP STAGING | PRO or a tool like WP Migrate DB that copies only the database.
173
  WP STAGING is intended to create a staging site with the latest data from your production site or create a backup of it.
174
 
175
+ = What are the benefits compared to a migration and backup plugin like Duplicator? =
176
  We like the Duplicator plugin. Even though Duplicator is not as fast as WP STAGING for creating a backup, it's still is a great tool for migrating from a development site to production one or from production site to development one. Overall it's a good tool to create a backup of your WordPress website.
177
  The downside is that before you can even create an export or backup file with Duplicator, a lot of adjustments, manual interventions, and requirements are needed before you can start the backup process.
178
  The backup plugin Duplicator also needs some skills to be able to create a backup and development/staging site. In contrast, WP STAGING does not need more than a click from you to create a backup or staging site.
192
  Permalinks are disabled on the staging / backup site after first time cloning / backup creation
193
  [Read here](https://wp-staging.com/docs/activate-permalinks-staging-site/ "activate permalinks on staging site") how to activate permalinks on the staging site.
194
 
195
+ = How to use a Backup file to Migrate WordPress to another Host or Domain
196
  The pro version of WP STAGING can backup your whole WordPress website. (In the future, we are implementing a basic free version of our sophisticated backup feature into this free version as well)
197
  With this backup function, you can backup and copy your entire WordPress website to another domain, new host, or new server very easily, and often faster and more reliable than with any other existing backup plugins.
198
  Have a look at [https://wp-staging.com/docs/how-to-migrate-your-wordpress-site-to-a-new-host/](this article), which introduces the backup feature.
205
  As there are infinite variations of possible server constellations, it still can happen that something does not work for you 100%. In that case,
206
  please open a [support request](https://wp-staging.com/support/ "support request") and describe your issue.
207
 
208
+ WP STAGING BACKUP & CLONING TECHNICAL REQUIREMENTS & INFORMATION
209
+ * WordPress 3.8
210
+ * Works with all systems
211
+ * No extra libraries required
212
+ * Supports huge websites
213
+ * Custom backup format is much faster and smaller than tar or zip compression
214
+ * Backup & cloning works in low memory & shared hosting environments
215
+
216
+ == SUPPORT ==
217
+ [https://wp-staging.com/backup-wordpress](https://wp-staging.com/backup-wordpress "https://wp-staging.com/backup-wordpress")
218
 
219
  == Installation ==
220
  2. Upload and install the backup & clone plugin WP STAGING on the WordPress plugin page wp-admin > Plugins > Add New > uploads
234
 
235
  == Changelog ==
236
 
237
+ = 2.9.10 =
238
+ * Fix: Fatal error on missing Backup Scheduler class in Free version #1688
239
+ * Fix: Fix recursive scanning if there is symlink in root directory linking to root directory itself #1688
240
+
241
  = 2.9.9 =
242
  * New: Support up to WordPress 5.9.3
243
  * New: Added upgrade routine for backup created with version 4.1.9 and 4.2.0 to fix backup metadata info #1647
uninstall.php CHANGED
@@ -63,7 +63,9 @@ class uninstall
63
  delete_option("wpstg_staging_sites_backup");
64
  delete_option("wpstg_missing_cloneName_routine_executed");
65
  delete_option('wpstg_googledrive');
66
- delete_option(BackupScheduler::OPTION_BACKUP_SCHEDULES);
 
 
67
 
68
 
69
  /* Do not delete these fields without actually deleting the staging site
63
  delete_option("wpstg_staging_sites_backup");
64
  delete_option("wpstg_missing_cloneName_routine_executed");
65
  delete_option('wpstg_googledrive');
66
+
67
+ // @see \WPStaging\Pro\Backup\BackupScheduler::OPTION_BACKUP_SCHEDULES
68
+ delete_option('wpstg_backup_schedules');
69
 
70
 
71
  /* Do not delete these fields without actually deleting the staging site
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.9.9
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.9.10
11
  * Text Domain: wp-staging
12
  * Domain Path: /languages/
13
  *