=== WP STAGING - Backup Duplicator & Migration  ===

Author URL: https://wp-staging.com/backup-wordpress
Plugin URL: https://wordpress.org/plugins/wp-staging
Contributors: WP-Staging, WPStagingBackup, ReneHermi, lucatume, lucasbustamante, alaasalama, fayyazfayzi
Donate link: https://wp-staging.com/backup-wordpress
License: GPLv2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Tags: backup, backup plugin, database backup, wordpress backup, migrate, backup wordpress, backups
Requires at least: 3.6+
Tested up to: 6.0
Stable tag: 2.9.20
Requires PHP: 5.6

Backup & Duplicator Plugin - Clone, backup, move, duplicate & migrate websites to staging, backup, and development sites for authorized users only.

== Description ==

<h3>Staging, Backup, Cloning & Migration of WordPress Sites</h3>
WP STAGING is a professional all in one <strong>duplicator, staging, and backup plugin</strong>. Create an exact copy and backup of your website in seconds. Perfect for staging, backup, or development purposes.
(Cloning and backup time depends on the size of your website)
<br /><br />
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.
 <br /> <br />
For pushing & migrating plugins and themes to the live site, creating a backup and upload a backup to cloud providers, check out [WP STAGING | PRO](https://wp-staging.com/backup-wordpress "WP STAGING - Backup & Cloning")
<br /><br />
WP STAGING runs all the time-consumptive operations for database and file cloning and backup operations in the background. This tool does <strong>automatically a search & replacement</strong> of all links and paths.
 <br /><br />
This staging and backup plugin can clone your website even if it runs on a weak shared hosting server.
 <br /><br />
<strong>WP STAGING can prevent your website from breaking or going offline due to installing untested plugins!</strong>

[youtube https://www.youtube.com/watch?v=vkv52s36Yvg]

== WP STAGING FREE - BACKUP & STAGING FEATURES ==

* Clones the entire production site into a subdirectory like example.com/staging-site.
* Easy to use! Create a clone / backup site by clicking one button
* No Software as a Service - No account needed! All your data stays on your server. Your data belongs to you only.
* No server timeouts on huge websites or small and weak servers
* 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.
* Use the clone as part of your backup strategy
* Only administrators can access the clone / backup website.
* SEO friendly: The clone website is unavailable to search engines due to a custom login prompt and the meta tag no-index.
* The admin bar on the staging / backup website is orange colored and shows when you work on the staging site.
* Extensive logging features
* Supports all popular web servers: Apache, Nginx, Microsoft IIS, LiteSpeed Server
* Every release passes thousands of unit and acceptance tests to make the plugin extremely robust, reliable and fast on an enterprise code quality level
* Fast and professional support team

== WP STAGING | PRO - BACKUP & STAGING FEATURES ==

The backup & cloning features below are Premium. You need WP STAGING | PRO to use those features. [More about WP STAGING | PRO](https://wp-staging.com/backup-wordpress)!

* Migration - Migrate and transfer WordPress to another host or domain
* High Performance - Backup and clone an entire website, even with millions of database rows faster and less resource-intensive than with other plugins
* Push staging website including all plugins, themes, and media files to the production website wth one click
* Clone the backup / clone site to a separate database
* Choose custom directory for backup & cloned site
* Select custom subdomain as destination for backup / clone site like dev.example.com
* Authentication - Define user roles for accessing the clone / backup site only. This can be clients or external developers.
* Multisite Support - Migrate, backup and clone WordPress multisites
* Backup Plans - Schedule recurring multiple backups by hours, time and interval
* Backup Transfer - Download and upload backups to another server for migration and website transfer
* Backup Retention - Select number of backups you want to keep on your server or cloud remote storage provider
* Backup Custom Names: Choose custom backup names to differentiate easily between different backup files
* High Performance Background Processor - Runs backup in the background very efficiently without slowing down your website
* Mail notifications - Be notified if a backup can not be created
* Backup of WordPress multisites
* Backup to Google Drive
* Backup to Amazon S3
* Backup to (s)FTP
* Backup to Dropbox (Released soon)
* Specify custom backup folder destination for backup cloud storage providers
* Priority Support for backup & cloning or if something does not work as expected for you.

== DOCUMENTATION ==

== Backup, Restore & Migration ==

<strong>How to Backup and Restore WordPress</strong>
[https://wp-staging.com/docs/how-to-backup-and-restore-your-wordpress-website/](https://wp-staging.com/docs/how-to-backup-and-restore-your-wordpress-website/ "Backup and Restore WordPress")

<strong>Backup & Transfer WordPress Site to Another Host</strong>
[https://wp-staging.com/docs/how-to-migrate-your-wordpress-site-to-a-new-host/](https://wp-staging.com/docs/how-to-migrate-your-wordpress-site-to-a-new-host/ "Backup and Transfer WordPress to new host")

<strong>All Backup Guides</strong>
[https://wp-staging.com/docs/category/backup-restore/](https://wp-staging.com/docs/category/backup-restore/ "All Backup Guides")

<strong>Working with Staging Sites </strong>
[https://wp-staging.com/docs/category/working-with-wp-staging/](https://wp-staging.com/docs/category/working-with-wp-staging/ "Working with Staging Sites")

<strong>FAQ for Backup & Cloning</strong>
[https://wp-staging.com/docs/category/frequently-asked-questions/](https://wp-staging.com/docs/category/frequently-asked-questions/ "Backup & Cloning FAQ")

<strong>Troubleshooting Backup & Cloning</strong>
[https://wp-staging.com/docs/category/troubleshooting/](https://wp-staging.com/docs/category/troubleshooting/ "Troubleshooting Backup & Cloning")

<strong>Change your workflow of updating themes and plugins:</strong>

1. Use WP STAGING to clone a production website for staging, testing, or backup purposes
2. Create a backup of your website
3. Customize the theme, configuration, update or install new plugins
4. Test everything on your staging site and keep a backup of the original site
5. If the staging site works 100%, start the migration and copy all updates to your production site!
6. If something does not work as expected, restore the previous backup

<h3> Can´t I just use my local WordPress development system like xampp / lampp for testing and backup purposes? </h3>

You can always test your website locally, but if your local hardware and software environment is not a 100% exact clone of your production server, there is NO guarantee that every aspect of your local copy works on your production website exactly as you expect it.

There are noticeable differences like the PHP version or the server your website is running under. Still, even such non-obvious settings like the amount of RAM or the CPU performance can lead to unexpected results on your production website.

There are dozens of other reasons why a local test website will never mimic the production site server. That's why a successful local test or backup site is no guarantee that the site will run in the production environment as expected.

That is where WP STAGING shows its strengths... Site cloning, backup, and staging site creation simplified. WordPress cloning on an enterprise-ish level!


== Frequently Asked Questions ==

= Why should I use a Backup & Staging Website? =

Plugin updates and theme customizations should be tested on a staging / backup platform before applying them on the production website.
Usually, it's recommended having the staging / backup platform on an identical server like the production server. You can only catch all possible errors during testing with the same hardware and software environment for your test & backup website.

So, before you update a plugin or install a new one, it is highly recommended to check out the modifications on a clone / backup of your production website.
That ensures that any modifications work on your production website without throwing unexpected errors or preventing your site from loading, better known as the "WordPress blank page error."

Testing a plugin update before installing it in a production environment isn't done very often by most users because existing staging solutions are too complex and need a lot of time to create a
an up-to-date copy of your website.

You could be afraid of installing plugins updates because you follow "never touch a running system." You know that untested updates increase the risk of breaking your site.

That's is one of the main reasons WordPress installations are often outdated, not updated at all, and insecure because of this non-update behavior.

<strong> It's time to change this, so there is no easier way than using "WP STAGING" for cloning, backup, and migration of your WordPress website.</strong>

= How to install and set up a staging site / site backup? =
Install WP STAGING backup via the admin dashboard. Go to 'Plugins', click 'Add New' and search the plugins for 'WP STAGING'. Install the plugin with 'Install Now'.
After installation, go to WP STAGING > Staging Sites and create your first staging / backup site

= Is WP STAGING a backup plugin? =
Even though you can use WP STAGING for backup purposes, the free version is not a usual backup plugin per the general definition. WP STAGING creates a clone of your entire website, which you can immediately use for developing and testing.
You can even use it as some kind of backup in case something happens to your production site, but only the WP STAGING | PRO pro version allows you to download the backup to your local computer. There are many other popular backup plugins out there. Still, our goal is to bring the reliability and performance of a backup plugin to a new level.

So instead of offering our backup feature free of charge, we think it's time to provide a full-fledged premium backup solution with enterprise code quality affordable for everyone.

[Video: How we run automated tests on WP STAGING](https://www.youtube.com/watch?v=Tf9C9Pgu7Bs)

= What is the difference between WP STAGING backup and other backup plugins? =

----------------------------------------------
Note: WP STAGING | PRO provides more advanced backup functionality compared with the below-mentioned backup plugins. The speed and Performance of WP STAGING's backup feature often exceed even the most prominent and most well-established backup plugins.
We are now adding more advanced backup features to deliver what other existing backup plugins are still missing.
----------------------------------------------

You may have heard about other popular backup plugins like All in one Migration, BackWPUp, BackupWordPress, Simple Backup, WordPress Backup to Dropbox, or similar WordPress backup plugins and now wonder about the difference between WP STAGING and those backup tools.

Other backup plugins usually create a backup of your WordPress filesystem and a database backup that you can use to restore your website if it becomes corrupted or you want to go back in time to a previous state.

The backup files are compressed and can not be executed directly. WP STAGING, on the other hand, creates a full backup of the whole file system and the database in a working state that you can open like your original production website.

Even though WP STAGING's basic version comes with some backup capabilities, its main purpose is to create a clone of your website, which you can work on. It harmonies very well with all the mentioned backup plugins above. If you go with the WP STAGING | PRO version, you will get the backup functionality of the mentioned above backup plugins.

Note, that some free backup plugins are not able to support custom tables. (For instance, the free version of Updraft plus backup plugin). In that case, your backup plugin is not able to create a backup of your staging site when it is executed on the production site.
The reason is that the tables created by WP STAGING are custom tables beginning with another table prefix.
To bypass this limitation and to be able to create a backup of your staging site, you can set up your backup plugin on the staging site and create the backup from that location. That works well with every available WordPress backup plugin.

= I want to backup my local website and copy it to production and another host =
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.
WP STAGING is intended to create a staging site with the latest data from your production site or create a backup of it.

= What are the benefits compared to a migration and backup plugin like Duplicator? =
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.
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.
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.
Duplicator is best placed to be a tool for the first-time creation of your production site. That is something where it is convenient and powerful.

If you have created a local or web-hosted development site and you need to migrate that site the first time to your production domain, you do nothing wrong by using
the Duplicator plugin! If you need all your latest production data like posts, updated plugins, theme data, and styles in a testing environment or want to create a quick backup before testing out something, then we recommend using WP STAGING instead!

If speed, performance, and code quality are a matter for you as well, give WP STAGING a try.

= I can not log in to the staging / backup site =
If you are using a security plugin like Wordfence, iThemes Security, All In One WP Security & Firewall, or a plugin that hides the WordPress default login URL, make sure that you have installed the latest version of WP STAGING to access your cloned backup site.
Suppose you can still not log in to your staging / backup site. In that case, you can go to WP STAGING > settings and disable there the WP STAGING extra authentication. Your admin dashboard will still be protected and not accessible to public users.

= Can I activate permalinks on the staging / backup site? =

Permalinks are disabled on the staging / backup site after first time cloning / backup creation
[Read here](https://wp-staging.com/docs/activate-permalinks-staging-site/ "activate permalinks on staging site") how to activate permalinks on the staging site.

= How to use a Backup file to Migrate WordPress Backup to another Host or Domain
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)
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.
Have a look at [https://wp-staging.com/docs/how-to-migrate-your-wordpress-site-to-a-new-host/](this article), that introduces the backup feature.

= Is There a Translation of WP STAGING in my Language? =

We have translated WP STAGING into five languages nearly completely:

English: [WP STAGING Backup & Duplicator WordPress Plugin. Backup & Migrate WordPress websites.](https://es.wordpress.org/plugins/wp-staging/)
French: [Plugin WordPress de sauvegarde et de duplication WP STAGING. Sauvegarder et migrer les sites Web WordPress.](https://es.wordpress.org/plugins/wp-staging/)
German: [WP STAGING Backup & Duplicator WordPress Plugin. Migrate WordPress Webseiten.](https://es.wordpress.org/plugins/wp-staging/)
Spanish: [WP STAGING Complemento de copia de seguridad y duplicador de WordPress. Copia de seguridad y migración de sitios web de WordPress.](https://es.wordpress.org/plugins/wp-staging/)

The following languages have been partially translated. You can help us with the translation:

Croatian: [WP STAGING Backup & Duplicator WordPress dodatak. Izradite sigurnosnu kopiju i migrirajte WordPress web stranice.](https://hr.wordpress.org/plugins/wp-staging/)
Dutch: [WP STAGING Back-up & Duplicator WordPress-plug-in. Back-up en migratie van WordPress-websites.](https://nl.wordpress.org/plugins/wp-staging/)
Finnish: [WP STAGING Backup & Duplicator WordPress-laajennus. Varmuuskopioi ja siirrä WordPress-verkkosivustoja.](https://fi.wordpress.org/plugins/wp-staging/)
Greek: [WP STAGING Πρόσθετο WordPress Backup & Duplicator. Δημιουργία αντιγράφων ασφαλείας και μετεγκατάσταση ιστοσελίδων WordPress.](https://el.wordpress.org/plugins/wp-staging/)
Hungarian: [WP STAGING Backup & Duplicator WordPress beépülő modul. WordPress-webhelyek biztonsági mentése és migrálása.](https://hu.wordpress.org/plugins/wp-staging/)
Indonesian: [WP Staging Backup & Duplikator Plugin WordPress. Cadangkan & Migrasi situs web WordPress.](https://id.wordpress.org/plugins/wp-staging/)
Italian: [WP STAGING Plugin WordPress per backup e duplicatori. Backup e migrazione di siti Web WordPress.](https://it.wordpress.org/plugins/wp-staging/)
Persian: [WP STAGING پشتیبان گیری و افزونه وردپرس Duplicator. پشتیبان گیری و مهاجرت از وب سایت های وردپرسی.](https://fa.wordpress.org/plugins/wp-staging/)
Polish: [WP STAGING Wtyczka WordPress do tworzenia kopii zapasowych i powielania. Twórz kopie zapasowe i migruj witryny WordPress.](https://pl.wordpress.org/plugins/wp-staging/)
Portuguese (Brazil): [WP STAGING Backup & Duplicador Plugin WordPress. Backup e migração de sites WordPress.](https://br.wordpress.org/plugins/wp-staging/)
Russian: [Плагин WP STAGING Backup & Duplicator для WordPress. Резервное копирование и перенос сайтов WordPress.](https://ru.wordpress.org/plugins/wp-staging/)
Turkish: [WP STAGING Yedekleme ve Çoğaltıcı WordPress Eklentisi. WordPress web sitelerini yedekleyin ve taşıyın.](https://tr.wordpress.org/plugins/wp-staging/)
Vietnamese: [WP STAGING Backup & Duplicator WordPress Plugin. Sao lưu và di chuyển các trang web WordPress.](https://vi.wordpress.org/plugins/wp-staging/)

= Can I give you some feedback for WP STAGING Backup & Cloning? =
This plugin has been created in thousands of hours and works even with the smallest shared web hosting package.
We also use an enterprise-level approved testing coding environment to ensure that the cloning and backup process runs rock-solid on your system.
If you are a developer, you will probably like to hear that we use Codeception and PHPUnit for our backup software.

As there are infinite variations of possible server constellations, it still can happen that something does not work for you 100%. In that case,
please open a [support request](https://wp-staging.com/support/ "Support Request") and describe your issue.

== WP STAGING BACKUP & CLONING TECHNICAL REQUIREMENTS & INFORMATION ==

* Works on latest version of WordPress
* Minimum Supported WordPress Version 3.8
* Cloning and Backup work on all webhosts
* No extra libraries required
* Backup & cloning supports huge websites
* Custom backup format is much faster and smaller than any tar or zip compression
* Backup & cloning works in low memory & shared hosting environments

== SUPPORT ==
[https://wp-staging.com/backup-wordpress](https://wp-staging.com/backup-wordpress "https://wp-staging.com/backup-wordpress")

== Installation ==
2. Upload and install the backup & clone plugin WP STAGING on the WordPress plugin page wp-admin > Plugins > Add New > uploads
3. Activate the WP STAGING backup plugin through the 'Plugins' menu in WordPress.

== Screenshots ==

1. Create new WordPress staging / backup site
2. Select name for staging / backup site
3. Select folders to include in staging / backup site
4. Cloning / backup processing
5. Listed staging / backup sites
5. Listed staging / backup sites
6. Open, edit & delete staging / backup sites
7. Login to staging / backup site
4. Demo of a staging / backup site

== Changelog ==

= 2.9.20 =
* Fix: Prevent internal error when clicking on Test Connection link on SFTP remote storage backup settings page. #1869
* Fix: Properly catch runtime Exception during Backup Create and Backup Restore #1833
* Fix: Connection to external database is broken if the password has special characters #1862
* Fix: Can not login to staging site if special characters are used in password due to improper sanitization #1877
* Tweak: Improve visual design of the upgrade screen
* Tweak: Better error logging if backup could not be uploaded to sftp and if path does not exist on SFTP remote server. #1869
* Dev: XDebug support for docker PHP image v.8.x #1867

= 2.9.19 =
* New: Compatible up to WordPres 6.0.2
* Security: Further improve sanitization and escaping of variables to prevent potential XSS attacks with high privileges #1836
* Enh: Show better response from remote when license can not be activated #1818
* Fix: Fatal error Uncaught TypeError on google drive backup upload settings page under rare circumstances when site is translated #1849
* Fix: Fatal error on Windows OS when pushing a staging site and activating the backup option. It deletes the WP Staging content directory including its cache files file during files copying process, resulting in a failed push #1851

= 2.9.18 =
* Fix: Does not sanitise and escape some of its backup settings, which could allow high privilege users such as admin to perform Stored Cross-Site Scripting attacks (XSS) even when the unfiltered_html capability is disallowed (for example in multisite setup) #1825

= 2.9.17 =
* New: Support up to WordPress 6.0.1
* Fix: Important update! Deselecting all tables does not lead to exclusion of tables as expected, but leads to selection of all tables. Thus all tables are copied and possibly overwritten instead of deselected. Applies to new cloning, UPDATE and RESET of a staging page. That can lead to data loss in the staging site. An update is strongly recommended! The problem appeared for the first time in version 4.2.8. #1814
* Fix: Can not upload backup file to google drive if the google api returns incorrect value for available storage size (negative value). This sometimes happens for Google workspace accounts and does not affect all users. #1799
* Fix: Plugin wps-hide-login could not be excluded during cloning process, preventing users from log in to the staging site #1812

= 2.9.16 =
* Fix: On some servers, autoloader tries to load Composer\InstalledVersions although this doesn't exist. We fix this by only loading classes that exist #1801
* Enh: Some shared hosting servers like DreamHost doesn't allow sending large data through URL which resulted in interval server error 500 when fetching the backup list. We changed the way of sending data now through request body which allow listing backups on such shared hosting servers #1788
* Enh: Improve workflow to support tables with long name exceeding the 64 characters MySQL limit when a tmp prefix during restore is added. Those tables are now temporarily renamed to temporary short names during the restore process and after successful restore renamed back to their original names #1784
* Fix: Restoring a backup, site language is not properly imported, resulting in switching the imported site back to site default language. Reason: Language files are imported before importing other files during backup restore. This led to cleaning the restored language files while cleaning other files. Now language directory is skipped during the cleaning of existing "other" files #1794
* Fix: Check/Uncheck of the plugins and themes checkbox in the PUSH UI didn't affect the children checkboxes. This issue is fixed and children checkboxes are properly toggled #1797
* Fix: If all tables were excluded during PUSH, it was treated as if all tables were selected. Now tables selection is properly handled during the PUSH #1797

= 2.9.15 =
* New: Add sFTP support to upload backup files automatically via (s)FTP to a remote server or NAS system #1677
* Enh: Cloning/Push stops if folder name contains backslash character (\) on Linux OS #1744
* Enh: Don't copy or update wp-config.php if staging site is updated by using the UPDATE button #1747
* Enh: Restoring a backup from a staging site that uses the meta tag noindex, causes the imported site to also not be indexed. In the worst case, this can result in a production site not being indexable after restoring a backup. This update ensures that the index meta value of the imported site is preserved when a backup is restored. #1777
* Enh: If Jetpack plugin is active, use the special Jetpack Staging Mode by adding the constant JETPACK_STAGING_MODE to wp-config.php of the staging site #1780
* Fix: On some servers, autoloader tries to load Composer\InstalledVersions although this doesn't exist. We fix this by only loading classes that exist #1801
* Fix: Fatal error if php curl() module is missing and backup is uploaded to Google Drive or Amazon S3 #1769
* Fix: Fatal error on cloning due to strict standard issue in DbRowsGeneratorTrait when user has E_STRICT or E_DEPRECATED constants active in PHP #1772
* Fix: Fatal error on plugin activation if there is no write permission on the backup files. Happens only on updating from a very old version to latest one and the backup metadata update routine is fired #1776
* Dev: Add automated test for scheduled backup plans #1764

= 2.9.14 =
* Fix: Certain default plugins like wps-hide are not excluded anymore during cloning #1742
* Fix: Scheduled backup not always executed #1754
* Fix: Backup folder is deleted during backup restore on Windows OS #1737
* Fix: On backup restore retry deleting an item again in next request instead of re adding it at the end of queue, if item isn't completely deleted in current request #1758
* Enh: Refactor normalizePath() #1751
* Enh: Optimize table selection to reduce POST characters. Send either selected tables or excluded tables whichever is smaller along to reduce the POST size for cloning and pushing #1727
* Enh: Allow automatic update of WP STAGING | PRO on the staging site. It can still be disabled using the filter wpstg.notices.disable.plugin-update-notice #1749
* Enh: Add filter wpstg.backup.restore.extended-search-replace. The extended search replace allow properly replacing to destination URL for some plugins like rev-sliders in backup restore #1741

= 2.9.13 =
* New: Support up to WordPress 6.0
* Fix: Don't load mbstring polyfill file at all if iconv extension isn't loaded #1734
* Enh: Increasing Backup Filescanner Performance. Lower backup directory and file scanner request time #1714
* Enh: Rename cancel button of backup schedules modal make it more responsive #1714

= 2.9.12 =
* Fix: If there is a damaged backup in backup folder, automated backup does not work any longer #1707
* Fix: Support UNC paths like //servername/path Unix or \\servername\path DOS/Windows #1698
* Fix: Remove prefixed vendor namespace from the Normalizer class in the idn-intl polyfill #1720
* Fix: Handle SSL related errors and catch other exceptions while making remote request to refresh Google token #1718
* Fix: Backup does not restore theme if theme does not have a style.css #1719
* Fix: Missing exception in Backup Extractor.php #1724
* Enh: List damaged backup files in the UI and mark them #1710
* Enh: Remove message "backup metadata not found" in debug log #1710
* Enh: Clean up debug messages #1722
* Enh: Add missing escaping of POST output #1705

= 2.9.11 =
* New: Add Amazon S3 as backup cloud storage option for backup upload #1665
* Fix: Fatal error due to missing BackupScheduler class in Free version #1688
* Fix: Can not recursive scan file system if there is a symlink in root directory linking to the root directory itself. #1688
* Fix: Can not download backup files. Incorrect backup download link if wp-content folder is symlinked to another folder outside the wp root folder #1697
* Fix: Error on downloading backup in IIS due to section in parent web.config that overwrites the WP STAGING generated web.config in backup folder #1699
* Fix: PHP Fatal error while cloning if php iconv extension is not active. Continue cloning even if punycode related code doesn't work due to missing extensions #1702
* Enh: Remove duplicated mbstring class #1702

= 2.9.10 =
* 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

= 2.9.9 =
* New: Support up to WordPress 5.9.3
* New: Added upgrade routine for backup created with version 4.1.9 and 4.2.0 to fix backup metadata info #1647
* New: Add multiple filters to keep existing media files, plugins, themes and mu-plugins after backup restore #1617
* New: Clean existing files during backup restore which are not in backup #1617
* Fix: Backup creation is blocked by mod_security if access tokens contain 0x string #1651
* Fix: Unable to upload backup created with version 4.1.9 and 4.2.0 using WP Staging Backup Uploader #1647
* Fix: Unable to import multisite backup when restoring backup into domain other than it was created on #1644
* Fix: If there is an mysql error on copying a single row, it can lead to a interrupt of the whole clone job due to a browser memory exhaust error because whole sql query is written into html log element . #1654
* Fix: Cloning does not work if php mb module is not installed #1669
* Fix: Catch fatal error happening on backup upgrade routine #1663
* Fix: Only process one queue action at a time. This make sure another action doesn't conflict with the action in process. Also fix the wpstg_queue backup table growing problem #1652
* Enh: Save log file name instead of complete task response in wp_wpstg_queue table. This reduces the size of backup queue table #1623
* Enh: Stop the backup job on critical errors during scheduled backup #1623
* Dev: Test for cleaning up files before backup restore fails on second run #1681

= 2.9.8 =
* Fix: Fatal error if another plugin uses the same google library as WP STAGING uses for the backup storage provider #1641

= 2.9.7 =
* New: Support up to WordPress 5.9.2
* New: Feature to upload backups to Google Drive (PRO) #1453
* New: Add filter wpstg.frontend.showLoginForm to force disable login form for the staging / backup site access #1577
* New: Option to schedule a backup without creating one (PRO) #1588
* Enh: Improve backup schedules error reporting by showing cron related notice on backups page and sending schedules error report mails (PRO) #1588
* Enh: Improve subdirectory WordPress install detection by adding support for idn(internationalized domain names) #1564
* Enh: Change backup lock process mechanism from using database to file based lock #1561
* Enh: Make files & folders exclude filters work on WordPress root directory #1606
* Enh: Remove old database only backup before PUSH process (PRO) #1608
* Enh: Exclude .htaccess from root directory only during cloning process #1616
* Enh: Don't backup table wp_wpstg_queue table (PRO Version) #1624
* Update: Bump minimist from 1.2.5 to 1.2.6 in /tests/js #1627
* Update: Bump postcss from 8.2.10 to 8.2.13 in /src/assets #1547
* Update: Bump mustache/mustache from 2.13.0 to 2.14.1 #1543
* Update: Bump nanoid from 3.1.22 to 3.3.1 in /src/assets #1626
* Fix: Correctly set multisite subsites urls with www prefix when cloning and restoring a backup (PRO) #1567
* Fix: Backup error "OutOfRangeException" was never caught when insert query exceeds max allowed packet size (PRO)  #1570
* Fix: Add backup logic to check extended query string size against max allowed packet size which otherwise leads to a fatal error (PRO) #1570
* Fix: Handle critical error if WP STAGINGS settings get corrupted. Give option to restore default settings #1602
* Fix: Recreate cron jobs of existing backup plans when adding a new backup schedules (PRO) #1588
* Fix: Enqueue a failed task/item again and set the queue's offset to the end of file #1609
* Fix: Stop cloning if destination directory/clone name already exists #1607
* Fix: Continue cloning process even if copying a table failed #1578
* Fix: Don't remove freemius options if entire multisite is cloned. Prevents a fatal error. (PRO) #1629
#1638

= 2.9.6 =
* New: Support up to WordPress 5.9.1
* New: Add filter wpstg.frontend.showLoginForm to allow third party plugin disabling login form for the staging site #1577
* New: Add labels to distinguish between network and single site clones on multisite
* Fix: Handle issue when showing staging sites in System Info #1560
* Fix: Fix Rows Generator for zero or negative values for Primary Key Index #1584
* Fix: Set option "Keep permalinks" on the staging site when updating a staging site if "keep permalinks" is active on the production site initially #1562
* Fix: Updating an existing multisite clone converted the clone to a single site #1565 #1589

= 2.9.5 =
* New: Create backups and restore of multisites (PRO) #1458
* Fix: Force AnalyticsSender to convert wpstg_settings to array before usage #1559
* Fix: Cloning backup Search & Replace does not work with new primary key conditional query #1556
* Fix: Fix labels on backup sites #1551
* Fix: Backup restore can not unserialize escaped serialized strings #1554

= 2.9.4 =
* New: Add filter to change the cache folder for creating & restoring backups #1528
* New: Huge performance improvement for search & replace in cloning / pushing / backup process #1522
* Fix: Call to undefined function human_readable_duration() on backup creation if WP is older than 5.1 #1527 #1525 #1535
* Dev: Add unit tests for Times class that is used in backup listing view
* Dev: Update db_version in SQL dumps to match WordPress 5.9 db version #1539
* Dev: Add command to get db_version from database

= 2.9.3 =
* New: Add support for WordPress 5.8.3
* New: Add filter for excluding files during cloning / backup #1494
* New: Add filter for overwriting max execution for database backup restore #1512
* New: Add filter to allow overwriting of the maximum allowed request time to make sure backup restore works for huge files. (19.000.000M database rows) #1510
* Tweak: Show custom uploads folder in tooltip description and explain better that changing a symlink image will also change the image on the production site. #1495
* Fix: If cloning a multisite subsite into external database, it does not clone / backup wp_users and wp_usermeta #1515
* Fix: Skip tmp single file plugin during backup PUSH copy process #1491
* Fix: Preserve table selection during PUSH and UPDATE even when all backup tables unselected #1488
* Fix: Make sure maximum memory consumption during cloning or backup is never higher than 256MB #1502
* Fix: Use custom implementation of wp_timezone() for backward compatibility to WordPress older than 5.3 #1505
* Fix: Override FileObject::fgets to make them behave exactly from SplFileObject of PHP < 8.0.1 #1506

= 2.9.2 =
* Hotfix: Fix CLONE PUSH BACKUP on Medium and High CPU Load on WP STAGING 2.9.1. Improve Performance of database backup #1492

= 2.9.1 =
* New: If cpu load setting is low make use of the file copy limit for pushing / backup process to increase copy speed #1485
* Enh: Add warning notice if WP_CRON_DISABLED is set to true as backup BG Processing depends upon it #1467
* Fix: Add own implementation of get_current_network_id() for backward compatibility when creating backup #1438
* Fix: Updating or resetting staging / backup site skips all WordPress core folders #1435
* Fix: Prevent 504 Gateway Timeout issue during Backup restore by force a low CPU LOAD (i.e. 10s) #1420
* Fix: Wrong directory path is displayed when update/reset a staging / backup site #1447
* Fix: Override SplFileObject::seek to make it consistent across all PHP version including PHP 8 when creating backup #1444
* Fix: Make FileObject::seek behave exactly as SplFileObject::seek from PHP < 8.0 when creating backup #1480
* Fix: Search Replace now works for Visual Composer / WP Bakery encoded pages on cloning backup creation #1442
* Fix: Adjust CSS of the "Backup in Progress" element #1466
* Fix: Clarify email sending tooltip description #1469
* Fix: Adjust CSS of the loader icon for showing backup creation #1487
* Tweak: Retain WP STAGING ( backup ) options during push #1417
* Tweak: Make PHP 5.6 minimum supported PHP version for backup #1448
* Tweak: Set WordPress 4.4 as minimum required WordPress version #1449
* Dev: Fix Queue working in PHP 8 and Add PHP 8 unit tests in backup fast tests #1450
* Dev: Cancel pending or running github actions backup fast tests if there is a new push on the same PR #1486
* Dev: Fix Queue working in PHP 8 and Add PHP 8 unit tests in fast tests #1450
* Dev: Cancel pending or running github actions fast tests if there is a new push on the same PR #1486

= 2.9.0 =
* New: Compatible up to WordPress 5.8.2
* Fix: Update notice is shown even when using latest version #1398
* Fix: Backup & cloning 100% compatible with PHP 8.0.12 #1281
* Fix: Skip search replace on backup & cloning query if it's size exceed preg functions limit #1404
* Fix: Skip inserting backup & cloning query if it exceeds mysql max_allowed_package. Show warning to user #1405
* Fix: Make db option wpstg_staging_sites always return an array #1413
* Fix: Fix dependency injection for backup notices class. Solve conflict with TranslatePress #1416
* Tweak: Use php version number as tag for php docker container #1407
* Tweak: Improve symlink tooltip text #1411
* Tweak: Refactor WP STAGING Pro to WP STAGING | PRO in notices #1409
* Tweak: Remove 16 characters limitation for the backup & CLONE NAME and keep it for CLONE DIRECTORY #1412

= 2.8.9 =
* New: Show a summary of selected tables and plugins in the backup push selection
* New: Ask user to allow sending non-personalized usage information for improving the backup & staginguser experience
* New: Adding improved and dedicated WP STAGING debug log for backup and staging.
* New: Better support for custom ( backup ) tables without a wp core table prefix. Allow cloning / backup of custom tables that do not begin with a WP table prefix to an external database #1304
* New: Now you can create a staging / backup environment for your entire multisite network #1263
* New: Add new logic for showing update notification for PRO version, compatible to staged rollout releases #1308
* New: Show warning notice about not changing wp-content or uploads dir path on staging / backup site #1313
* Tweak: Disable the notice about not messing with uploads or wp-content directories in backup site #1385
* Tweak: Lower memory consumption on backup creation #1301
* Tweak: Fix open staging / backup site button and text #1321
* Tweak: Layout of database comparison modal #1332
* Tweak: Make staging / upgrade site upgrade routine run always #1358
* Fix: Feedback modal not opened after disabling the backup plugin #1373
* Fix: Prevent cloning error by enclosing table name with backticks in CLONE / BACKUP and PUSH jobs #1388
* Fix: Duplicate primary key error that could occur on Push a backup / staging site #1322
* Fix: Dont rename themes/plugins with tmp prefix during push of staging / backup site if content cleaning option is enabled #1305
* Fix: No search & replace of wp option db_version if table prefix is db_, during CLONE / BACKUP / PUSH #1307
* Fix: Avoid upgrade error if wp option wpstg_staging_sites is empty or not an array not an array #1331
* Fix: Show an error if table can not be copied for any reason on cloning / backup process #1302
* Fix: CSS issue vertical center align finish label after push #1311
* Fix: Use WordPress local timezone when logging for clone and backups #1323
* Fix: Better support for custom plugin directories on the staging / backup site #1314
* Fix: Not all cloning / backup settings are cleaned during uninstall #1325
* Fix: Staging / backup site does not have orange admin bar after cloning #1329
* Fix: Warning if array key offset does not exist on search & replace of a backup #1334
* Fix: Disable WordFence plugin on the staging /backup site to prevent by renaming .user.ini to .user.ini.bak #1338
* Fix: Prevent empty database prefix in staging / backup site options if site is cloned to external database #1340
* Fix: List of staging / backup sites contains duplicate entries if staging sites were initially created with wp staging free 2.8.6, then upgraded to pro 4.0.3 and pro 4.0.5 #1349
* Fix: Show error and stop cloning / backup process if unable to create staging / backup site destination folder #1348
* Fix: Fix issue about checking rest url on backup / staging site #1354
* Fix: Fix exclude condition for tables during PUSH of a staging / backup site #1364
* Fix: Fix PUSH process when no table is selected #1387
* Fix: Enclose table name with backticks during quering in CLONE / BAKUP and PUSH jobs #1388

= 2.8.8 =
* 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

= 2.8.7 =
* 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
* Enh: Sort new staging sites in descending order by creation time #1226
* Enh: Warn if creating a backup in PHP 32 bits #1231
* Enh: Update the backups upload success message #1221
* Enh: Show a notice for outdated wp staging on free version of plugin #1250
* Enh: Refactor wpstg_existing_clones_beta in db option to wpstg_staging_sites #1211
* Enh: Update the message shown when the entire delete of the staging site fails #1257
* Fix: Fix a rare issue that could happen when creating a new staging 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, we now 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 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 log for some warning and critical messages #1244
* Fix: Split 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 into staging site reduce fatal errors on your staging site. Also show a notice about this #1255
* Fix: Skip scanning the root directory if all other directories are are unselected #1256
* Dev: fix the version of Selenium containers to 3.141.59-20210713 to avoid issues with broken latest version #1234

WP STAGING Backup & Cloning | Full changelog:
[https://wp-staging.com/wp-staging-changelog](https://wp-staging.com/wp-staging-changelog)

== Upgrade Notice ==

= 2.9.19 =
Recommended update! Users with certain password combinations could not log in to the staging site. This update also enhances the security.