=== UpdraftPlus: WP Backup & Migration Plugin ===
Contributors: Backup with UpdraftPlus, DavidAnderson, pmbaldha, DNutbourne, aporter, bcrodua
Tags: backup, database backup, wordpress backup, cloud backup, migration
Requires at least: 3.2
Tested up to: 6.9
Stable tag: 1.25.9
Author URI: https://updraftplus.com
Donate link: https://david.dw-perspective.org.uk/donate
License: GPLv3 or later

Backup, restore or migrate your WordPress website to another host or domain. Schedule backups or run manually. Migrate in minutes. Reliable and easy to use.

== Description ==

<a href="https://updraftplus.com">The UpdraftPlus Backup & Migration Plugin</a> is trusted by the WordPress community to backup, restore and migrate their WordPress websites. UpdraftPlus is actively installed on more than 3 million websites around the world.

= Backup with UpdraftPlus =

UpdraftPlus is the world’s highest ranking and most popular scheduled backup and migration plugin. Backup to your preferred storage location and restore in just three clicks.

Backup to Dropbox, Google Drive, Amazon S3 (or compatible), Rackspace Cloud, FTP, DreamObjects, Openstack Swift or email.

The paid version also allows you to backup to Microsoft OneDrive, Microsoft Azure, Google Cloud, Backblaze B2, SFTP, SCP, pCloud, WebDAV or UpdraftVault, our integrated storage option for UpdraftPlus.

Backup manually or schedule to run every 2, 4, 8 or 12 hours, daily, weekly, monthly or fortnightly.

= Restore with UpdraftPlus =

Your WordPress website is vulnerable. Your site may get hacked. Something could go wrong with an update or your server could crash. You might need to reverse a change made or a mistake caused by human error.

Whatever the reason, you can restore your WordPress website in just a few clicks with UpdraftPlus. Choose which components to restore (e.g. plugins, themes, database etc.), click again to restore, then click again to return to the main screen.

= Migrate with UpdraftPlus =

It’s easy to migrate your WordPress website to another web host, server or domain with this free version of UpdraftPlus.

To migrate, simply download your database, plugins, themes etc. from the source site, then upload them into your destination site.

When migrating, a built-in search-and-replace engine identifies old strings and replaces these to reflect the new location. UpdraftPlus saves you time and reduces the risk of broken links or missing files associated with manual migrations.

= Why UpdraftPlus? =

Writing a reliable backup and migration plugin that ‘just works’ consistently across millions of different WordPress deployments is hard. UpdraftPlus is relied upon to do exactly that. We’re trusted and actively deployed on more websites around the world than any other WordPress backup and migration plugin.

UpdraftPlus:

* Backs up, migrates and restores
* Offers a huge number of remote storage locations
* Allows you to schedule backups, so you can ‘set and forget’
* Is comprehensive and easy to use
* Is proven to work on over 3 million sites.

[vimeo https://vimeo.com/154870690]

= UpdraftPlus Premium =

The free version of UpdraftPlus will back up and migrate your website perfectly well. However if you need more features and options you can purchase our Premium version.

Backup and Migrate with UpdraftPlus Premium, and:

* Get automatic backups before updates. Restore the very latest version if a WordPress or plugin update breaks your site.

* Backup Incrementally. Changes are added to the master, saving server resources vs repeatedly backing up in full.

* Get more remote storage options including Microsoft OneDrive, SFTP, Microsoft Azure, WebDAV, Google Cloud, SCP, Backblaze and pCloud.

* Get 1GB of integrated storage with UpdraftVault for 99.999% reliability, redundancy and scalability.

* Get more control over how many backups are stored in a specified interval.
Restore from other backup plugins including BackWPup, BackupWordPress, Simple Backups and more.

* Run backups at set times e.g. during periods of low traffic.

* Backup to more than one location for added protection.

* Get detailed reports. Includes cryptographic checksums so you can verify the integrity of the backup files and more.

* Get Premium migration. Migrating to the destination site is more direct and can be done from the source site.

* Get Multisite / multi-network compatibility.

* Backup non-WP files and databases e.g. tables belonging to your e-commerce store or customisations to WordPress core.

* Get database encryption.

* Manage your backups and migrations from the WP-CLI.

* Get Premium Support.

Find out more <a href="https://updraftplus.com/comparison-updraftplus-free-updraftplus-premium/">on our comparison page</a>. UpdraftPlus Premium is available for purchase <a href="https://updraftplus.com/shop/">here</a>.

= Managing multiple websites? =

UpdraftCentral is a powerful remote control dashboard for WordPress that allows you to manage your backups, as well as updates, users, pages, posts, plugins and themes from one central location. Choose between:

* <a href="https://wordpress.org/plugins/updraftcentral/#description/">UpdraftCentral</a> (free, self-hosted)
* <a href="https://updraftplus.com/shop/updraftcentral-premium/">UpdraftCentral Premium</a> (paid-for, self-hosted)
* <a href="https://updraftplus.com/shop/updraftcentral-dashboard/">UpdraftCentral Cloud</a> (paid-for, fully-hosted)

Optimize your sites centrally by combining the power of WP-Optimize and UpdraftCentral or manage your backups centrally by combining the power of UpdraftPlus with UpdraftCentral.

= Need to create a temporary clone of your site? =

UpdraftClone makes it quick and easy to create a temporary sandbox for changes you want to try out. Simply select the versions of WordPress and PHP that you want, and we’ll do the rest. <a href="https://updraftplus.com/shop/updraftclone-tokens/">More about UpdraftClone</a>

= The full suite of plugins from Team Updraft and friends =

* <a href="https://updraftplus.com">UpdraftPlus</a>.
 <b>Backup, migrate and restore.</b> Rated 5* on the plugin directory and trusted by more than 3 million WordPress website owner

* <a href="https://getwpo.com">WP-Optimize</a>.
 <b>Clean the database, compress images and caching.</b> Optimize your WordPress website. 5* user rating. 1 million + active installs.

* <a href="https://aiosplugin.com">All-In-One Security (AIOS)</a>.
 <b>Secure your WordPress website.</b> Comprehensive, feature rich and easy to use. 5* user rating and 1 million + active installs.

* <a href="https://wpovernight.com">WP Overnight</a>.
 <b>Quality Extensions for your WooCommerce store.</b> 5* rated invoicing, order and product management, customer management solutions and more.

* <a href="https://easyupdatesmanager.com">Easy Updates Manager</a>.
 <b>Take control of updates.</b> Lots of features for free, and a Premium version with even more - over 300,000 users.
 
* <a href="https://www.internallinkjuicer.com">Internal Link Juicer</a>.<b>Boost your SEO.</b> Automate internal links within your WordPress website. Save time and rank higher in the search engines.

For other useful, free plugins see <a href="https://profiles.wordpress.org/davidanderson/#content-plugins">our lead developer's profile, here</a>.

= Are you multilingual? Can you translate? =

Do you want to help people that speak your language to backup, migrate and restore their WordPress websites?

The UpdraftPlus backup, migration and restoration plugin is ready and waiting. The translation process is easy, and web-based – please go here for instructions: https://updraftplus.com/translate/.

Or, if you’re already an expert WordPress translator, just pick out the .pot file from the wp-content/plugins/updraftplus/languages/ directory – if you scan for translatable strings manually, then you need to get these functions: _x(), __(), _e(), _ex(), log_e().

Many thanks to our existing translators.



== Frequently Asked Questions ==


= How do I install the UpdraftPlus backup & migration plugin? =

Here are the installation guidelines from our <a href="https://www.youtube.com/watch?v=7ReY7Z19h2I">YouTube channel</a> or from <a href="https://updraftplus.com/download/">our website</a>.

= What if I have a problem / need support ? =

If you’re struggling to backup, migrate or restore there’s help available.

Search existing topics on the WordPress support forum or post a new one. Our support and development teams check and respond to queries everyday.

UpdraftPlus Premium customers can log a ticket directly with our support and development teams via the <a href="https://updraftplus.com/support/">UpdraftPlus support hub</a>.

Before you get in touch, please ensure that you have read through our <a href=https://updraftplus.com/frequently-asked-questions/">FAQs</a> and that you’ve updated to the latest release of our plugin.

It helps greatly if you can include the backup log and as much other information as possible in your report, for example the PHP version, your website, the error description, how you got to the page that caused it, any other relevant plugins you have installed, plus any other information that might be of use.

To find the backup log: there are links to download the logs on the UpdraftPlus settings page in the plugin - or you may be emailed it. Failing that, FTP into the directory wp-content/updraft and look for it there.

If you know how, please send your PHP error logs - just the few lines that appear when you run a backup, often the file called error_log, possibly in your wp-admin directory which you can check via FTP. If you’re a programmer that can debug and send a patch, that’s even better.

= When it comes to migration, what does the premium plugin do that the free plugin can't? =

Migrating in the free plugin involves downloading the backups from the source site then uploading these to the destination site.

To find the backup log: there are links to download the logs on the UpdraftPlus settings page- or you may be emailed it. Failing that, FTP into the directory wp-content/updraft and look for it there.

Both free and Premium plugins include a built-in search-and-replace engine to replace old strings with the new location.

If migration is all you require, and for simple single site migrations the free plugin will likely be enough to meet your needs. If you have additional needs around backups e.g. the ability to backup before updates, if you require more remote storage locations or if you have a WordPress multisite then we recommend UpdraftPlus Premium for the additional benefits that it brings.

= UpdraftPlus runs out of time when it’s trying to backup, after I have left it for some time to give it a good chance. What can I do? =

This problem is probably caused by your account being starved of resources by your (cheap) web host provider. This is far from ideal; although UpdraftPlus supports resuming backup runs right from the beginning to avoid everything having to be done at once, it has its limits. The best thing is to choose a more reputable web host. Failing this, try going into the “Expert settings” and reducing the size at which zip files are split. UpdraftPlus is known to successfully backup websites that run into the multiple-gigabytes on web servers that are not resource-starved.

== Changelog ==

The <a href="https://updraftplus.com/news/">UpdraftPlus backup blog</a> is the best place to learn in more detail about any important changes.

N.B. Paid versions of UpdraftPlus Backup / Restore have a version number which is 1 higher in the first digit, and has an extra component on the end, but the changelog below still applies. i.e. changes listed for 1.16.32.x of the free version correspond to changes made in 2.16.32.x of the paid version.

= 1.25.9 - 12/Nov/2025 =

* FIX: A regression that resulted in the list of tables within the "Database size" tools not being displayed, due to code refactoring implemented in version 1.25.8.
* TWEAK: Add function for returning Advanced Tools menu data in a structured format.
* TWEAK: Refactoring connection keys data function to deduplicate and read from a single source
* TWEAK: Restored the missing backup confirmation pop-up icon for older WordPress versions.
* TWEAK: Stripped unwanted HTML from the plain-text notice and added new lines after each sentences in the sale offer message.
* TWEAK: Update Black Friday seasonal sale URL/link 
* TWEAK: Updated "Check our premium" and "Back up non-WP tables and external databases" URL links to avoid HTTP 404 (not found) errors.
* TWEAK: Update database charset detection to support both CHARSET= and CHARACTER SET syntax in SQL dumps
* TWEAK: Replaced deprecated (boolean) casting

= 1.25.8 - 07/Oct/2025 =

* FIX: A fatal error in UpdraftCentral when trying to manage posts when no posts exist.
* FIX: During a failure in the file copy process while restoring, a directory was created with the same name as the file, and the restoration process persisted when it ought to have been stopped
* FIX: PHP fatal error in WP CLI commands for listing or scanning existing backups on PHP 8.0+ after a rescan
* TWEAK: Add UpdraftCentral support to import_settings function with return values
* TWEAK: Add support for new Amazon AWS S3 regions
* TWEAK: Added Burst Statistics to the family plugin list
* TWEAK: Adjust the backup logic to recognize invisible columns, and when that occurs, use a query that explicitly specifies the required columns instead of relying on "SELECT *".
* TWEAK: Ensure the restore process terminates with an error when file copying/moving fails
* TWEAK: Improve the backup email report to better reflect the backup types and status.
* TWEAK: New endpoint for getting locked settings data for UpdraftCentral
* TWEAK: Perform a search and replace on __PHP_Incomplete_Class to make it work with unserialize() when object deserialization is not allowed.
* TWEAK: Refactoring site info section to deduplicate and read from single source
* TWEAK: Resolved a PHP warning triggered when uploading the plugin via the WP Plugins page — caused by translation functions (e.g. __()) being called too early.
* TWEAK: Some text was left out of the translation POT file, which meant that certain translator plugins and libraries could not find the text, making it impossible to translate. 
* TWEAK: Update the db_size function to allow returning either data or html, depending on the argument that is passed in.

= 1.25.7 - 07/Aug/2025 =

* FIX: A regression for verifying the presence of old folders in the backup directory; old folders created during the restoration of the "Others" entity were not detected correctly.
* FIX: The per-backup lock entries were not removed, resulting in an accumulation of these entries in the database over time. (Includes clean-up of old entries).
* TWEAK: Add IDrive e2 and MEGA to the S3-Compatible storage list
* TWEAK: Internal function call to prevent a PHP 8.1 deprecation notice on fresh WP installs
* TWEAK: Add wp-staging to the default uploads exclusion list
* TWEAK: Add UpdraftCentral handler for site icon upload request.
* TWEAK: Added support for the database view dashicon in WordPress versions prior to 5.5.
* TWEAK: Include site icon information in the 'get_site_icon' response of the UpdraftCentral core module.
* TWEAK: Resolve the empty list issue on the backup email reports created by the UpdraftPlus free version
* TWEAK: The "Get every feature of UpdraftPlus Premium" box shouldn't be displayed after purchases got claimed/activated
* TWEAK: Remove seasonal (new year, summer, spring and plugin collection) sale notices
* TWEAK: Handle unsupported character set defined for table fields during database pre-restoration.
* TWEAK: Updated links in the Premium Extensions tab of the plugin’s admin menu page.

= 1.25.6 - 27/May/2025 =

* FIX: A regression that prevented the remote storage label from being updated
* FIX: A regression that could cause unintended behaviour when restoring special files
* FIX: A fatal error when executing a standalone php backup script with "do_action('updraft_backup_all')".
* FIX: Regression that caused certain features (e.g. PHP Info) to break due to a missing HTML attribute on the triggering element
* FIX: An issue that caused migration failure for sites using the Performance Lab plugin or other plugins implementing an object cache drop-in
* TWEAK: handle non fatal file rename failure during restore
* TWEAK: The automatic backup feature is now disabled by default on new installs
* TWEAK: return post status and formatted date from UDC post API
* TWEAK: Replace a call to unserialize() in the Dropbox storage library
* TWEAK: Validate the DreamObjects endpoint to ensure only expected DreamObjects enpoint formats can pass through.
* TWEAK: Position the "includes all tables not listed below" option at the beginning of the first known table in the DB restoration widget.
* TWEAK: Add a new default endpoint in DreamObjects along with UI to allow users to add custom endpoint in the format "s3.<region>.dream.io".
* TWEAK: The Azure Storage Service add-on now requires PHP 5.6 or higher to support the mandatory use of TLS 1.2, which will be enforced starting August 31, 2025.

= 1.25.5 - 17/Apr/2025 =

* FIX: A bug that prevented the Rackspace "Create new API user and container" dialog from opening.
* TWEAK: An HTTP header intended to terminate the browser's connection was incorrectly assigned a value that the header does not support.
* TWEAK: Ability to automatically choose the proper checkout page when the user is about to buy TeamUpdraft products from within the plugin
* TWEAK: Clear Divi theme CSS cache at the end of the restoration process
* TWEAK: Resolve PHP warning in pCloud addon when upgrading from free to premium version.
* TWEAK: Update error messages when the user fails to connect to their TeamUpdraft account on the 'Premium/Extensions' tab.

= 1.25.4 - 24/Mar/2025 =

* FIX: Regression in 1.25.3 - missing database encryption input field due to the use of the "wp_kses_post" function that doesn't allow "<input>" tag to be rendered
* TWEAK: Add new fields to UpdraftCentral handler

= 1.25.3 - 21/Mar/2025 =

* FIX: An issue that prevented an UpdraftClone backup from sending when attempting to boot an UpdraftClone from WP_CLI
* FIX: An issue that prevented changing the default UpdraftClone region when attempting to boot an UpdraftClone from WP_CLI
* TWEAK: The "x-amz-content-sha256" request header is now signed and included in the S3 signature version 4. Some S3-based providers mandate the signing of this header for accurate signature calculation.
* TWEAK: Introduce a new constant named "UPDRAFTPLUS_S3_EXCLUDE_SIGV4_CONTENT_SHA256_HEADER". This constant allows for the exclusion of the "x-amz-content-sha256" headers from being signed if desired; it accepts a boolean value, defaulting to false.
* TWEAK: Add 'noopener, noreferrer' window features to the Javascript's window.open() call to prevent the target page from changing content of the original page
* TWEAK: Favicon fetching feature for UpdraftCentral
* TWEAK: Minor tweak to "updates" module to include icons to plugin and screenshot url to theme update items  
* TWEAK: New UpdraftCentral module for background fetching
* TWEAK: Revise the wording found in the expert settings regarding the deletion of local backup files
* TWEAK: Update seasonal notices
* TWEAK: Enhance the notifications to signify the introduction of other plugins that belong to the same plugin family
* TWEAK: To avoid CORS issues and ensure the UpdraftPlus plugin is functional and accessible via the UpdraftCentral dashboard, the hostname and/or domain origin is changed from updraftplus.com to teamupdraft.com.
* COMPATIBILITY: Resolved PHP deprecation warnings in lockadmin.php by eliminating the use of dynamic properties

= 1.25.2 - 26/Feb/2025 =

* FEATURE: Added a "Cron events" tab in the Advanced Tools section to check for the presence of the UpdraftPlus cron job.
* FIX: Resolve the issue of uploads to pCloud failing after a folder name change by resetting the "folderid" whenever the folder name is updated.
* TWEAK: Add site information for WooCommerce and HPOS support to the database backup header.
* TWEAK: Create a log entry when a bot verification page appears during the file upload in the migration procedure.
* TWEAK: Improve error message clarity for failed connection tests in migration.
* TWEAK: Include details in the backup log file about the status and availability of the proxy configured in the system.
* TWEAK: Update the Google library to support the WP_PROXY_HOST and WP_PROXY_PORT constants.
* TWEAK: Update the link for Onedrive and Azure app creation
* COMPATIBILITY: Got rid of PHP 8.4 deprecation messages caused by the E_STRICT constant usage

= 1.25.1 - 11/Jan/2025 =

* SECURITY: Fix a non-persistent reflected XSS vulnerability due to a missing nonce combined with missing sanitisation. This could allow an attacker, who persuaded you to click a personally-crafted link to your site's dashboard whilst you were logged in, to once run JavaScript code in your dashboard. Thanks to Asaf Mozes for finding and responsibly disclosing this issue.
* FIX: Prevent the restoration from failing when there is a 'sync-xhr=()' permission policy on the response header.
* FIX: Improve the approach of acquiring a suggested region for Amazon AWS S3 if a failure arises during the getBucketLocation() call, particularly when the XML response fails to provide a field for the suggested region - this resolves issues with regions (e.g. us-east-2) which recently changed their response behaviour
* TWEAK: Broaden the support to incorporate the "ap-southeast-4" region of Amazon AWS S3 and additional recently updated regions
* TWEAK: A regression in the paid version update checker to version 4.13.2, resulting in non-appearance of notices concerning subscription status or WP version compatibility.

= 1.24.12 - 23/Dec/2024 =

* FIX: The pre-restoration stage failed to properly address the tables that were to be excluded, which caused a logical error that misread the checked "include all tables not listed" option as an instruction to restore every table
* FIX: Update PHPSecLib library to version 2.0.48 which has the fixes for the "gmp_pow(): base and exponent overflow" on certain PHP versions and could cause backups to fail on the SFTP remote storage
* TWEAK: Complete the review and removal of calls to the unserialize() PHP function allowing class instantiation begun in 1.24.7. (The final removal involved a theoretical security defect, if your development site allowed an attacker to post content to it which you migrated to another site, and which contained customised code that could perform destructive actions which the attacker knew about, prior to you then cloning the site. The result of this removal is that some search-replaces, highly unlikely to be encountered in practice, will be skipped).
* TWEAK: Drop search and replace feature for PHP 5.2 users (to fulfil the preceding item)
* TWEAK: Tweak UpdraftCentral media module to add "has_image_editor" property to each media item
* TWEAK: On the restoration screen in a multisite configuration, the dropdown labeled "which site to restore" was covering other HTML elements, which caused some buttons to be positioned at the bottom instead of at the top
* TWEAK: Avoid deregistering jQuery-UI CSS if already printed by other plugins to prevent compatibility issues
* TWEAK: In the context of database restoration, the execution of LOCK and/or ALTER SQL statements must be avoided for any tables that are part of the "skipped tables" list
* TWEAK: openssl_free_key() is only needed on PHP < 8
* TWEAK: Various coding style changes to comply with "Plugin Check" rules

= 1.24.11 - 15/Nov/2024 =

* TWEAK: Do not request drive.readonly scope on Google Drive connections, due to Google's app permissions review (unannounced and requires us to create a Youtube video for their review process) - this means that (until the review completes) new connections to Google Drive can only access backups created by UpdraftPlus directly, and not backups which you manually upload to Google Drive. This restores the ability to make new connections to Google Drive.
* TWEAK: Adjustment of the UpdraftPlus_S3_Compat class to preserve compatibility with the external UpdraftPlus AWS SDK plugin (https://github.com/DavidAnderson684/updraftplus-aws-sdk).

= 1.24.9 - 14/Nov/2024 =

* FIX: A regression in 1.24.8 when handling restoration of wp-config.php
* TWEAK: The changes in handling of loading text domains in 1.24.8 did not cover most cases
* TWEAK: Introduce the "updraftplus_use_builtin_wpcore_restoration" filter which can be used to restore WP-Core entity using a different WP-Core restoration mechanism especially in a case that the admin-ajax.php file couldn't be deleted during the restoration

= 1.24.8 - 13/Nov/2024 =

* TWEAK: Add descriptions for the 'Clone Package' dropdown when creating a clone.
* TWEAK: Move the "load_plugin_textdomain" call from being called through "plugins_loaded" action to being called via "init" action
* TWEAK: Update the log message to specify that backup files are marked as "processed" when no remote storage is selected, and as "uploaded" when remote storage is selected.
* TWEAK: Some code tidying in the restore class

= 1.24.7 - 04/Nov/2024 =

* TWEAK: Include the .part file extension into the cleanup list, guaranteeing that files associated with this extension are regularly deleted from the backup directory
* TWEAK: The update functionalities in the WordPress plugin information box (6.5 and later) have been adjusted to stop updates from taking place in the same window, ensuring that the "auto-backup before update" dialog appears as intended
* TWEAK: Add customized "unserialized" method into the UpdraftPlus class which can handle the use of the "options" argument or its absence when running across different PHP versions
* TWEAK: Add the UPDRAFTPLUS_SEND_UNWRITABLE_BACKUP_DIRECTORY_EMAIL constant to disable the sending of unwritable backup directory emails to users.
* TWEAK: Clearer notifications to users regarding unconfigured remote storage settings and/or the selection of remote storage that are not part of their UpdraftPlus version
* TWEAK: During the resumption of OneDrive’s chunk uploads, the authorisation header and bearer token should not be included as it may lead to an unauthenticated error due to a different upload URL.
* TWEAK: Implement code to enable automatic activation of the UpdraftPlus plugin during the migration process from a multisite setup to a standalone site
* TWEAK: In a multisite environment, ensure that users can access the UpdraftPlus plugin page even in the absence of the WP_ALLOW_MULTISITE constant
* TWEAK: UpdraftClone now supports PHP 8.4
* TWEAK: Prevent a potential PHP deprecation notice when zip creation fails

= 1.24.6 - 25/Sep/2024 =

* TWEAK: In 1.24.5, the browser title wrongly displayed as "UpdraftPlus" when accessing an unrelated plugin page using the main menu.

= 1.24.5 - 24/Sep/2024 =

* FIX: Incorrect regular expression for DigitalOcean Spaces endpoint
* FIX: CSS conflicts with the LearnDash LMS Instructor Role Add-on plugin which caused some UI elements to disappear
* TWEAK: Reorganize UpdraftPlus in left-hand menu and rename it to "UpdraftPlus"; to disable it, follow this guide: https://updraftplus.com/new-location-of-updraftplus-in-the-wordpress-dashboard/
* TWEAK: Add span wrapper to UpdraftCentral connection failed message
* TWEAK: Add the "Go here to complete your settings" link into the appropriate admin notice that when clicked will jump to the UpdraftVault configuration if no settings are specified.
* TWEAK: Adjust regex patterns that didn't match some temporary files, causing them to not be automatically removed
* TWEAK: After a restoration, clicking "Delete old folders" will also remove the wp-config-pre-ud-restore-backup.php file
* TWEAK: On the settings page/tab; prevent the floating "Save changes" button from getting clicked multiple times and/or sending multiple AJAX requests
* TWEAK: Remove pCloud from the add-ons list on the "Premium / Extensions" tab (there is no change in its availability)
* TWEAK: Renamed wp-config-backup.php to wp-config-pre-ud-restore-backup.php to clarify its purpose as a backup file created before restoring WordPress core entities, and it will only be generated if the user does not select the "Over-write wp-config.php" option during restoration, as the previous name was too generic and could cause confusion
* TWEAK: The popup modal for automatic plugin updates fails to retain the backup checkbox selection when the "remember" option is enabled in a Multisite environment.
* TWEAK: Updated autobackup selector to resolve issues caused by the missing "update-link" class in WPForms Pro plugin

= 1.24.4 - 2/Jul/2024 =

* FIX: Case-sensitive issue of bit field type names in a table.
* FIX: Resolved issue where backup files could not be deleted from remote storage when either the root directory was active or no directory was specified in the OneDrive configuration form.
* FIX: When users attempt to update a plugin using the "View Version x.x.x Details" link instead of choosing "Update Now," the plugin is successfully updated; however, the UI incorrectly displays an "Update Failed" message
* FIX: Conflict with the Gravity Forms plugin when there was an older version of jQuery UI presented on the "Installed Plugins" page.
* TWEAK: Ensure compliance with Google Granular Consent and check for required permissions during storage access authorisation of Google Drive and Google Cloud
* TWEAK: Prevent PHP warning and deprecation messages after completing access authorisation to Google Drive storage.
* TWEAK: Prevent PHP warning when Dropbox remote storage has been authenticated and the page is refreshed.
* TWEAK: Added filter updraftplus_working_dir_localpath to allow temporary unzip path to be modified by developers
* TWEAK: Modify the displayed title of the plugin from "WordPress Backup & Migration Plugin" to "WP Backup & Migration Plugin" as required by the plugin directory team
* TWEAK: Parse certain php events and log proper error messages

= 1.24.3 - 30/Apr/2024 =

* FIX: Regression in 1.23.16 for improving logs which then caused incorrect_offset error reported by Dropbox wasn't properly handled.
* TWEAK: The UpdraftVault remote storage can handle Wasabi as well as Amazon S3 storage in the background.
* TWEAK: Fix WP_Theme_JSON_Resolver::theme_has_support deprecation warning for UpdraftCentral  
* TWEAK: Prevent "PHP Warning: Undefined property: UpdraftPlus_BackupModule_pcloud::$description" during rescan remote storage.
* TWEAK: Prevent PHP deprecation warnings during database backups when encountering null values in bit field types.
* TWEAK: Show a warning message when the WP_ACCESSIBLE_HOSTS constant is defined and updraftplus.com is not permitted by its value
* TWEAK: Update notices
* TWEAK: Split multiple sentences into separate translation function calls.
* TWEAK: Trim spaces from S3-Compatible (Generic) endpoint.

= 1.24.2 - 26/Mar/2024 =

* FIX: The "Continue restoration" and "Dismiss" buttons on the unfinished restoration dialog were not responsive to being pressed due to a recent regression
* FIX: Conflict with other plugins due to different version of third party library (Guzzle) and the composer autoload.php was called too early
* FIX: Undefined "NET_SCP_LOCAL_FILE" constant when SCP was in use for the SFTP/SCP remote storage
* TWEAK: Add compatibility fields when returning plugins and themes to UpdraftCentral
* TWEAK: Due to issues in some cURL versions 7.x in handling HTTP/2 connections, all HTTP connections to the OneDrive API are now forced to use HTTP/1.1 version, on cURL versions after 7.61 and before 8.0. Also, a constant named UPDRAFTPLUS_ONEDRIVE_CURL_HTTP_VERSION can be set in the wp-config.php file to change the default HTTP version to another preferred version
* TWEAK: Adjust margin to fix broken UI for the 'View logs' button on backups.
* TWEAK: Ensure all "SET SQL_MODE" statements in the database backup file are internally handled and are subjected only to a restoration outside UpdraftPlus plugin
* TWEAK: Prevent PHP 8.2 coding style deprecation notices in the autobackup addon
* TWEAK: In the context of OneDrive's chunk upload, authorisation header and bearer token should not be included during upload session as it may lead to 401 HTTP status due to different upload URL
* TWEAK: Remove default value for updraftplus_https_to_http_additional_warning and updraftplus_http_to_https_additional_warning filters.
* TWEAK: Set the SQL_MODE to 'NO_AUTO_VALUE_ON_ZERO' in the database backup file.
* TWEAK: Seasonal notice content update for 2024 
* TWEAK: During the operations that require phpseclib, include the composer autoload.php only when the phpseclib is really needed

= 1.24.1 - 21/Feb/2024 =

* FEATURE: Implement Backblaze Object Lock support (Premium version)
* FIX: The email backup and basic report setting didn't work causing notification email confirming backup status couldn't be delivered to admin's email address (free version)
* FIX: Fix WP-Optimize premium discovery for UpdraftCentral
* FIX: Regression in 1.23.16 for correcting calls to translation functions which then caused some HTML attributes to be empty
* FIX: Restoring backup sets via Migrate/Clone tab had caused all associated backup entities being downloaded immediately ignoring user preferences about the entities they wanted to restore
* FIX: Third-party library conflict (phpseclib) with WP All Import Pro and AIO WP Migration plugins that caused failure in testing SFTP credentials and backing up to the SFTP remote storage
* FIX: Restore compatibility with WordPress multisite running on versions < 4.9 caused by use of function not present before then
* TWEAK: Add new translation entries for UpdraftCentral 
* TWEAK: Got rid of PHP 8.2 deprecation messages caused by a null value being passed to the htmlspecialchars() function and creation of dynamic property
* TWEAK: Got rid of PHP 8.3 deprecation messages caused by calling get_class() without arguments.
* TWEAK: Refactor methods in UpdraftPlus_Database_Utility class
* TWEAK: Send an email if the backup directory is not writable.
* TWEAK: Add and set the `filename_only` parameter to reduce search times when looking for specific backup files in Dropbox.
* TWEAK: Autoload PHP secure communication library (phpseclib) in a better way that would prevent already-loaded phpseclib classes (by other plugin) from being used in certain operations
* TWEAK: Add updraftplus_backup_db_header_append filter to allow site owners to include arbitrary content in their database backup header

= 1.23.16 - 23/Dec/2023 =

* TWEAK: Added demo link for the family plugin in advertisement
* TWEAK: Removed https / http prefix from s3generic endpoints
* TWEAK: Resolve PHP 8.0 compatibility with ob_implicit_flush function
* TWEAK: Dropbox error logs improvement
* TWEAK: As required by the wordpress.org plugin team, all UpdraftPlus news is forbidden to be displayed in the "WordPress News" section of the dashboard for users of the free plugin even if consent is first given.
* TWEAK: Fix some incorrect calls to translation functions

= 1.23.14 - 30/Nov/2023 =

* FIX: Resolved Google Cloud remote storage authentication flow
* TWEAK: Changed updraftvault links functionality to open in different tab
* TWEAK: Clarify significance of warnings in report emails
* TWEAK: Make the news-consent's layer fit with the confirmation text thus removing empty space that can reveal some of the UpdraftPlus news
* TWEAK: Declare a shim "php_uname" function when it's found to be undefined to prevent a fatal error in the phpseclib library (which calls it)

= 1.23.13 - 22/Nov/2023 =

* FIX: An issue that prevented incremental backups from running via WP-CLI or Cron when the option to backup mu-plugins was enabled but no mu-plugins existed
* FIX: OneDrive remote storage authentication was giving the error "Invalid input."
* FIX: The option to back up additional, user-chosen files (i.e. the morefiles entity) was no longer present in the UI
* TWEAK: Remove unused "migrator-lite.php" string during search and replace operations
* TWEAK: Replace remaining hardcoded text domain with UPDRAFTCENTRAL_TEXT_DOMAIN placeholder within the central folder
* TWEAK: LiteSpeed admin dashboard warning is now displayed upon completion of migration on the destination site, even after dismissing the message on the source site.
* TWEAK: Do not show UpdraftPlus news in the WordPress events and news widget section without first gaining user consent
* TWEAK: Change order of checks when seeing if cPanel is present/accessible for asking about disk quota in order to prevent unwanted an PHP notice when safe_mode is active
* TWEAK: Prevent potential fatal error if something has modified an updates check's 'translation' property to be invalid before passing on to UpdraftPlus
* TWEAK: Update bundled cacert.pem file

= 1.23.12 - 08/Nov/2023 =

* FIX: Issue that prevented some database restores from completing due to a change in wpdb in WordPress 6.4
* TWEAK: Replace Javascript onchange event with oninput event to detect changes made for HTML <input> tags on the settings page, also to add <textarea> to the event handler so that unsaved changes can be detected

= 1.23.11 - 03/Nov/2023 =

* SECURITY: Fix a vulnerability which could, if you had Google Drive storage enabled, and if an attacker targetted a logged-in administrator on your site and persuaded them to access a specific URL that the attacker creates, add the attacker's own Google Drive account to the saved storage methods. Thanks to Nicolas Decayeux of Patrowl for finding and disclosing this issue.
* FEATURE: Add JSTree for Google Drive to select existing folder
* FEATURE: The "Must-use plugins" backup entity can be backed up and restored separately in a normal WordPress site
* FIX: OneDrive folder case sensitivity issue (successfully uploaded backup files to the remote storage but failed in pruning old backup files due to different letter capitalisation; also happened in manual deletions)
* FIX: When two instances of WebDav remote storage were sequentially added in the Premium version, filling some fields of the latest instance would break the WebDav URL of the previous instance
* TWEAK: Update phpseclib library from version 1 to 2. As previously advised, this also means that these features (Database Encryption, Dropbox & SFTP/SCP remote storage, and UpdraftCentral key creations) will no longer be available and can cause a fatal error when running on PHP 5.2
* TWEAK: Add a link to Trustpilot in the review prompt
* TWEAK: Added a warning message when the WP_HTTP_BLOCK_EXTERNAL is defined and set to true
* TWEAK: Added the "Copy to clipboard" button under the self-hosted central option
* TWEAK: File size is shown when pressing on the backup entity
* TWEAK: Fix the restore dialog to not display "plugins" checkbox when only there's "mu-plugins" entity
* TWEAK: Fixed PHP 8.2 deprecation messages caused by a null value being passed to the rtrim() function
* TWEAK: Resolve PHP deprecations for the dynamic property access by declaring the variables in the class
* TWEAK: Includes the plugin.php file path if "get_mu_plugins" function does not exist.
* TWEAK: Provide default options for function UpdraftPlus::backup_all()
* TWEAK: Add and call the `litespeed_finish_request()` function to ensure the HTTP connection made from the browser gets closed immediately without having to wait the process to complete thus leaving it run in the background
* TWEAK: Ensure no PHP "Class not found" is showing up during credentials testing
* TWEAK: Add type checking in UpdraftPlus::handle_url_actions() to prevent plugin conflicts causing PHP errors on PHP 8+

= 1.23.10 - 05/Sep/2023 =

* TWEAK: New S3 signature version setting is added to the S3-Compatible (Generic) configuration form, giving an opportunity for the user to choose which signature version to use (SigV2 or SigV4)
* TWEAK: Enable PHP 8.3 (see: https://stitcher.io/blog/new-in-php-83) support in UpdraftClone
* TWEAK: Adjust fread() sizes for better performance when uploading an archive via the widget

= 1.23.9 - 14/Aug/2023 =

* FIX: Fatal error of Uncaught ArgumentCountError when the UpdraftPlus settings page is browsed from an IP-adressed site (i.e. no hostname) on PHP 7.1+
* FIX: Incorrect caching mechanism such that when multiple Google Drive storage back-ends were in use (Premium feature), uploading to a storage would fail due to unmatched folder ID taken from a different storage instance
* TWEAK: Define class properties in UpdraftPlus_Addons_Migrator class for PHP 8.2 compatibility

= 1.23.8 - 08/Aug/2023 =

* FEATURE: Given the basic migration feature in the free plugin
* FIX: Content-MD5 and any V2-related headers were always included in the S3's V4 SignedHeaders even though the headers were not presented in a HTTP request
* FIX: Generating URL-encoded queries for a canonical request should have used a method/mechanism which encoded query values according to RFC 3986 (for consistency and for not breaking the code)
* FIX: Search / replace database not working on Admin dashboard > Settings > UpdraftPlus Backups > Advanced Tools > Search / replace database on PHP 8.2 due to stricter type checking
* FIX: A newly added subsite that was restored from a normal site to the multisite was not listed in the site list in the multisite
* FIX: Manual deletion of backup sets appeared to skip some files when multiple instance and/or remote storage were in use
* FIX: The SFTP remote storage stopped working in the UpdraftPlus 2.23.6 release. Reverted the change "TWEAK: Validate SFTP key field on credential test and before save"
* TWEAK: Add a warning in the log file if AWS connection fails and a TLSv1.2 connection test fails
* TWEAK: Add warning for user if only PclZip available
* TWEAK: Fix unable to switch tab when a plugin (wrongly) loads certain CSS onto UD's settings page
* TWEAK: Remove the word 'apparently' in the backup success message
* TWEAK: Update to latest phpseclib 1.0.X version (prevents deprecation notice on PHP 8.1+)
* TWEAK: Change "s3" property to "public" in UpdraftPlus_AWSRequest class for PHP 8.2 deprecation compatibility
* TWEAK: Fixed Missing/ broken links for the pCloud image in addons tab
* TWEAK: Buying UpdraftClone tokens through inline checkout
* TWEAK: Fixed Spelling errors in updraftplus repo
* TWEAK: Added save button at the top of setting tab content
* TWEAK: UpdraftCentral module now, by default, overwrites the same existing theme installed on the remote sites (if any), regardless of what version is currently installed or what version being uploaded and installed
* TWEAK: Define class properties in Updraft_Checkout_Embed class for PHP 8.2 deprecation compatibility
* TWEAK: Update the composer package yahnis-elsts/plugin-update-checker for PHP 8.2 compatibility
* TWEAK: Added username and email details for authenticated dropbox account in updraftplus settings
* TRANSLATIONS: Split sentences to make one sentence in any  translation functions

= 1.23.7 - 04/Jul/2023 =

* FIX: When Dropbox returns an error, this error was not always correctly passed up to the logging layer
* FIX: Search / replace database not working on Admin dashboard > Settings > UpdraftPlus Backups > Advanced Tools > Search / replace database on PHP 8.2 due to stricter type checking
* FIX: The SFTP remote storage stopped working in the UpdraftPlus 2.23.6 release. Reverted the change "TWEAK: Validate SFTP key field on credential test and before save"
* TWEAK: Fixed Missing/ broken links for the pCloud image in addons tab
* TWEAK: Buying UpdraftClone tokens through inline checkout
* TWEAK: Prevent PHP warning during some migrations when no table list provided

= 1.23.6 - 19/Jun/2023 =

* FIX: Search / replace database not working on Admin dashboard > Settings > UpdraftPlus Backups > Advanced Tools > Search / replace database on PHP 8.2 due to stricter type checking
* TWEAK: Remove the incremental dropdown on incremental backup restore when the user selects only the database to restore
* TWEAK: Validate SFTP key field on credential test and before save
* TWEAK: Remove the unused UpdraftPlus_S3::getHttpUploadPostParams() method
* TWEAK: Attempt to workaround some web hosts' opcode cache producing incorrect error upon upgrade
* COMPATIBILITY: Fix pCloud deprecated warning in PHP 8.2
* COMPATIBILITY: Fix Google Cloud deprecated warning in PHP 8.2
* COMPATIBILITY: Fix Google Drive deprecated warning in PHP 8.2
* TWEAK: Fixed issue with cron jobs not clearing after wiping settings
* TWEAK: Added link to WP-Optimize in the database size tab in the advanced tools

= 1.23.4 - 16/May/2023 =

* SECURITY: Fixed a missing nonce combined with a URL sanitisation failure, which could lead to a targeted XSS opportunity (if an attacker persuades a logged-in administrator to both re-authorise their connection to a remote storage (e.g. Dropbox) and then to follow a link personally crafted for their site before re-authorising whilst logged in, he can then store a fixed JavaScript payload in the WP admin area (they would need a further route to use that ability to cause any damage). Because of the need for the administrator to co-operate in multiple steps, this attack is very unlikely (but you should of course still update).
* FIX: DigitalOcean S3-compatible storage does not work with disabled SSL entirely where possible settings.
* FIX: If there was an error or network connectivity issue on first attempt of uploading a plugin/theme file, then the second attempt of uploading the same file would make the file become corrupted thus resulting in installation failure.
* COMPATIBILITY: Suppress htmlspecialchars deprecation warnings on PHP 8.1
* COMPATIBILITY: Suppress some PHP 8.2 deprecation notices from use of ${} style variables, and others from use of dynamic properties
* TWEAK: Handle web hosting company setup that disabled pclose() but not popen()
* TWEAK: All HTTP requests to the Google Drive API now, by default, forces to use HTTP/1.1 version. Also, a constant named UPDRAFTPLUS_GDRIVE_CURL_HTTP_VERSION can be set in the wp-config.php file to change the default HTTP version to another preferred version
* TWEAK: Improve 'move' and 'copy' filesystem functions in restoring directories containing files to a different mount point/partition than where they reside
* TWEAK: Improve files pruning mechanism, by not repeating already-done ones when resuming deletions
* TWEAK: Improve the Handlebars templates of the Google Drive, Dropbox and UpdraftVault remote storage modules by taking PHP code out of them
* TWEAK: Improve widget layout when decrypting a backup
* TWEAK: Remove Bootstrap CSS in Restore Wizard and replace with Flexbox CSS
* TWEAK: Add multisite subsites header information to the database backup file that will be used for converting a network subsite to a standalone normal WordPress site
* TWEAK: Add the UpdraftPlus plugin slug header to the database backup file
* TWEAK: Include next-level-up directory path along with deleted folder's name when deleting a folder
* TWEAK: Update seasonal notices
* TWEAK: Make common logic for getting backup history from the database
* TWEAK: Remove usage of the file_get_contents() function from WebDAV remote storage without chunking upload
* TWEAK: Pass through some previously unhandled Dropbox error codes
* TWEAK: Added the "non-core" word to the WordPress database tables excluded warning.
* TWEAK: Remove WordPress core tables from the non-core WordPress database tables excluded list in restoration step 2
* TWEAK: When migrating the www site, the search replace will be performed in database tables on the non-www domain too, and vice versa

= 1.23.3 - 16/Mar/2023 =

* SECURITY: This release fixes an important security defect - please update. Full details: https://updraftplus.com/updraftplus-1-23-3-2-23-3-important-security-release/. Sites are affected if there are WordPress users (i.e. people who can login) who can reach the back-end (i.e. wp-admin) dashboard (but we recommend everyone updates in any case).

= 1.23.2 - 15/Mar/2023 =

* FIX: Automatic backups before updating a plugin, theme, or WP core were not working (regression in 1.23.1)
* FIX: A database backup couldn't be taken from WP-Optimize and All-In-One Security (AIOS) (regression)
* TWEAK: Add a user capabilities check when downloading a backup (this is not believed to have any security implications, as the download operation already requires knowledge of a further nonce that there is no mechanism for a non-administrator to obtain).
* TWEAK: Improve the Handlebars template of the UpdraftVault remote storage by taking PHP code out of it
* TWEAK: Prevent making a nonce available to logged-in users who could not manage UpdraftPlus (this did not give access to any unauthorised actions)
* TWEAK: Improve the Handlebars template of the UpdraftVault remote storage by taking PHP code out of it
* TWEAK: Improve the Handlebars template of the pCloud remote storage by taking PHP code out of it

= 1.23.1 - 08/Mar/2023 =

* FEATURE: Support Cloudflare R2 as a generic S3 storage provider (always use v4 signature)
* FEATURE: Added the ability to get an accurate row count for all tables in the advanced tools
* FEATURE: Expose an option in the UI to disable chunked uploading when using WebDAV remote storage (previously required a constant)
* FEATURE: Add the ability to anonymize WooCommerce order data when cloning a site
* FIX: An over-ride enforcing use of V4 signatures on Aliyuncs S3 storage was no longer working
* FIX: pCloud error handling in chunked uploading did not pass the error message up to the logging layer
* FIX: Backups started under WP-CLI could not backup the database only without any files
* FIX: Couldn't add any file/directory inclusion for "Other" entity due to access to one directory up from the current (ABSPATH) isn't permitted
* FIX: Atomic restore is not renaming a few tables when not restoring specific tables by using the filter `updraftplus_restore_this_table`.
* FIX: Sometimes the "delete old directories" notice displayed even though the actual `-old` directory didn't exist
* FIX: The restore point date time was incorrect in the restore screen when restoring the incremental backup, and the WordPress site has a non-GMT timezone set.
* TWEAK: Improve manual rescanning and deletion of backup sets by setting up a time limit to a value defined in UPDRAFTPLUS_SET_TIME_LIMIT constant to minimise chances of getting fatal error (maximum execution time exceeded)
* TWEAK: Add a filter updraftplus_mysqldump_arguments to allow changing of arguments passed to the mysqldump binary when that is being used
* TWEAK: Include PHP version in default S3 user agent to aid debugging
* TWEAK: Disable Gravatar on UpdraftClone
* TWEAK: Cleanup .list.tmp files when a cloud backup completes
* TWEAK: Use the function that lists our own cron schedules to simplify the way backup intervals are prepared and to avoid schedules mismatch
* TWEAK: Improve manual deletion of backup sets by setting up a time limit to a value defined in UPDRAFTPLUS_SET_TIME_LIMIT constant to minimise chances of getting fatal error (maximum execution time exceeded)
* TWEAK: Improve the Handlebars template of the S3-Compatible (Generic) remote storage by taking PHP code out of it
* TWEAK: Increase max_recursion value to 20 in class-search-replace.php
* TWEAK: Add a new function that lists our own cron schedules so that it can later be used as schedules sorting purpose also as a main source from which our schedules list is originated
* TWEAK: Display Google drive email address along with account holder name
* TWEAK: Fixed WebDAV PHP 8.1+ deprecated warnings
* TWEAK: Updated text message displayed on Web Server - Localhost UC Dashboard Key Creation.
* TWEAK: Use nonce in every part of a restoration process to prevent direct access that has allows an unwanted log file to be begun. On sites running on end-of-lifed PHP versions (<8.0) it was possible to read the beginning of the log file, causing an unintended information disclosure about the server environment, e.g. Apache version, PHP version and available memory (but current PHP versions are not vulnerable).
* TWEAK: Use nonce when starting a new restoration and strengthen the continuation process to prevent direct access that has the potential of being file and/or log abuse
* TWEAK: Improve the WebDAV storage module API in regard to the way it handles uploading and writing files
* TWEAK: Replace the word "Directory" with "Folder" in UI notices
* TWEAK: UpdraftVault: select storage class intelligently

= 1.22.25 - 16/Dec/2022 =

* FIX: Resolves a fatal error that occurred if a user had one specific add-on and not another (i.e. paid versions only)

= 1.22.24 - 14/Dec/2022 =

* FEATURE: Support PHP 8.2 in UpdraftClone
* FEATURE: pCloud protocol support (Premium)
* FIX: Add missing support for custom Dropbox app refresh tokens
* FIX: After sending email report, other emails that follow would contain leftover data from the previous email report
* FIX: Javascript hook that is used to show "Automatic backup before update" dialog box when pressing "Install Update Now" button on the WP Plugins page had made the same button on WP Updates page not respond to a press
* FIX: Potentially not storing the size of new files in the backup history
* FIX: Pressing "Rescan remote storage" using WebDAV can show an error message
* FIX: Prevent a fatal error when logging PHP events using the exported "central" folder on the remote site
* FIX: Prevent an error that occurs on WordPress 6.1 when managing and creating post/page from UpdraftCentral
* FIX: Prevent fatal error when rescanning if internal directory was unusable
* TWEAK: Ability to permanently dismiss Litespeed warning
* TWEAK: Add admin notice to inform the user to upgrade their PHP to version 5.3 or higher due to changes in phpseclib requirements in future releases
* TWEAK: Add "#[\ReturnTypeWillChange]" attribute to Google Drive API for suppressing PHP 8.1 deprecation notices
* TWEAK: Add the ability to anonymize personal data in the database backup when using migrator
* TWEAK: Advise users if files in the plugin are missing
* TWEAK: Discourage page caches from caching UpdraftClone intermediate pages
* TWEAK: "Dismiss from main dashboard" button sometimes doesn't work
* TWEAK: Fix missing FTP admin notices when clicking on other remote storage method
* TWEAK: Hive off the AWS S3 SDK into a separate plugin (UpdraftPlus now always uses its own, more lightweight, SDK) - https://github.com/DavidAnderson684/updraftplus-aws-sdk
* TWEAK: Improve the Handlebars template of the Amazon S3 remote storage by taking PHP code out of it
* TWEAK: Improve the Handlebars template of the DreamObjects remote storage by taking PHP code out of it
* TWEAK: Improve wording in plugin by removing ambiguous wordings
* TWEAK: Increase the Google Cloud (Premium) downloading minimum chunk size for faster downloads
* TWEAK: In Premium / Extensions tab add notices for AIOS and Easy Updates Manager
* TWEAK: Log the list of blocks that failed to re-assemble in Microsoft Azure.
* TWEAK: Make the Google Drive downloading algorithms adapt to available memory - cut the total download time by 2/3 in testing
* TWEAK: Prevent a PHP notice upon UpdraftClone startup
* TWEAK: Prevent deprecation notice on PHP 8+ if opening a zero-size zip file
* TWEAK: Replace the use of $_SERVER['SERVER_NAME'] variable with network_site_url() function because the array key is not defined in WP-CLI and might not be defined on some server-side cron tasks, resulting in a PHP log message
* TWEAK: Set a global context for $wp_file_descriptions context so that it gets assigned to correctly, preventing a subtle visual change in the theme editor
* TWEAK: Use built-in logging for WebDAV
* TWEAK: WP Rocket - disable CDN upon migration completion for multisite since key will be invalid

= 1.22.23 - 29/Sep/2022 =

* FIX: Fix "More Files" tracking on resumption
* FIX: Parse error when loading plugins and themes in UpdraftCentral. Error occurs when UpdraftPlus is installed in a system with PHP 5.6 or older.
* FIX: BinZip did not handle out-of-tree directory symlinks. These are now backed up as expected.
* FIX: When expired tokens occur during Vault uploads, reschedule and resume, to avoid incomplete pruning of backup history
* FIX: Inconsistent WebDAV host field behaviour where there are multiple WebDAV storage locations
* FIX: The Exclusion rule link text was broken when "uploads" and "wp-content" exclusion settings were initially in an unchecked state
* TWEAK: Create IAM call methods in UpdraftPlus_S3
* TWEAK: Add a select all / deselect all selector to the table list when restoring
* TWEAK: Do not write `SET @@GLOBAL.GTID_PURGED` statements
* TWEAK: Improve the upload after create status reporting in the progress widget
* TWEAK: If a symlink pointed to an inaccessible location, this was silently skipped when using ZipArchive; it now generates a warning.
* TWEAK: Cast the service list to an array in upload_button() to avoid a potential PHP error with PHP 8
* TWEAK: Quadruple size of buffer when reading from files for S3 chunks

= 1.22.22 - 16/Sep/2022 =

* FIX: Restrict the CSS scope for our jQuery to prevent conflicts
* FIX: UI bug when unable to download a database for restoration and then retrying before refreshing the page
* TWEAK: Add basic design to confirmation window when adding a site to UpdraftCentral
* TWEAK: Prevent a PHP coding deprecation warning on PHP 8.1
* TWEAK: Feedburner URLs now are case-sensitive
* TWEAK: Improve the Handlebars template of the Rackspace Cloud Files remote storage by taking PHP code out of it
* TWEAK: WP Rocket - disable CDN upon migration completion since key will be invalid.
* TWEAK: Improve the UpdraftClone user-visible feedback and logging on delay or failure conditions
* TWEAK: WebDAV refactor part 2: Eliminate the stream-wrapper layer

= 1.22.21 - 09/Sep/2022 =

* FIX: Infinite recursions/loops appeared to happen in restoration during the search-replace operation especially when some tables had a circular reference in their serialised data
* FIX: Prevent PclZip from restoring empty/corrupt archives
* FIX: Zip file sizes had ceased to be recorded in the backup history
* FIX: Fix fatal error when loading the "Advanced Tools" section for UpdraftCentral
* TWEAK: Log intermediate unzip errors before proceeding with different method

= 1.22.20 - 05/Sep/2022 =

* FEATURE: Restore the "upload immediately after creation" feature that was turned off whilst misbehaviour was investigated; fixes have been applied.
* FIX: Prevent premature removal of zip manifest files
* TWEAK: Improve the Handlebars template of the OpenStack (Swift) remote storage by taking PHP code out of it
* TWEAK: Do not run out-of-place "SET @@GLOBAL.GTID_PURGED" statements upon restore

= 1.22.19 - 29/Aug/2022 =

* TWEAK: The "upload immediately after creation" feature has been disabled whilst reports of incorrect behaviour are investigated
* TWEAK: Replace require_once to include_once and use the UpdraftCentral path constant when loading the UpdraftCentral host class.
* TWEAK: Modify the "overdue crons" message for greater clarity

= 1.22.18 - 26/Aug/2022 =

* TWEAK: Suppress pre-loading of phpseclib libraries, which has exposed fatal-error inducing bugs in a handful of unmaintained third-party plugins and themes
* TWEAK: Increase the number of conditions for which attempts to access an S3 bucket will result in more logging

= 1.22.17 - 23/Aug/2022 =

* FIX: Ensure jobdata is saved before attempting a partial cloud upload, preventing potential omission of an archive
* FEATURE: Restore the "upload immediately after creation" feature that was turned off in 1.22.16 whilst misbehaviour was investigated
* TWEAK: Add log information as to why DB stored routines couldn't be included in the backup if that should be so
* TWEAK: Declare some implicitly-declared class variables to avoid warnings in PHP 8.2

= 1.22.15 - 22/Aug/2022 =

* FEATURE: Each archive created will now be uploaded immediately directly after creation, to save disk space (prior behaviour was to first create all archives)
* FIX: Improve parsing of HTTP response code header with generic S3 providers to avoid incorrectly interpreting status code
* FIX: When an S3 service returns a RequestTimeTooSkewed error, make sure this is passed up to the user and not lost
* FIX: Do not prematurely trigger upload_complete message when performing immediate file upload during clone operation
* FIX: Database views don't get restored or are not restored correctly when in atomic mode
* FIX: After sending email reports, other emails that follow used the same From address/name taken from the previous email
* FIX: Database views don't get included in the backup
* TWEAK: Improve the Handlebars template of the Microsoft Azure remote storage by taking PHP code out of it (Premium)
* TWEAK: Update WebDAV library used for WebDAV remote storage (Premium) - N.B. This now requires PHP 5.5+.
* TWEAK: Improve the Handlebars template of the Google Cloud remote storage by taking PHP code out of it (Premium)
* TWEAK: Improve the Handlebars template of the Microsoft OneDrive remote storage by taking PHP code out of it (Premium)
* TWEAK: Detect and break absurdly-future locks
* TWEAK: Restrict the CSS scope for our jQuery to prevent conflicts
* TWEAK: Work around consequences of a backup history save failure
* TWEAK: Add a twice-daily cron to clear temporary files so that they are cleared even in the absence of new backups beginning and prior backup completion failure
* TWEAK: Tweak UpdraftCentral abstraction classes
* TWEAK: Separate custom font rules when retrieving styles from remote sites
* TWEAK: Prevent PHP deprecation notice when using Google libraries on PHP 8.1+
* TWEAK: Simplify Dropbox SDK by removing unused "response format" code

= 1.22.14 - 07/Jul/2022 =

* FIX: Selective table restore
* FIX: Fix restore button JS issue when importing single site to multisite
* TWEAK: Allow charset to be set during a WP_CLI restore
* TWEAK: Use similar charset if one is not set and not supported during a WL_CLI restore
* TWEAK: Add bulk process handler for UpdraftCentral's plugin and theme modules
* TWEAK: Return previous plugin and theme states before installation or activation
* TWEAK: Improve the Handlebars template of the Backblaze remote storage by taking PHP code out of it (Premium)
* TWEAK: Improve the Handlebars template of the WebDAV remote storage by taking PHP code out of it (Premium)
* TWEAK: Improve the Handlebars template of the SFTP/SCP remote storage by taking PHP code out of it (Premium)
* TWEAK: Avoid using 'phpmailer_init' action when setting up sender name and sender email address, as some SMTP plugins override the 'wp_mail()' function and they don't bother to call the 'phpmailer_init' action
* TWEAK: Prevent increments being added to backups from other sites

= 1.22.13 - 25/May/2022 =

* FEATURE: Added the ability to create a clone from WP-CLI (Premium)
* TWEAK: Free version – Improve the Handlebars template of Azzure, OneDrive, WebDAV, SFTP/SCP, Blackblaze, and Google Cloud remote storage by taking PHP code out of them
* TWEAK: Update notice class
* TWEAK: Escape URL used in remote storage connection modal
* TWEAK: A Label being incorrectly displayed when creating a clone
* TWEAK: Update class-udrpc
* TWEAK: Don't show database selective restore UI if no tables are found in the database scan
* TWEAK: Allow drag-dropping of backup anywhere, not just on target area
* TWEAK: Add "echo" to display the premium link properly in some templates
* TWEAK: Update the posts class to support theme.json config file for theme styles and block settings
* TWEAK: Extract from plugin's data rather than relying on its key when retrieving the plugin slug
* TWEAK: Increase likelihood of using experimental upload-sooner feature from 1% to 5%

= 1.22.12 - 29/Apr/2022 =

* FEATURE: Added the ability to select which themes and plugins to Restore
* FEATURE: Allow existing local backups to be sent to a remote site when migrating
* TWEAK: Tweak to allow the Amazon S3 setup wizard to run if the internal S3 library is active
* TWEAK: The WordPress sidebar menu overlaps the popover tour box
* TWEAK: Attempt to upload a zip file after it's been created to save on storage space
* TWEAK: Add MySQL maximum packet size to Advanced Tools -> Site Information
* TWEAK: Only output the expected table rows when starting to process the table
* TWEAK: Fix get_users parameter that has been deprecated on WP 5.9 in UpdraftCentral posts controller.
* TWEAK: Do not call escapeshellarg() for SCP if we know it is unnecessary (prevents problems on hosts lacking the function for trivial use cases)
* TWEAK: Detect change of run-time environment on first resumption and re-set previously detected resumption interval if likely to be helpful
* TWEAK: Improve the FTP Handlebars template by taking PHP code out of it
* TWEAK: Convert HTTP error codes to their meanings
* TWEAK: Some plugins are loading their own incomplete mcrypt_* functions try and detect this and recover
* TWEAK: Ensure the local backup file is cleaned up if an earlier failed remote storage upload later succeeds
* TWEAK: Include plugin version when getting details from UpdraftPlus Vault to allow features that depend upon a sufficiently up-to-date version

= 1.22.11 - 15/Mar/2022 =

* FIX: Internal S3 library did not correctly construct canonical query string with v4 signatures if there were multiple parameters, leading to wrong signatures and failed authorisation
* FIX: Fix a recent regression that caused DNS hostnames to not be preferred when using Amazon S3
* TWEAK: Prevent deprecation notice on PHP 8.1 if opening a zero-size zip file
* TWEAK: Introduce filter updraftplus_dropbox_fetch_curl_options for easier debugging/experimentation

= 1.22.10 - 11/Mar/2022 =

* FIX: Fix a regression in the 1.22.9 adjustment to the internal S3 library's evaluation of when to use a Host: header
* FIX: Fix a long-standing issue whereby if S3-related credentials were being tested via the front-end UI, and multiple back-end instances were present, then the wrong settings could be used in making decisions on Host: headers

= 1.22.9 - 10/Mar/2022 =

* SECURITY: Fixed a failure to sanitise printed URLs properly, leading to a targeted XSS opportunity (if an attacker persuades a logged-in admin to follow a link personally crafted for their site, he may be able to run JavaScript inside the browser - but on our testing, this ability is limited due to the sanitisation that was there - we have not been able to confirm that a payload causing damage is possible). Reported by Taurus Omar - https://taurusomar.com.
* TWEAK: Adjust internal S3 library's evaluation of when to use a Host: header (improves compatibility with buckets with minimal access rules)
* TWEAK: Adjust algorithm concerning likelihood of switching S3 libraries to accelerate deployment
* TWEAK: Prevent PHP notice when using S3 with particular bucket naming and SSL

= 1.22.8 - 03/Mar/2022 =

* FIX: Do not attempt to use S3 DNS-style bucket naming in alternative library if SSL validation will fail due to AWS certificate wildcard policies or other bucket naming-related reasons
* TWEAK: Add version number to alternative S3 library requests

= 1.22.7 - 01/Mar/2022 =

* FIX: Internal S3 library was missing a method for using session tokens together with Vault
* FIX: Various UI issues with the S3 IAM Wizard
* TWEAK: Use AWS SDK/Guzzle for S3 operations if Curl is not available
* TWEAK: Prevent coding deprecation notice during S3 upload on PHP 8.1

= 1.22.6 - 26/Feb/2022 =

* FIX: Internal S3 library had regressed in its ability to detect bucket location on AWS when using v4 signatures
* TWEAK: When using S3 APIs, log the class used for easier debugging
* TWEAK: Change S3 SDK selection algorithm

= 1.22.5 - 24/Feb/2022 =

* FIX: An issue that prevented being able to browse the contents of an already downloaded backup zip file
* FIX: Add previously unbundled AWS SDK file for IAM service description which prevented S3 wizard in the Premium version working correctly
* FIX: Prevent a fatal error when handling some S3 errors, caused by a format change
* TWEAK: When loading AWS SDK at upload time, apply some work-arounds for plugins with buggy or old versions of related libraries
* TWEAK: Update to latest AWS SDK toolkit, fixing an error with error-reporting in some situations in the previous version
* TWEAK: Remove vendor/aws/aws-crt-php/run_tests.bat from build (apparently one user's hosting does not allow .bat files), plus other unnecessary files from that package
* TWEAK: Enable PHP 8.1 in UpdraftClone (N.B. not yet officially supported by WordPress, so, made available for testing/development purposes)
* TWEAK: Prevent error emitted on the browser console when 'Images' filter is selected on UpdraftCentral's media module

= 1.22.4 - 17/Feb/2022 =

* TWEAK: Prevent a couple of possible fatal errors when printing autobackup options on PHP 8
* TWEAK: Work around a bug in the JetPack autoloader that was triggered when projects using that also used Guzzle in a different namespace

= 1.22.3 - 15/Feb/2022 =

* SECURITY: Thanks to Marc-Alexandre Montpas of Automattic for this report (CVE: CVE-2022-23303). All versions of UpdraftPlus from March 2019 onwards have contained a vulnerability caused by a missing permissions-level check, allowing untrusted users access to backups. If your site does not have non-admin users, or if your non-admin users are all trusted (and your site does not allow users to sign up themselves), then you are not vulnerable (but we always recommend updating to the latest version in any case). Please see https://updraftplus.com/updraftplus-security-release-1-22-3-2-22-3/ for more details.
* FIX: Unexpected 'Backup History' array structure during the rescanning of the new backup sets that changed the type of the database associative keys from string to array format
* FIX: Failure in excluding and wiping out jobdata during backup and restore causing the same backup to repeat under certain circumstances
* REFACTOR: Upgrade AWS SDK from version 2.8 to 3
* TWEAK: Improve how log file and backup file attachments are handled through mail-related functions, so they don't get omitted by some 3rd party SMTP plugins
* TWEAK: Overcome PHP 8 'Only the first byte will be assigned to the string offset' warning when rescanning local folder and/or remote storage for new backup sets
* TWEAK: On Windows, when mysqldump.exe binary is in use for backing up database, it failed to exclude updraft_jobdata_* entries due to 'escapeshellarg' function that replaces % char to white space
* TWEAK: Switch to official jstree release now that our patch is included
* TWEAK: Update updater library in paid version to current release
* TWEAK: In the multisite add-on, store the last log message separately to perform better with binary logging together with large backups
* TWEAK: Add Google branding to the Google Drive authentication link
* TWEAK: Change complex formatting string to avoid translator errors resulting in PHP errors

= 1.22.1 - 14/Jan/2022 =

* TWEAK: New versioning scheme; the second part of the version number was previously not used very meaningfully/systematically; together with the third, it now indicates the year of release and number within that year
* TWEAK: Adjust run-time performance check, removing one test that was no longer appropriate
* TWEAK: Adjust next resumption display message if there isn't one
* TWEAK: Cache the UpdraftVault quota to reduce the amount of network calls made during long backups

= 1.16.69 - 27/Dec/2021 =

* FIX: A bug that prevented a final resumption from attempting to split the zip to make progress
* FIX: Handle LOCK TABLES statements produced by some mysqldump versions properly in case of atomic restores
* SECURITY: Fix a non-persistent XSS error allowing an attacker to once run JavaScript in your web browser if you clicked on a link crafted personally for you whilst logged into your site (very similar to that fixed in 1.16.65/6). A packaging error meant that this was not properly fixed in the 1.16.67-68 releases.
* TWEAK: Search and replace ABSPATH if it's changed, non-trivial and stored in the DB by a bad plugin/theme
* TWEAK: Make whole label for "UpdraftPlus temporary clone user login settings" clickable
* TWEAK: Change wording for an advanced tool for clarity
* TWEAK: Include UD in user agent for S3 calls when using the AWS SDKs
* TWEAK: Make sure WP_Error is passed up during specific plugin update failure case

= 1.16.66 - 29/Nov/2021 =

* SECURITY: The fix made in 1.16.65 was faulty; this release corrects it.

= 1.16.65 - 25/Nov/2021 =

* SECURITY: Fix a non-persistent XSS error allowing an attacker to once run JavaScript in your web browser if you clicked on a link crafted personally for your site whilst logged into it. Discovered by Krzysztof Zając.
* TWEAK: Premium - add review link at bottom of admin

= 1.16.64 - 24/Nov/2021 =

* FIX: Do not create a zip manifest file if the zip is still potentially incomplete
* TWEAK: Improve Dropbox downloading performance by reducing round-trips, by eliminating unnecessary chunking
* TWEAK: Update certificate store to current list
* TWEAK: Increase precision of previous check-in record in log

= 1.16.63 - 25/Oct/2021 =

* FIX: Use correct zip file name when creating manifest
* TWEAK: Tweak the response data of UpdraftCentral's plugin and theme handlers to add additional error information
* TWEAK: Moved the raw backup history command so it can be accessed via UpdraftCentral
* TWEAK: Optimise away unnecessary file open/read/close cycle on null gzip files when writing the final database dump (should help on enormous sites with thousands of tables)
* TWEAK: Cleanup .list.tmp files when a local backup completes
* TWEAK: Refactor WebDAV addon code for future improvements

= 1.16.62 - 30/Sep/2021 =

* FIX: Fix UpdraftCentral error when installing plugin or theme on a slow connection
* TWEAK: Support wildcard (asterisk char) exclusions not just for the first/top-level directory but also for the 2nd level directories and below
* TWEAK: Fix deprecation warning on UpdraftCentral's comment settings
* TWEAK: Algorithm improvement with small tables with individually large rows not triggering the existing over-sized rows algorithm, to reduce fetch size quicker
* TWEAK: Implement the newly abstracted host plugin usage/process within the UpdraftCentral client code
* TWEAK: Improve backtrace logging
* TWEAK: Add admin and log warning messages regarding the planned shutdown of Microsoft Azure and OneDrive Germany
* TWEAK: Output UpdraftVault quota recount link if needed
* TWEAK: Introduce constant: UPDRAFTPLUS_LOG_BACKUP_SELECTS: Defining this to true will cause the SQL SELECT commands used when fetching data for a database table backup to be logged in the UpdraftPlus backup log
* TWEAK: Don't change SQL modes if a null value is returned
* TWEAK: Existing backups paging logic to avoid a confusing rescan user experience
* TWEAK: Refactor the search and replace engine

= 1.16.61 - 28/Aug/2021 =

* FIX: If MySQL performance was very fast on large tables, and if fallback fetch mode was being used (which should not occur on any WordPress core table, but can be triggered on recent Oracle MySQL 8.0 versions), then when increasing rows fetched on large tables, some rows could be unintentionally skipped.
* TWEAK: Oracle MySQL 8.0 from somewhere after 8.0.17 has removed the display width from the response to SHOW CREATE TABLE, resulting in failure (prior to this tweak) to detect a primary key type that can be used with faster fetching
* TWEAK: Use 'wp_mail_failed' action hook to improve logging of email delivery failures caused by a PHPMailer exception
* TWEAK: Add additional log information to themes and plugins modules

= 1.16.60 - 23/Aug/2021 =

* FIX: An issue that prevented the more files restore UI appearing if it was part of an incremental backup
* FIX: Add an extra check to prevent incremental backups from being run after a migration, if incremental backups are not enabled.
* TWEAK: Add method to check whether an image editor is available for UpdraftCentral's image media editing feature.
* TWEAK: In the reporting add-on accept URLs, if the address is a URL then instead of emailing it, POST it to that URL using the format used by Slack
* TWEAK: Add a link to the create clone UI to explain the various clone package sizes
* TWEAK: Record ABSPATH in the summary
* TWEAK: Prevent a couple of unwanted logging notices on PHP 8
* TWEAK: Catch and deal with various WebDAV exceptions
* TWEAK: Create a zip file manifest and read from it if available

= 1.16.59 - 16/Jul/2021 =

* FEATURE: (Paid versions) New WP-CLI command (connect) to connect plugin with the user's associated account/licence on updraftplus.com
* FIX: Each time the 'Upload Backup' dialog is opened, '(already uploaded)' text is appended one more time for the same remote storage resulting in it being nearly impossible to have the two buttons shown at the bottom
* TWEAK: Enhanced over-sized row-detection to include any table with a primary key and a LONGTEXT
* TWEAK: Log file now includes max packet size
* TWEAK: Properly handle port numbers included in DB_HOST when using mysqldump
* TWEAK: Handle UNIX socket paths included in DB_HOST when using mysqldump
* TWEAK: Increase default mysqldump maximum packet size
* TWEAK: Change WebDAV request library to HTTP_Request2
* TWEAK: Add custom category sorting on post module using uasort due to deprecation warning emitted on UpdraftCentral
* TWEAK: Added an icon within the top-right of the log widget allowing user to toggle that part between its current size and full-screen of the restoration log section
* TWEAK: Prevent an error in the phpinfo advanced tool when handling non-string constants
* TWEAK: Escape remote storage IDs in output templates
* TWEAK: Suppress unwanted error logging related to Gravity Forms
* TWEAK: Clear Elementor cache at the end of restoration process (if possible) giving an opportunity for Elementor to regenerate CSS files on the next page load request
* TWEAK: Clear Avada/Fusion-related CSS cache at the end of restoration process (if relevant)
* TWEAK: Catch and recover from errors and exceptions when clearing third-party caches
* TWEAK: Prevent a PHP logging notice when an SCP server is scanned for files
* TWEAK: Remove unused CloudFront methods from S3 library
* TWEAK: Added missing anonymisation.png graphic and detail of Anonymisation addon in the addons list table
* TWEAK: Added Update URI header field to avoid accidentally being overwritten with an update of a plugin of a similar name from the WordPress.org Plugin Directory.
* TWEAK: Improvements in finding a working mysqldump binary during a backup operation
* TWEAK: Start on larger chunk sizes when fetching *meta table contents, and scale up chunk sizes on all tables dynamically (less SQL queries; but testing shows it makes little difference to overall speed)
* TWEAK: Adjust Google Drive to retry once after a UDP_Google_IO_Exception, as was done in Google Cloud - intended to help with intermittently buggy Curl versions
* TWEAK: Show a notice when attempting to download a backup from email remote storage explaining nothing can be downloaded
* TWEAK: Update shop links and upgrade prompts

= 1.16.58 - 27/May/2021 =

* FIX: UpdraftVault storage settings saving issue on multisite
* FIX: Translation undefined index issue while running updates on UpdraftCentral
* FIX: Do not retain SFTP/SCP connection object between upload and prune stages, fixing a multi-instance bug that could cause deleting of obsolete archives to be skipped when backing up the same backup to multiple SCP servers
* TWEAK: When a link points to an unreadable file, include information in the log about the original reference
* TWEAK: Do not compress and recompress intermediate table files when stitching together the final database dump (increases speed and reduces resource usage)

= 1.16.57 - 08/May/2021 =

* FIX: Backblaze infinite loop when listing on buckets with huge numbers of objects
* TWEAK: Minor improvements to the organisation of the S3-provider classes (abstract per-backend logic more cleanly)
* TWEAK: Add --no-tablespaces switch to mysqldump invocation (required on MySQL 8.0+)

= 1.16.56 - 29/Apr/2021 =

* FIX: Revert changing of Amazon S3 authentication error handling in 1.16.55, which broke support of S3-compatible providers
* TWEAK: Remove some unnecessary methods from the UpdraftPlus_S3 class

= 1.16.55 - 28/Apr/2021 =

* FIX: Wrong prefix being used on non WP tables during an atomic restore
* FIX: Issue that prevented generic (non-UpdraftPlus) SQL databases being restored
* TWEAK: JSTree file selector: list folders first, and list entities in alphabetical order
* TWEAK: Increase efficiency when listing Backblaze files during multi-delete operation
* TWEAK: Integrate UpdraftVault storage with the scheduled destination backups feature
* TWEAK: Added bucket access style field to S3-Compatible (Generic) to allow user to choose preferred access style (Path or Virtual-host)
* TWEAK: Improve handling of Amazon S3 authentication error messages to avoid misunderstanding concerning "wrong bucket region" that occurs after trying further methods
* TWEAK: Make modal dialogs resizable
* TWEAK: During the Database scan if the amount of tables found exceeds the PHP max input vars limit then truncate the list, to prevent restore options being lost
* TWEAK: Update seasonal notices
* TWEAK: Track the amount of restore options being sent and warn the user if this exceeds the PHP max_input_vars limit

= 1.16.54 - 05/Apr/2021 =

* FIX: Undetected build system error on free version omitted jstree library
* TWEAK: Reduce plugin size by removing 9 languages that are now fully available from the wordpress.org on-demand system

= 1.16.53 - 03/Apr/2021 =

* FIX: Incorrect final table name being used during an atomic restore when restoring using a different table prefix
* FIX: Fix variable re-use issue in Backblaze multi-delete code which halted deletion
* TWEAK: Prevent unnecessary logging when testing data for serialization on PHP 8.0 during migration
* TWEAK: Update jsTree library to version 3.3.12-rc0 to work around deprecated jQuery functions
* TWEAK: Add an extra check for whether it looks reasonable to reduce the resumption time, increasing efficiency
* TWEAK: On the posts table, detect over-sized rows in advance, and fetch them one at a time.

= 1.16.51 - 01/Apr/2021 =

* FIX: Backup before updating dialog was not working on the inline informational pop-up on the Plugins page
* TWEAK: Refactor how translatable texts are being handled and displayed within the UpdraftCentral client code
* TWEAK: Fix parameter passing for UpdraftCentral multiplexed request
* TWEAK: Exclude/skip very large files from the backup operation if the first and second attempt at backing them up didn't succeed
* TWEAK: Backblaze multi-deletion code did not properly handle files that were already deleted (could abort deletion of others)
* TWEAK: Replace the table prefix in the constraint name if it is found
* TWEAK: Don't perform an atomic restore on tables with constraints
* TWEAK: Add atomic restore support for non-WordPress tables

= 1.16.50 - 16/Mar/2021 =

* FIX: An issue with refreshing Dropbox access tokens
* TWEAK: Reduce and log memory usage in Google upload methods
* TWEAK: Catch Dropbox HTTP 401 errors and refresh the access token

= 1.16.49 - 10/Mar/2021 =

* FIX: Don't perform an atomic restore for non-WP-prefix tables backed up (Premium feature) - fixes a bug that resulted in the final table being dropped
* TWEAK: Dates/times shown in the "next scheduled backup(s)" are now translated into the user's locale

= 1.16.48 - 09/Mar/2021 =

* FEATURE: If needed database permissions are available then perform an atomic restore to improve chances of successfully restoring the database
* FEATURE: Added the ability to manually complete authentication with Google Drive (Avoids issues where security modules/plugins break the authentication flow)
* FEATURE: Added the ability to manually complete authentication with OneDrive (Avoids issues where security modules/plugins break the authentication flow)
* FEATURE: Google Drive and Google Cloud now allow boosting chunk size for faster transfers
* FIX: Files/Directories Exclusion not saving correctly when adding numeric directory/file names into the exclusion list
* FIX: Different PHP versions generate different suffixes length in the temporary ZIP filename resulting in a chance of overlapping runs
* FIX: an issue with mysqldump password character escaping
* TWEAK: Avoid unnecessary database writes caused by redundant jobdata updating during backup of files
* TWEAK: Add "anywhere in their names" syntax option to the exclusion UI
* TWEAK: Bump the requirement for the S3 enhanced module, and for using the official AWS SDK, up to PHP 5.5 (in preparation for updating the SDK version later)
* TWEAK: Fix a bug of report emails for incremental backups displaying incorrectly in many email apps
* TWEAK: Update Select2 library to version 4.1.0-rc.0 to work around deprecated jQuery isFunction
* TWEAK: Update jQuery-serializeJSON library to version 3.2.0 to work around deprecated jQuery isArray
* TWEAK: Handle hosts that have disabled some of the PHP functions thus causing a fatal error on PHP 8
* TWEAK: Correct under-calculation of used memory in verify_free_memory()
* TWEAK: Fix (inconsequential to this point) double-use of identifier for SQL statement type
* TWEAK: Remove some compatibility code in Dropbox downloading pertaining to a folder selection bug eliminated ~8 years ago.
* TWEAK: Remove unneeded sub-site tables when performing a restoration/migration (Multisite)
* TWEAK: Improve the exclusion UI by adding new "wildcards" option thus allowing the user to add a set of patterns for excluding files/directories
* TWEAK: Integration of the new files that were previously added for abstracting UpdraftCentral's client code
* TWEAK: Excluded items (Files or Folders) that are not readable should not trigger a warning about being unreadable
* TWEAK: Fix some RTL CSS issues
* TWEAK: OneDrive 4xx error reporting
* TWEAK: Update the Dropbox SDK to use refresh tokens (long lived token support ends September 2021)
* TWEAK: implement a multi-delete capability when deleting from Backblaze
* TWEAK: On UpdraftClone display the image ID in the advanced tools tab for easier debugging
* TWEAK: Make it more clear in the restore log that we are starting an AJAX restore
* TWEAK: The download backup HTML so that there is only one download button per archive type

= 1.16.47 - 25/Jan/2021 =

* FEATURE: added the ability to anonymise personal data in database backups from the "Backup Now" dialog (Premium / add-on)
* FEATURE: Add page management module for UpdraftCentral
* FIX: 1.16.42 Introduced a regression (truncation) when listing files from Dropbox when there were multiple pages of results
* TWEAK: Force host-style bucket access when backing up via S3 generic to Alibabacloud
* TWEAK: Remove unneeded Google SDK files from our fork of the SDK taking the size from 6MB to 800KB
* TWEAK: Incorrect jQuery UI dialog extended filename
* TWEAK: Change some class names to improve compatibility with other plugins using the Google SDK and auto-loading their version unconditionally
* TWEAK: Update the delete file Dropbox API call to version 2
* TWEAK: Change the S3 test settings form names to match the saved setting names
* TWEAK: Check the Content-Type on the response from an S3-compatible provider slightly less strictly, improving compatibility with at least one otherwise-working implementation
* TWEAK: Update the Dropbox SDK to use scopes
* TWEAK: Handle hosts that have removed disk_free_space() (now that on PHP 8 disabling functions removes them)

= 1.16.46 - 05/Jan/2021 =

* FIX: Prevent some deprecation-related errors when backing up to some remote storage locations in PHP 8
* FIX: Adding new remote storage instance (Premium) doesn't bring up the UI
* TWEAK: Fix some modal dialog alignment/resizing issues

= 1.16.45 - 04/Jan/2021 =

* FIX: Prevent some fatal errors due to language behaviour changes when running under PHP 8
* TWEAK: Replace deprecated calls to jQuery fn.focus(), fn.ready(), fn.submit(), fn.click() and fn.blur() methods in internal libraries
* TWEAK: Replace deprecated calls to jQuery (:first) and (:eq) pseudo-classes in internal libraries
* TWEAK: Prevent several PHP deprecation log notices on PHP 8
* TWEAK: Rename some further classes in our fork of the Google SDK to prevent conflicts
* TWEAK: When running under cron, do not combine schedules when there are no schedules
* TWEAK: Revert a jQuery change in 1.16.44 which made notices on the 'updates' page appear multiple times.

= 1.16.43 - 17/Dec/2020 =

* TWEAK: Replace deprecated calls to jQuery.trim(), jQuery.fn.change(), jQuery.fn.bind(), jQuery.fn.unbind(), jQuery.fn.keyup(), jQuery.fn.removeAttr() and `jQuery.fn.removeProp() in internal libraries
* TWEAK: Reduce excessive vertical margin above the header within Autobackup dialog box
* TWEAK: Improve user experience in the case of some rare UpdraftVault conditions
* TWEAK: Fix the exclude fields, which were unable to switch their mode from read-only to edit mode
* TWEAK: Added new files needed for abstracting UpdraftCentral's client code
* TWEAK: Update the review notice
* TWEAK: When attempting to delete a Backblaze file and discovering it does not exist, do not log that as an error (presumably already deleted)
* TWEAK: Fetch history log data in the popup using AJAX, instead of using embedded data attributes.
* TWEAK: Be less quick to switch to PclZip when BinZip has not completed the job

= 1.16.42 - 10/Dec/2020 =

* FEATURE: Added the ability to manually complete authentication with Dropbox (Avoids issues where security modules/plugins break the authentication flow)
* TWEAK: Replace BlockUI's deprecated jQuery functions and/or shorthand events with the appropriate method accordingly
* TWEAK: Replace /2/files/search Dropbox API calls with /2/files/search_v2
* TWEAK: Replace Labelauty's deprecated jQuery functions and/or shorthand events with the appropriate method accordingly
* TWEAK: Fix broken multiple range selection's highlighters due to the absence of jquery-migrate in the WordPress core on version 5.5
* TWEAK: Add the latest jQuery UI CSS framework for compatibility with WordPress 5.6 and all ongoing versions of WordPress
* TWEAK: Add support for PHP 8.0 in UpdraftClone
* TWEAK: Prevent a couple of PHP coding notices on PHP 8.0
* TWEAK: Tweak in the backing up of tables to reduce PHP memory use when working with very long row contents
* TWEAK: Prevent a PHP warning when starting a backup
* TWEAK: Fix a UI issue in the "send backup to remote site" options

= 1.16.41 - 27/Nov/2020 =

* TWEAK: Don't repeat sending the 'upload_complete' command to a remotesend destination after it succeeded the first time
* TWEAK: Update the udrpc library
* TWEAK: In UpdraftClone, delay the temporary_clone_ready_for_restore signal until the browser connection is closed (preventing a loss of response)

= 1.16.40 - 25/Nov/2020 =

* TWEAK: Cycle Dropbox API client ID (old one has been cycled and no longer works)

= 1.16.37 - 23/Nov/2020 =

* FIX: Scheduled backups to remote storage not being correctly sent in 1.16.35/36 in the absence of the "More Storage" add-on
* TWEAK: Wording tweak to clarify the effect of the conditional logic settings
* TWEAK: Add a warning to the restore page to inform the user if JavaScript is broken and as a result the restore won't start
* TWEAK: Replace intval() with casting to (int)
* TWEAK: If the first fetch from a table failed, then the algorithm to fetch fewer rows failed to reduce the fetch size more than once

= 1.16.36 - 20/Nov/2020 =

* TWEAK: During a restore or migration, detect if the backup was affected by the key issue fixed in 1.16.35, and automatically unselect by default such tables from the list of those to be restored. On a migration advise the user to take a fresh backup on the source site with a current version.

= 1.16.35 - 19/Nov/2020 =

* FEATURE: Backup destinations with conditional logic rules for scheduled backups (Premium)
* FIX: A regression in 1.16.30 meant that the term_relationships table could have rows missing in the backup if mysqldump was not present/used; this meant that items with multiple terms were only having one relationship backed up (e.g. multiple tags being assigned to one post)
* TWEAK: Adding remote block assets support when editing post from UpdraftCentral
* TWEAK: Rename UpdraftCentral's main and listener classes
* TWEAK: Improve error message when encrypted key given by user for SFTP/SCP remote storage method
* TWEAK: Enhance the algorithm when dumping large tables via PHP, by also consulting the size of the current uncompressed data and passed time and resumption state
* TWEAK: When there are no backups in existence, display some help text explaining how to upload one for restoration
* TWEAK: Prevent composer 2 run-time platform checks
* TWEAK: Update bundled cacert.pem file
* TWEAK: When fetching less rows due to previous failures, make this persist across resumptions when on the same table
* TWEAK: Raise the default for UPDRAFTPLUS_MAXBATCHFILES
* TWEAK: Improve handling of the situation when the source database has no table prefix (which is officially unsupported by WordPress, but people have them)
* TWEAK: When fetching the site name from the database, process it via wp_specialchars_decode() to remove HTML encodings that WP applied before storage
* TWEAK: Replace uses of php_uname() function with PHP_OS constant when the server where PHP is running on disables the function for security reasons
* TWEAK: When the definition of a VIEW cannot be fetched, report this nicely, do not let it be flagged as a fatal error, and log it in the backup file and log
* TWEAK: Integrate UpdraftPlus and WordPress 5.5 core's automatic update settings
* TWEAK: When a backup resumed, the last successful resumption was incorrectly set as the last successful resumption when an 'alive' event was recorded, rather than a 'useful' one; this deferred some mitigations when there was insufficient progress
* TWEAK: Add another tweak to paid versions' update checking time algorithm
* TWEAK: Add "Select all" and "Deselect all" link texts for bulk selecting/deselecting tables from the database table list on the manual backup dialog
* TWEAK: Ensure all code paths use internal ud_parse_json function for decoding JSON in JavaScript
* TWEAK: When using UpdraftVault, only cache results of a vault_getconfig call conditionally (retry on potentially transient errors)
* TWEAK: Prevent a PHP coding notice if running an UpdraftVault backup on the CLI
* TWEAK: Reduce the on-disk logging of entity base directories containing vast numbers of entries
* TWEAK: When we first save the backup schedule set the scheduled time randomly between 9PM and 7AM
* TWEAK: During a remote storage rescan correctly update the backup file sizes to prevent incorrect 'may have changed' warnings

= 1.16.34 - 30/Oct/2020 =

* TWEAK: On sites with enormous numbers of tables (e.g. very large multisites), counting the already-backed-up tables when resuming took unnecessarily long since 1.16.30
* TWEAK: Update jQuery document ready style to the one not deprecated in jQuery 3.0
* TWEAK: While using the file tree browser return an error if we are unable to open a directory

= 1.16.33 - 20/Oct/2020 =

* FIX: Fatal error when doing a backup with no storage in the short-lived 1.16.32 (free version)
* TWEAK: Cookie policy changes in the Chrome family of browsers broke the embedded checkout; hence, this is now disabled (goes directly to updraftplus.com instead).
* TWEAK: Exclude All In One WP Migration-related archive files when backing up plugins and/or others from the UpdraftPlus backup process
* TWEAK: Add downloadable backup links in the Backup Report email (Reporting Addon)
* TWEAK: Rename some classes in our fork of the Google SDK to prevent conflicts
* TWEAK: Improve automatic backups output when 'UPDRAFTPLUS_NOAUTOBACKUPS' constant is defined.
* TWEAK: Remove the now-redundant concept of inner loops from the database table backup routine

= 1.16.31 - 20/Oct/2020 =

* FIX: A regression in 1.16.30 meant that tables with integer primary keys which used signed integers omitted the first row of the table from the backups. This is not common (e.g. it does not affect any core WP tables; most plugins adding tables follow WP core in using unsigned integers for primary keys).

= 1.16.30 - 15/Oct/2020 =

* PERFORMANCE: Where a table has a numerical primary key, extract its data using that index. This results in a substantial performance increase when fetching large tables using PHP. (The filter updraftplus_can_use_primary_key_default can be used to de-activate this behaviour).
* FIX: Remove incorrect decodeURIComponent() parsing when importing settings, which could prevent import of settings containing some special characters
* FIX: An issue where database tables that were not selected to be backed up in a "Backup Now" backup would get added to the backup during a resumption (i.e. if it did not finish in a single run)
* TWEAK: Catch errors from Google Cloud when the bucket is not found
* TWEAK: Fix undefined variables instead of expected values in message prior to settings import
* TWEAK: Strip the redundant WHERE for the --where parameter to mysqldump (which modern versions strip out, but a version was found that didn't)
* TWEAK: Handle hosts that have disabled the session_id() function
* TWEAK: Provide SQL mode information in the 'Site Information' section under the 'Advanced Tools' tab and in the database backup's header
* TWEAK: Show a notification of UpdraftPlus plugin updates even if the associated user account is not connected to the UpdraftPlus website
* TWEAK: Add mechanism to detect what hosting provider is being used and use it to make UpdraftPlus comply with Kinsta's backup limit policies (thus removing it from the list of disallowed plugins)
* TWEAK: When booting a clone if it's claimed from the clone queue then update the token being used
* TWEAK: Tweaked downwards the minimum time in the future for rescheduling a resumption

= 1.16.29 - 08/Sep/2020 =

* FIX: Added Africa (Cape Town), Asia Pacific (Hong Kong) & Asia Pacific (Osaka-Local) to AWS
* FIX: Fix bug where incorrect function call prevented backup file downloads from the WP dashboard
* TWEAK: Removed LinkedIn and Google+ links
* TWEAK: Choosing email remote storage method in the free version will automatically tick the "Email" field setting, making the UI meaning clearer
* TWEAK: Work around the invalid file paths if found in some key-value pairs in the PHP user.ini file or Apache .htaccess file when restoring

= 1.16.28 - 02/Sep/2020 =

* FEATURE: Support backing up and restoring MySQL/MariaDB routines (stored procedures and functions)
* FEATURE: Added the ability to search and replace the database via WP-CLI
* FIX: Bit fields in a table don't necessarily get backed up correctly due to the difference in the output of mysql_query() and mysqli_query() for the bit-field type
* FIX: Allow single multisite sub-sites to be restored when there is a http/https mismatch between the site and database backup
* TWEAK: Update plugin updates checker dependency (in paid versions) to the 4.10 series, improving compatibility with WP 5.5+'s updates management
* TWEAK: Suppress message about how to upgrade an already-installed plugin when on WP 5.5+ (where it is no longer relevant)
* TWEAK: Internal refactoring to allow more flexibility when creating database backups
* TWEAK: Force the turning off of ANSI_QUOTES in the active SQL mode when creating a backup, for better compatibility
* TWEAK: Add the ability to configure the 'max_allowed_packet' option in the binary mysqldump command via the 'UPDRAFTPLUS_MYSQLDUMP_MAX_ALLOWED_PACKET' constant
* TWEAK: The Google Drive options exist condition to prevent a false positive saved settings error
* TWEAK: Improve the UpdraftPlus get_outgoing_ip_address method in finding user webserver's IPv6 address
* TWEAK: Removed MetaSlider notice in the notices collection

= 1.16.27 - 23/Jun/2020 =

* FIX: In the free version configured remote storage locations were not selected by default in the backup now modal
* FIX: On newer versions of Curl uploads to Dropbox can fail with a bad request, we now retry with a better request
* FEATURE: Improve support for enormous tables when outputting via PHP via batching of the dump
* TWEAK: Add site_url to load_plugins and load_themes requests
* TWEAK: Catch PHP fatal errors when executing UpdraftCentral commands
* TWEAK: Tweak the version that gets added to CSS and JS filenames to work with addons
* TWEAK: Prevent an internal UpdraftVault message displaying in the UI when Vault is not in use
* TWEAK: Stop displaying the 'licence expires soon' warning if an active subscription is detected on the account
* TWEAK: Catch Google_IO_Exception during upload to Google Cloud to prevent further unwanted errors
* TWEAK: Date/time indicator in the UI now gets updated via the WP heartbeat API
* TWEAK: On large databases the database file scan can time-out; an option has been added to allow the restore operation to include tables that are missing from the list
* TWEAK: Use the administration email address (if possible) as the email sender address when sending a backup report email
* TWEAK: Catch new OneDrive access token has expired message during a backup
* TWEAK: Cleanup failed OneDrive uploads to prevent repeated failures that will never succeed
* TWEAK: Add a warning alert when the remote scan button is pressed to explain this feature to prevent support requests
* TWEAK: On large databases the amount of database tables can exceed the php_max_input_vars value; an option has been added to allow the restore operation to include tables that are missing from the list
* NOTE: The free version 1.16.27 was released as 1.16.26; i.e. if confused about 1.16.26 went, then the answer is that they are the same thing.

= 1.16.25 - 23/May/2020 =

* FIX: Dropbox since 1.16.24 was only deleting one backup files archive out of the set. i.e. Excess archives remained on Dropbox. These have to be deleted manually.
* TWEAK: Add version to CSS and JS within filenames to prevent old versions being served after update on sites which have customisations to remove the query string
* FEATURE: Added the ability to create UpdraftCentral keys from WP-CLI

= 1.16.24 - 15/May/2020 =

* FEATURE: Support migration between different "generate columns" syntaxes of MySQL and MariaDB
* FEATURE: Added the ability to choose the remote storage locations you want to send your backup to in the "Backup Now" modal
* FIX: If non-WordPress tables are selected in the advanced 'Backup Now' options, then back them up (even if the saved setting to back them up is off). i.e. "Backup Now" over-ride options should have been taking priority.
* FIX: Failure to restore database 'view' in some rare circumstances due to the nonexistent DEFINER account and lack of privileges
* TWEAK: Handle binary data during backup
* TWEAK: Add strack_st to the lists of large logging tables and tables not requiring search/replace
* TWEAK: Make search and replace case insensitive when operating on URLs
* TWEAK: The incremental backup notice logic
* TWEAK: Update bundled updater class (YahnisElsts/plugin-update-checker) (paid versions) to version 4.9
* TWEAK: Add another tweak to paid versions' update checking time algorithm
* TWEAK: Add the options_exist() method to backup modules that did not have it
* TWEAK: During manual backup uploads, check if the last 4 bytes are string "null" (caused by an error in uploading to Dropbox) and if so remove them. Prevents an unnecessary message about unexpected data.
* TWEAK: Show the backup label (if specified) in the UI backup progress indicator
* TWEAK: Added the facility to clear the list of existing migration sites
* TWEAK: Create default instance labels
* TWEAK: Bring list of debugging plugins up to date
* TWEAK: Add support for the AWS Milan and Cape Town endpoints (and correct a couple of existing endpoints that had wrong references)

= 1.16.23 - 01/Apr/2020 =

* FEATURE: Post module handler for UpdraftCentral
* FEATURE: Added the ability to select which database tables you want to restore
* FIX: An apparent change in Dropbox API behaviour at a recent date was causing uploads to Dropbox to be corrupted in some circumstances in versions 1.16.21-22.
* TWEAK: The "Backup now" options were all unselected after trying to take a manual incremental backup with no possible entities for increments
* TWEAK: When importing a single site into a multisite remove UpdraftPlus options and cron to prevent unwanted backups
* TWEAK: Auto select clone package based on size of the selected backup
* TWEAK: Prevent PHP notice when logging a Google Drive account full condition
* TWEAK: Prevent a PHP notice when Azure is deleting files on PHP 7.4
* TWEAK: Prevent potential PHP notice if returned OneDrive quota is zero
* TWEAK: When restoring a single site that is part of a multisite only put that single site in maintenance mode not the entire network
* TWEAK: Remove filesize warning from the log if we successfully added the file to the zip to prevent user concern
* TWEAK: Add page_visit_history table to list of those with low-priority data and search/replace unnecessary
* TWEAK: Add a warning message when restoring/migrating from an older PHP version to a newer version
* TWEAK: Set 'NO_AUTO_VALUE_ON_ZERO' sql mode on restorations, for better compatibility with MySQL 8
* TWEAK: Add WordFence logging tables to list of optional tables
* TWEAK: If the Google Cloud revoke call fails try again once
* TWEAK: Catch file closed errors during uploads to Dropbox to prevent unwanted errors in the backup log and prevent user concern
* TWEAK: Get list of supported UpdraftClone regions from updraftplus.com
* TWEAK: Logging in backup modules will now correctly pass on arguments to main log function
* TWEAK: Change OneDrive 'account full, expected to fail' error message to a recoverable warning
* TWEAK: Detect non-homepage 404s and provide FAQ link after a restore
* TWEAK: Add paging to the existing backups table to prevent long loading times for sites with a large amount of backups
* TWEAK: Remove unwanted padding on some buttons

= 1.16.22 - 17/Feb/2020 =

* FIX: Fix a regression with some S3-compatible providers caused by a previous switch to virtual-hosted style bucket referencing
* TWEAK: Integrate input credentials from UpdraftCentral's zip install feature
* TWEAK: Add information to the log file about what type of addresses (sub-domain/sub-folder) the multisite is configured to use
* TWEAK: Fix potential race condition affecting settings page notifications on very fast or very slow sites
* TWEAK: Some PHP notices that could be output during a restore
* TWEAK: Automatically resume a timed-out restore operation during the uploads stage
* TWEAK: If the database connection dies during a restore operation, try to reopen it
* TWEAK: Adjust the UpdraftClone dashboard notice text
* TWEAK: If the Google Drive revoke call fails try again once
* TWEAK: The incremental backups label showed the incorrect time for different timezones
* TWEAK: Update the WP-Optimize notice
* TWEAK: Extend the auto resume restore to themes, others and more file backups

= 1.16.21 - 10/Dec/2019 =

* FIX: Correctly search and replace database views when importing on a site with a different table prefix
* FIX: A bug that prevented the restore modal opening on the migrate/clone tab
* FIX: Dropbox cURL issues on connection are resolved for PHP 7.4
* TWEAK: Change the way the "Disabled Cron" warning appears on the administrative settings page
* TWEAK: Improvements to error messages return for UpdraftCentral's plugin and theme installation process
* TWEAK: Updates to credentials validation for UpdraftCentral's plugin and theme modules
* TWEAK: Add media request handler for UpdraftCentral media module
* TWEAK: On paid versions, again possibly adjust the daily update check time to further favour overnight hours
* TWEAK: Mask classified information in WebDav URL settings
* TWEAK: Add multiple range selection on certain backup using ctrl and shift buttons
* TWEAK: Hide incremental backup link if the backup directory is not writable
* TWEAK: Make Updraft_Restorer_Skin compatible with WP 5.3
* TWEAK: Added Linode object storage link to list of supported S3 providers and updated existing links
* TWEAK: Ensure some variables are defined to prevent unwanted warnings

= 1.16.20 - 04/Nov/2019 =

* FEATURE: Add support for PHP 7.4 in UpdraftClone
* FEATURE: Added the ability to restore "more files" backups
* FEATURE: Add OneDrive Germany compatibility
* FIX: Failure to send existing translation version with update checks (on paid versions) resulted in redundant translation updates
* FIX: Deal with a BackBlaze "first chunk too small" error correctly when doing chunked uploading
* TWEAK: Block any updates from occurring during a restore
* TWEAK: Force the predecessor Amazon S3 SDK to use virtual-hosted style bucket identification instead of path style
* TWEAK: Refactor the remote storage logging code in Addon base v2
* TWEAK: Removed the Keyy notice (Keyy now has a new owner)
* TWEAK: Add WP 5.3 support in UpdraftClone
* TWEAK: On paid versions, possibly adjust the daily update check time to favour overnight hours
* TWEAK: Get UpdraftClone supported WordPress versions during authentication
* TWEAK: Added the ability to use backups stored in remote storage for UpdraftClone
* TWEAK: Small PHP 7.4 deprecation tweaks in the Google and legacy AWS SDKs
* FIX: Prevent trying to download files that have no remote storage and don't exist locally

= 1.16.19 - 04/Oct/2019 =

* FIX: GoogleDrive and WebDAV remote storage methods now correctly report if remote files failed to be deleted
* FIX: Issue in cloudfiles-enhanced addon that breaks translations when the user language is different from the site language
* FIX: Regression: add missing restore options
* TWEAK: Improve restoration modal on mobile devices
* TWEAK: Support the new Amazon S3 Middle East (Bahrain) region when removing a backup set
* TWEAK: Improvements to the dashboard to allow for better screen-reader access
* TWEAK: Ensure phpseclib Crypt_Blowfish is loaded over PEAR's version
* TWEAK: Add time zone and expiries in to the UpdraftClone scheduled removal time
* TWEAK: Add a multi-delete capability for OneDrive to prevent PHP timeouts during deletes

= 1.16.18 - 20/Sep/2019 =

* FIX: Select2 instance visiblility in restoration modal when selecting blog on multisite
* FIX: Remove unsupported WordPress versions (3.6 and older) from the UpdraftClone selection list
* FEATURE: Ability to resume interrupted database restores
* TWEAK: Add filesystem error data when FTP input validation fails in UpdraftCentral
* TWEAK: Enable appropriate SQL mode to ensure the database restoration compatibility
* TWEAK: Add a link to the Backblaze configuration guide

= 1.16.17 - 12/Sep/2019 =

* FEATURE: Added the ability to use UpdraftClone with sub-folder based multisites
* FEATURE: Catch duplicate entries in a corrupt DB upon restoration and handle/fix them automatically
* FIX: Some more complicated triggers (see in CiviCRM) that were not previously handled correctly are; and SQL backup format for triggers is now mutually compatible with mysqldump/mysql binaries
* FIX: Reset internal state upon beginning backup_resume(), in case WP cron called us multiple times in the same process
* FIX: Provide compatibility functions on WP < 3.7 for mbstring_binary_safe_encoding() and reset_mbstring_encoding()
* FIX: Correct the Azure China storage endpoint in options
* TWEAK: Re-designed restore process
* TWEAK: Prevent cosmetic error if WP_Filesystem call fails when deleting old folders
* TWEAK: Fix escaping that caused a problem in some translations with a dismissal notice
* TWEAK: Update bundled cacert.pem file
* TWEAK: Include a DROP command for any triggers about to be created in the backup
* TWEAK: The BackBlaze module (Premium feature) can now cope with BackBlaze losing uploaded chunks
* TWEAK: Cast file IDs in Backblaze to strings to prevent possible API error
* TWEAK: Do not attempt to perform search/replaces in tables of ARCHIVE type
* TWEAK: Introduce the constant UPDRAFTPLUS_SQLEXEC_MAXIMUM_ERRORS to aid debugging
* TWEAK: log message when checking which files need uploading on a incremental backup job
* TWEAK: Don't send external DB backups to UpdraftClone
* TWEAK: Reset the UpdraftClone UI if the clone is not created before it expires
* TWEAK: Automatically detect a stalled restore and offer a resumption on the restore page
* TWEAK: Remove some unused restore code
* TWEAK: Prevent a PHP deprecation log notice with WebDAV on PHP 7.3
* TWEAK: Catch exceptions and errors during recursive search/replace and recover from them
* TWEAK: CSS tweak to prevent other plugins from breaking the style of pop-up close buttons
* TWEAK: Ensure the error is logged on the final remote send complete call if it fails
* TWEAK: BackBlaze terminology updated to match their changes
* TWEAK: Update seasonal notices for next year

= 1.16.16 - 23/Jul/2019 =

* TWEAK: Adding support for installing plugin and theme through zip files in UpdraftCentral
* FEATURE: Added the ability to launch a blank WordPress clone
* FEATURE: Add --collate= parameter to WP-CLI (Premium) to allow substitution of locally unknown collations when restoring
* FIX: Switched to wp_insert_site() from insert_blog() and install_blog() method when importing single-site into a multisite network on WP 5.1+. Fixes 'Already Installed' error when importing on newer WP versions
* FIX: Issue where (rare) foreign key constraints aren't updated upon restore when table prefix changes
* FIX: Improve parsing of backed-up triggers when restoring preventing possible unnecessary errors
* FIX: If an upload to Google Drive starts to fail due to an OAuth token refresh error, the backup will re-bootstrap the Drive client and try again
* FIX: JSON-reparser to prevent unwanted RINFO data being output to screen
* FIX: Triggers were still included in a backup for tables that were excluded because of lack of WP prefix
* FIX: Resuming restores could resume at an unnecessarily early stage
* FIX: Issue with Dropbox account information call that could make it fail
* TWEAK: In cases where there were duplicate Google Drive folders (which is possible if there are multiple network communications failures when looking up the folder), these are now detected and merged automatically
* TWEAK: Add option to start 250GB Vault subscription as in-app purchase
* TWEAK: Regression: backup checksums were not being recorded in the backup log file
* TWEAK: Remove UpdraftClone when the backup is cancelled by the user
* TWEAK: Send the backup log during the creation of UpdraftClone for easier support when a clone fails to receive the backup
* TWEAK: Detect OneDrive Graph token expiries and initiate swift resumption
* TWEAK: Reduce the permissions requested for the UpdraftPlus Google Drive app (this now means that backups manually uploaded to Google Drive can not be deleted through the UpdraftPlus UI)

= 1.16.15 - 31/May/2019 =

* FEATURE: Added the ability to use already existing local backups with UpdraftClone
* FIX: Prevent PHP fatal error (regression) when WP_Filesystem credentials were needed and wrong ones were supplied
* FIX: Issue where you could not delete old directories from the restore progress page
* FIX: Issue where restore would not run over AJAX if wrong credentials were entered when WordPress requested filesystem credentials
* FIX: Fix incorrect refusal to accept valid email addresses in the UpdraftCentral wizard
* TRANSLATION: The Italian translation is now complete and supplied from wordpress.org, so can be removed from the free plugin zip (saves 424KB disk space - if your mother tongue is not English and you want to improve UpdraftPlus, take a look at: https://translate.wordpress.org/projects/wp-plugins/updraftplus).
* TWEAK: Update UpdraftCentral theme module handler to support themes without a name header
* TWEAK: Prevent PHP log notice when fetching available theme updates via UpdraftCentral
* TWEAK: Add more scheduling options to the built-in list (you can still further add whatever other arbitrary options you like: https://updraftplus.com/faqs/how-can-i-add-any-new-scheduling-interval-to-updraftplus/)
* TWEAK: Abstract the code for handling maintenance mode to allow future improvements
* TWEAK: Fix a potential wrong file path in an error message
* TWEAK: If there is more than one Google Drive folder of the same name, now the selection is deterministic: the oldest one is always used
* TWEAK: Infer phpseclib class path from the class name, instead of hard-coding it
* TWEAK: Some lines that were meant to include HTML bold in the browser output had lost that effect
* TWEAK: Add what entity caused the automatic backup to the logfile
* TWEAK: Upon restoration, a couple of known plugin cache directories will be emptied to prevent serving up an intermediate page
* TWEAK: Fix a bug in the "fail on resume" error-trapping logic which could cause it to resume too many times
* TWEAK: Prevent a bogus error message being logged at the end of a successful direct site-to-site transfer
* TWEAK: Add backup size information when hovering at the backup data buttons (excluding database button)
* TWEAK: Allow the plugin to connect to account and activate Premium licence if no more UpdraftCentral Cloud licences remain and the user enables the 'Add this website to UpdraftCentral' option in the Premium/Extensions tab
* TWEAK: During a restore send structured data to the front end. This is preparing the way for future UX improvements.

= 1.16.14 - 30/Apr/2019 =

* TWEAK: Make UpdraftVault trial more discoverable
* TWEAK: Fix stray JavaScript in the short-lived version 1.16.13
* TWEAK: Add support to translation updates
* TWEAK: Add WP 5.2 support in UpdraftClone
* TWEAK: Prevent PHP notice in remotesend method
* TWEAK: Restorations are now started over AJAX instead of in-page. This is preparing the way for future UX improvements.
* TWEAK: Upgraded the 'site-to-site' remote sending code to use the more recent UDRPC message format
* TWEAK: Make the UpdraftClone suggestion sentences dismissible
* TWEAK: Improve JSON-reparser to cope with even more exotic junk from some setups with problems elsewhere in their stack

= 1.16.12 - 16/Apr/2019 =

* FIX: Regression which caused PclZip unzips to be very slow
* TWEAK: Add stream_meta to the list of log tables and tables not requiring search/replace

= 1.16.11 - 08/Apr/2019 =

* FIX: Issue which prevented the downloader UI being removed during a manual entity download (regression)
* FIX: Regression in 1.16.10 whereby restore resumptions did not correctly resume because the jobdata had not been loaded
* TWEAK: Update UpdraftCentral description and internationalize strings
* TWEAK: Handle HTTP/2 responses from Dropbox on some operations
* TWEAK: Add a timeout on Dropbox quota look-up operations during backup, in response to cases of faulty outgoing HTTP proxies
* TWEAK: The backup_finish() method should not have been private; could cause a harmless PHP abort when manually stopping a backup
* TWEAK: Wrong variable context could cause failure of SFTP progress recording

= 1.16.10 - 23/Mar/2019 =

* FEATURE: Added support for backing up and restoring SQL triggers
* FIX: Prevent the downloader UI being removed before it's complete in the case of multi-archive sets (regression)
* TWEAK: Refactor the restore code and use jobdata to save information about the restore rather than using $_POST data
* TWEAK: Automatically show the UpdraftClone admin UI for UpdraftClone developers for easier debugging
* TWEAK: Prevent a PHP notice with certain exclusion settings
* TWEAK: Add a mention of UpdraftClone in WP's PHP version notice and WooCommerce's "untested extensions" notice
* TWEAK: Add 5.1 to the built-in list of available UpdraftClone WP versions

= 1.16.8 - 13/Mar/2019 =

* FIX: If requesting clone credentials that were not ready, the loop could rapidly repeat instead of waiting the intended time
* TWEAK: Some background updates checks (paid versions) that were intended to be suppressed, weren't being.

= 1.16.7 - 11/Mar/2019 =

* FEATURE: Add support for bucket-specific application keys in Backblaze
* FEATURE: Added the ability to take incremental backups via UpdraftCentral
* FIX: Dropbox authorisation setting getting lost after saving UpdraftPlus settings in the free version
* FIX: Issue where an error wasn't thrown if you tried to restore a backup with no valid components
* TRANSLATION: Norwegian (Bokmål) and Polish translations are now complete and supplied from wordpress.org, so can be removed from the free plugin zip (saves 900KB disk space - if your mother tongue is not English and you want to improve UpdraftPlus, take a look at: https://translate.wordpress.org/projects/wp-plugins/updraftplus).
* TWEAK: Ride a polling status check on the regular heartbeat check, thereby reducing the need for stand-alone polls
* TWEAK: If FTP settings were removed and an attempt was made to download a backup, then a zero-sized file would be created and then an unclear error shown, instead of just showing a clear error.
* TWEAK: For premium users: Added the option to connect to UpdraftCentral Cloud at point of connecting a license to a site
* TWEAK: If on PHP 5.3 or later, then register our Google SPL auto-loader with the 'prepend' flag, so that we can avoid loading incompatible Google SDKs registered (but not yet used) by other components
* TWEAK: Clear settings visuals after wipe settings
* TWEAK: Improve UpdraftPlus news layout on dashboard
* TWEAK: Handle a case seen where the updates checker failed to load
* TWEAK: Prevent a possible PHP notice when requesting a rating
* TWEAK: Update to the current series (4.5) of yahnis-elsts/plugin-update-checker (paid versions)
* TWEAK: The "follow this link to refresh your (licensing) connection)" (paid versions) link was not functioning
* TWEAK: Alert the user in the UI if they have activated a storage destination without any settings
* TWEAK: Refactor the remote storage logging code in the S3, Email, Remote send, Backblaze, WebDAV, UpdraftVault, FTP, Google Cloud and Azure modules
* FEATURE: Ability to purchase UpdraftVault subscriptions, including a new 5GB 1 month trial, directly from the UpdraftVault settings
* TWEAK: If a directory is not found during a restore but the parent directory is then, where relevant, UpdraftPlus will automatically try to create the missing directory
* TWEAK: Use the correct nonce name when requesting filesystem credentials if needing the WP_Filesystem API to delete old directories
* TWEAK: Regression in 1.16.6 - certain types of final errors stopped being shown in the final report and had to be read from the log file
* TWEAK: Refactor the remote storage logging code in all remote storage modules
* TWEAK: Prevent the download entities UI becoming uglified from multiple button presses

= 1.16.6 - 14/Feb/2019 =

* FEATURE: Added new S3 intelligent tiering class
* FEATURE: Ability for user to buy Premium without leaving the plugin's settings pages
* FEATURE: UpdraftPlus can now catch backups that don't complete because of errors that kill PHP and make sure a report is still sent about them
* FIX: If a very large UpdraftVault upload took more than an hour, then the token could expire without being refreshed (fix in version 1.16.0 was incomplete)
* PERFORMANCE: Modify a condition in the zip-batching algorithm so that greater acceleration in the zip-batching algorithm is allowed on setups allowing very long PHP run times on the initial (zero-eth) resumption
* PERFORMANCE: UpdraftClone now sends larger chunks over the network, leading to faster sending of data
* PERFORMANCE: Force UpdraftClone to use a 100MB split size for better performance (previously intended, but not always working)
* TWEAK: Upon restoration, WP's cache directory will be emptied (by default it is not included in backups, so in theory this is a no-op, but the occasional case has been seen where it got populated during the restore process)
* TWEAK: Add support for the new Europe (Stockholm) (eu-north-1) AWS region in Amazon S3
* TWEAK: Advise the user if they changed the plugin's slug (and so won't be able to get updates) (paid versions)
* TWEAK: Make use of wp_get_themes rather than relying solely to get_themes which is already deprecated
* TWEAK: Regression: When a user aborted a fatal error occurred before all clean-up actions were complete

= 1.16.5 - 28/Jan/2019 =

* FEATURE: If a restoration is interrupted (e.g. PHP timeout), then the "Continue" feature can now resume not just at the most recent zip file, but within the zip file at the point it had reached (https://updraftplus.com/auto-resuming-interrupted-restores-part-2/)
* FEATURE: Added command in WP-CLI which gives a list of incremental backups restore points.
* FIX: Regression: When a Dropbox upload failed to complete, UpdraftPlus would log this but fail to retry
* FIX: Again update phpseclib to the latest version which should now fix the 'SSH2 Server Host Key Algorithm Mismatch' on all installs
* TWEAK: Correct a wrong variable reference in an error message
* TWEAK: Only add the JavaScript for the incremental schedule selection on the UD settings page
* TWEAK: Replace incidental use of ipinfo.io now that it requires a paid API key
* TWEAK: The print_delete_old_dirs_form method should have been public to allow painting if the user clicked through the previous message

= 1.16.4 - 17/Jan/2019 =

* FIX: Regression: Properly mark backups picked up via "Rescan remote storage" as non-native (preventing unwelcome side-effects such as being pruned by another site)
* FIX: Correctly update the OneDrive refresh token to prevent expiry
* FIX: Again work around an issue with 'SSH2 Server Host Key Algorithm Mismatch' occurring with the current phpseclib release by temporarily reverting to an earlier one as it still does not work on all installs
* FIX: When restoring an incremental backup set via WP-CLI, the selected restore point was ignored
* FIX: If the remote storage settings were for multiple instances of a single backend-type (e.g. two Dropbox accounts), and if the entire backup and send operation completed in a single PHP process, then the local copy of the files would not be deleted
* TWEAK: Show the error message if mbstring.func_overload is turned on in php.ini while creating migration key
* TWEAK: Added Azure China endpoint
* TWEAK: Resolve "dashicons" CSS conflict
* TWEAK: Add 'blogmeta' to the list of core tables (in readiness for WP 5.1)
* TWEAK: Remove unnecessary deprecated (in PHP 7.3) parameter to define() in WebDAV HTTP library
* TWEAK: Prevent a potential PHP notice in UpdraftPlus Premium when installed without network access
* TWEAK: Enhance the updraftplus_exclude_file and updraftplus_exclude_directory filters to also pass the stored names
* TWEAK: Add a new constant UPDRAFTPLUS_ZIP_BATCH_CEILING that can tweak internals of the zip backup engine

= 1.16.3 - 10/Jan/2019 =

* FIX: Prevent extraction regression (in 1.16.1) when using PclZip (N.B. php-zip is always preferred if installed) on zero-sized files
* FIX: Prevent the incremental backup cron from being incorrectly scheduled

= 1.16.2 - 07/Jan/2019 =

* FIX: wp_doing_cron() was used when unzipping, but requires WP 4.8+ (regression in 1.16.1, which was never released on wordpress.org)
* TWEAK: Updated phpseclib to the latest version after the previous work around to fix the 'SSH2 Server Host Key Algorithm Mismatch' issue
* TWEAK: Check-in with the clone during the backup process to make sure it is not prematurely purged

= 1.16.1 - 01/Jan/2019 =

* FIX: If a very large UpdraftVault upload took more than an hour, then the token could expire without being refreshed
* FIX: Version 2.16.0 could write invalid or incomplete JSON when creating the manifest file on an incremental backup under certain circumstances
* FIX: When restoring an incremental backup set via WP-CLI, the restore order could be wrong
* TWEAK: Accept and parse the invalid JSON when restoring an incremental archive created on 2.16.0
* TWEAK: When running an incremental backup, the backup report would report the time taken to run the backup wrongly
* TWEAK: Make the logging on the state of zip extraction more fine-grained (at least every 100MB, 1000 files or 15 seconds)
* TWEAK: Re-factoring of zip extraction code to allow for future improvements
* TWEAK: Re-factoring of the restore routines to share more code between different entry points, and allow future improvements
* TWEAK: Differentiate between failures to JSON-decode an incremental backup manifest file and other types of failures

= 1.16.0 - 19/Dec/2018 =

* FEATURE: Added the ability to create and restore Incremental Backups (Premium version)
* FIX: Work around an issue with 'SSH2 Server Host Key Algorithm Mismatch' occurring with the current phpseclib release by temporarily reverting to an earlier one
* TWEAK: Improve performance by aggregating separate SQL SELECT queries (previously one for each backup) when loading the settings page
* TWEAK: internal backup extradata parameter to prevent unwanted PHP notices
* TWEAK: Fork a method UpdraftPlus_Filesystem_Functions::unzip_file() to allow for future enhancements
* TWEAK: Periodic purging of obsolete job data that didn't get cleaned when expected was not happening on multisite
* TWEAK: Improve logging when the initial call to jobdata_set_multi fails
* TWEAK: Any stored backup/restore progress log files will now be deleted after 40 days. (Since they are attached to email reports, you can keep and retrieve them from those if needed). Over-ride this with the filter updraftplus_log_delete_age if desired.

= 1.15.7 - 06/Dec/2018 =

* FIX: a method call on an incorrect class which caused a fatal error

= 1.15.6 - 06/Dec/2018 =

* FEATURE: Added WordPress 5.0 support to UpdraftClone
* FEATURE: Added the ability to choose the UpdraftClone server location
* FEATURE: Cut a step from the activation procedure on paid versions, improving reliability on some installs that did not detect available updates
* TWEAK: The UpdraftClone video is inserted after clicking a link (prevent unwanted call to the video server)
* TWEAK: Replace a 'continue' with a 'break' to prevent a PHP notice on PHP 7.3
* TWEAK: (Paid versions) Simplify the constants involved in defining a custom/over-ride licensing server; and show in the 'Extensions' tab if an over-ride applies.
* TWEAK: (Paid versions) Remove a library versioning assumption in the processing of results from a licensing claim
* TWEAK: (Paid versions) A regression had caused the current UD install version to be sent in an updates check
* TWEAK: Re-factoring of scheduling methods into their own class
* TWEAK: Tweak the scheduling engine to separate the next resumption time from the maximum run time in the case of overlapping runs, in order to prevent unnecessary large gaps between resumptions in cases where the server allows very long run times

= 1.15.5 - 19/Nov/2018 =

* TWEAK: Include the backup set ID in clone ready state file
* TWEAK: For Premium users with grand-fathered lifetime updates (i.e. purchased before August 2013), a regression had caused support entitlement expiries to no longer be notified
* TWEAK: For Premium users with who have downgraded from unlimited licences to another package, a licence expiry message could show when in fact the real situation was that they just needed to specifically allocate a licence to the site. The relevant message has been adjusted to improve this.
* TWEAK: Track "more files" incremental backup locations
* TWEAK: Don't show individual add-ons that have not been bought in the account add-ons page if the user has Premium.
* TWEAK: Include the raw updates check response information in the internal/advanced dump
* TWEAK: Added the UpdraftClone video

* TWEAK: Ability for user to buy Premium without leaving the plugin's settings pages

= 1.15.3 - 29/Oct/2018 =

* FEATURE: UpdraftPlus now has an option to auto-update
* FEATURE: Azure for Government endpoint support (Premium)
* FIX: SSL verification settings were not allowing verification to be turned off for generic S3 storage
* FIX: In some situations in which a user had defined UTF8 as their character set but WordPress was using UTF8MB4, UpdraftPlus was not detecting this
* FIX: Prevent particular a SQL text pattern wrongly triggering detection of database features when it is within content
* TWEAK: Marked as supporting WordPress 5.0
* TWEAK: Automatically re-scan for presence of database backup after restoring it, to prevent confusion over its status
* TWEAK: Change logic that controls whether the minified or full JavaScript is used
* TWEAK: Improve Settings tab UI on mobile
* TWEAK: Improve UpdraftClone UI
* TWEAK: Improve UpdraftClone temporary page UI
* TWEAK: Change method used to record the MySQL version to deal with how MariaDB can report when using a non-MariaDB client library (see: https://github.com/joomla/joomla-cms/issues/9062)
* TWEAK: Replace Base64 encoded logo by image file
* TWEAK: Hide guided tour on UpdraftClone
* TWEAK: Fixed broken automatic backup modal layout
* TWEAK: Auto rescan after restoring the remote database
* TWEAK: Explicitly set the backup history option to not autoload, as it can get non-trivial in size
* TWEAK: Improve UI of excluding things from the backup
* TWEAK: Prevent a possible PHP debug notice in methods/backup-module.php
* TWEAK: Show progress in browser view port instead of modal dialog when we delete the backup(s).
* TWEAK: Added a --db-dummy-restore option to WP-CLI which will run a dummy restore of the database (under an unused prefix) and then drop the tables after it finishes. This option can be useful for testing.
* TWEAK: Update the UpdraftClone UI when site information becomes available
* TWEAK: Curl errors when interacting with Backblaze B2 will now be passed up for easier debugging
* TWEAK: Re-factor add-on remote storage credential testing to make passing debugging information easier
* TWEAK: Implement non-default SSL options with Backblaze B2 (previously the defaults were always used)
* TWEAK: UpdraftClone: redirect to admin page after using the auto login link
* TWEAK: Improve internal more files backup location tracking
* TWEAK: Send a single request to download a backup set not for each file entity
* TWEAK: Fix a DOM element whereby multiple nonces had the same id
* TWEAK: Automatically build the more files backup location tracking on local rescan
* TWEAK: Refactor the remote storage logging code in Onedrive module

= 1.15.2 - 19/Sep/2018 =

* FIX: Asking the tour to cancel on the plugins page did not work
* FIX: an issue where some jobdata did not get set which resulted in the backup email not being sent
* FIX: a regression whereby network-activated plugins could get deactivated on multisites when restoring
* FIX: When database encryption was active, UpdraftClone would fail
* TWEAK: There is now a 'Rescan remote storage - log results to console' link in 'Advanced Tools' to aid with debugging
* TWEAK: Fixes Migrate / clone tab contents showing on the Advanced tools tab
* TWEAK: Attempt to catch, work-around and log when the backup history cannot be saved due to too long a history relative to the MySQL server's maximum packet size
* TWEAK: Re-factor and introduce the UpdraftPlus_Storage_Methods_Interface class
* TWEAK: Introduce the UPDRAFTPLUS_ENABLE_TOUR constant for power users; set it to false as part of your automated WP installation process (or manually) if you wish to disable all tour functionality.

= 1.15.0 - 12/Sep/2018 =

* FEATURE: Introducing UpdraftClone. Create a live copy of your site with a button press. Great for testing changes, testing updates (e.g. WordPress core, plugins, PHP versions) and anything else you can think of. More information: https://updraftplus.com/updraftclone/
* FIX: Fix the logic for claiming and activating licences/add-ons.
* FIX: Fixed OneDrive for Business Germany authentication tenant issue
* TWEAK: WP-CLI - use dash (-) instead of underscore (_) to separate words, in order to match WP-CLI standards.
* TWEAK: Adds close_browser_connection capability for servers using phpfpm
* TWEAK: Change multiple backups selection and actions UI
* TWEAK: Prevent PHP debug message on backup from UpdraftCentral when processing the service list
* TWEAK: Improves manual backup feedback
* TWEAK: Fix an out-of-date 'lost password' link
* TWEAK: Add filter updraftplus_disk_space_check to allow over-riding disk space check result
* TWEAK: Re-factor some of the restore code to enable future enhancements
* TWEAK: In the case of an 'always keep' backup, it was possible for the wrong log message to be logged concerning the reason for it being kept
* TWEAK: Add log warning and WP Admin notice regarding DreamObjects objects-us-west-1.dream.io endpoint shutting down
* TWEAK: Refactor the remote storage logging code
* TWEAK: Clean up some confusing UI when dealing with remote send backups

= 1.14.13 - 15/Aug/2018 =

* FEATURE: WP-CLI - add a 'get_latest_full_backup' command
* FIX: An issue when deleting multiple backups could result in a backup set not found error
* FIX: Polling during a backup when called from outside UpdraftPlus
* FIX: Plugin activation check was running at the wrong point in the restore process
* FIX: The WP-CLI "restore" command returned an unnecessary error if the incremental shim was not present
* TWEAK: Multisite tweaks for UpdraftCentral's plugin and theme module handlers
* TWEAK: Prevent potential PHP notice on page load when no backup storage is selected
* TWEAK: Add scoping to some CSS rules that were too general.
* TWEAK: A new "Backup / Restore" tab, which consists of backup status and existing backup with rid the "Current Status" tab and the "Existing Backups" tab
* TWEAK: Remove the possibility of a false-positive warning of a migration-rather-than-restoration if the WordPress home_url setting has legitimate oddities
* TWEAK: Improve UI of more database delete button (Premium)
* TWEAK: Removed Gold column and redesigned Premium page
* TWEAK: Improve UC factoring and introduce a UPDRAFTCENTRAL_COMMAND constant to allow context detection
* TWEAK: Tweaked downwards the minimum time in the future for rescheduling a resumption
* TWEAK: Deal with a possible issue in automatic collation selection in restoration when all character sets are supported and a collation is not supported
* TWEAK: Replace absolute URLs in place of relative URLs in anchor links
* TWEAK: Update error code URL for binary zip errors
* FEATURE: Added OneDrive for Business Germany compatibility

= 1.14.12 - 17/Jul/2018 =

* FEATURE: Added Plugin guided tour for new users
* FEATURE: Added UpdraftCentral's theme management module handler
* FEATURE: User can mark any backup as "do not delete", and it will then not be deleted even when retention limits are hit
* FEATURE: WP-CLI - add a 'restore' command
* FEATURE: WP-CLI - Add an option 'delete-during-restore' in the 'restore' command
* FEATURE: Add optional 'fingerprint' configuration for sftp/scp remote storage, allowing the connection to be halted if the server's fingerprint does not match what was entered
* FEATURE: Added the ability to take an incremental backup via WP-CLI (note: incremental backups are still considered an experimental/work-in-progress feature)
* FIX: If a user gave the wrong key to decrypt an encrypted database, the "Decryption failed" message did not display
* FIX: The Migration was not changing an unsupported database table engine with the MyISAM  engine automatically
* FIX: Issue with the Dropbox account API call on some installs
* FIX: The web server disk space refresh link of the existing backups is not working
* FIX: The UpdraftPlus News couldn't print first time when the news cache was not made
* FIX: Activating the "all addons" licence did not remove the corresponding 'activate on this account' link in the "Premium / Extensions" tab
* FIX: When set names query character set hadn't support from the current MySQL server, the restoration process wasn't giving the option to replace the character set
* TWEAK: Updated the plugin.php handler for UpdraftCentral's new plugin management module
* TWEAK: Update posts handler to fix and update pagination in UpdraftCentral
* TWEAK: Refresh UpdraftCentral keys upon successful login or registration using the UpdraftCentral Cloud wizard
* TWEAK: Correct admin page URL in WP-CLI 'restore' command when on multisite without multisite add-on
* TWEAK: Prevent PHP notice when checking non-existent files in relation to an extraneous whitespace warning
* TWEAK: Prevent PHP notices in add-ons with non-present settings
* TWEAK: Add the "Migrate / Clone" tab in place of the "Migrate / Clone" dialog
* TWEAK: Prevent call to the the wp_get_sites() deprecated function on WP 4.6 and newer
* TWEAK: Prevent a potential PHP debugging notice when displaying the 'Connect with your UpdraftPlus.com' form
* TWEAK: Do not show the confusing JetPack 'backup' notice on the 'Updates' page
* TWEAK: Added clone notices and commands for when UpdraftPlus is running on a UpdraftClone
* TWEAK: Move 'Log all messages to syslog (only server admins are likely to want this)' into the 'expert' settings section
* TWEAK: Replace a missing class constant in the Dropbox SDK (only relevant to people upgrading from Dropbox API v1 tokens - indicates upgrading UpdraftPlus from a very old version that previously used Dropbox APIv1 but never v2)
* TWEAK: It's "backup", not "back up"
* TWEAK: Prevent potential PHP debugging notices in restoration step 2
* TWEAK: Allow non-Super Admins to access UpdraftPlus Premium if they have 'manage_network_plugins' capability and the updraft_user_can_manage filter is used
* TWEAK: Improved code in a way that prevents continuous polling in the themes page, the plugins page and the updates page

= 1.14.11 - 25/May/2018 =

* FIX: Revert a change in 1.14.9 that could cause backups to not be sent to remote storage (fix in 1.14.10 was not 100% complete (but worked for almost everyone))

= 1.14.9 - 24/May/2018 =

* FEATURE: Make it more seamless to sign up to UpdraftCentral Cloud
* FEATURE: Microsoft Azure storage (Premium) compatibility with Azure Germany
* FEATURE: Added the ability to create migration keys from WP-CLI (Premium)
* FIX: A backup icon/storage shows for a storage type even if all instances were disabled
* FIX: WP CLI updraftplus command was not running on few environments like the Windows command line
* FIX: A PHP fatal error was occurring when a user try to restore an encrypted DB when defining the "UPDRAFTPLUS_DECRYPTION_ENGINE" constant
* TWEAK: Added the ability to schedule incremental backups (Note you can not yet take incremental backups)
* REFACTOR: Completed factoring for tabs of the settings page.
* TWEAK: Some re-factoring and tidying of the restoration code for easier maintenance
* TWEAK: Add a longer timeout on SFTP logins to cope with a 'long delay, but then worked' situation seen in the wild
* TWEAK: An "Incremental backups" extension was displayed in the Premium / Extensions tab, causing confusion since it is not yet finished/launched
* TWEAK: Displays a Byte Order Mark (BOM) warning by giving the file names along with the path in the "Existing Backups" tab, if a BOM is detected at the start of common files that people tend to edit
* TWEAK: A WP CLI Existing backup command didn't display a date time in the "job_identifier" column
* TWEAK: Add links to the relevant app privacy policies within the settings sections for storage methods using OAuth authorization apps
* TWEAK: Log user and group IDs of process and file/folder, when permissions for an operation is denied
* TWEAK: Prevent a potential PHP debugging notice when showing the 'Upload' button
* TWEAK: Update an out-of-date "wrong password" link
* TWEAK: Added the "Web-server disk space in use by UpdraftPlus" information to "Site information" section in the "Advanced Tools" tab; it won't show in the 'Existing Backups' tab if you are using less than 100MB.
* TWEAK: When a Google Cloud token was invalid, a PHP Fatal could result instead of catching the error and informing/logging nicely
* TWEAK: If php-xml (SimpleXMLElement) is not installed, then show an appropriate warning in the Azure configuration section
* TWEAK: If the user tries to install another version of UpdraftPlus, then tweak the default error message that they are shown by WP, which is too obscure/cryptic for many users
* TWEAK: If a fatal error occurred during uploading a backup, try to recover it and process the upload further

= 1.14.8 - 12/May/2018 =

* FIX: Resuming of a partially uploaded backup archive in the new 'OneDrive for Business' module was not working
* TWEAK: When testing SFTP settings, if debug is activated, activate debug logging and pass the results back in the event of test failure (previous attempt was incomplete)
* TWEAK: OneDrive SDK cleaned up to remove the obsolete Live 5.0 API

= 1.14.7 - 25/Apr/2018 =

* FIX: Fix incompatibility with loading the dashboard on WP 4.6 and older. If you have this problem, then you cannot visit /wp-admin/ - you will need to update via another tool (e.g. if you have a multiple site management tool), or via FTP (download the https://downloads.wordpress.org/plugin/updraftplus.1.14.7.zip , unzip it on your PC, log in to your site via FTP into the folder wp-content/plugins, remove the existing folder 'updraftplus' and then upload the unzipped 'updraftplus' folder). Many apologies!

= 1.14.6 - 25/Apr/2018 =

* FEATURE: Added the option to upload locally-available backups to remote storage
* FEATURE: Add post management module for UpdraftCentral (client-side; UC-side still pending)
* FEATURE: Added WP-CLI "rescan-storage" subcommand to the WP-CLI add-on rescan either remote storage or local storage
* FEATURE: Compatibility of the (paid) OneDrive module with 'OneDrive for Business'
* FIX: Multisite restoration did not display single site restoration option when URLs were different but clearly the same site (http/https difference)
* FIX: WebDAV uploads could fail if the user defined the constant UPDRAFTPLUS_WEBDAV_NEVER_CHUNK
* FIX: If UpdraftVault remote had failed, UpdraftVault couldn't recover without settings wipe
* TWEAK: Handle a DreamObjects server that was not sending an application/xml content-type header
* TWEAK: Handle a case where the root cause of an error from DreamObjects was not being clearly shown
* TWEAK: Alert the user of their mistake if they try to enter a URL instead of a folder path in the OneDrive settings folder field
* TWEAK: Adjust the PclZip log message to clarify the implications of using PclZip (i.e.: it's significantly slower)
* TWEAK: Add support for the upcoming objects-us-east-1.dream.io DreamObjects endpoint
* TWEAK: Prevent potential PHP notice in WP-CLI subcommand for existing backups
* TWEAK: Add UpdraftPlus news in admin dashboard "WordPress Events & News" widget

= 1.14.5 - 3/Apr/2018 =

* FEATURE: Add a "Database only" option to the UpdraftPlus email backup options
* FEATURE: An UpdraftPlus add-on (paid) to run the backup process through WP CLI
* FIX: Restoration did not display the decryption passphrase input (but always used the saved one)
* FIX: Browse content download file was not working in Windows hosting
* FIX: The wrong default for the 'Delete local backup' setting was applied if you had never saved your settings
* TWEAK: Prevent a PHP notice showing when testing S3 storage
* TWEAK: Prevent a PHP notice when downloading from Dropbox
* TWEAK: Improved the migrate UI
* TWEAK: Update bundle cacert bundle to latest (2018-01-17) release
* TWEAK: Ajouter soutien pour le nouveau region AWS Paris (eu-west-3)
* TWEAK: Handle short filesystem reads when sending data to Google Drive
* TWEAK: Improve handling of PHP errors and exceptions during back-end calls
* TWEAK: Update internal OneDrive SDK for compatibility with 'OneDrive for Business' (not yet fully supported)
* TWEAK: Internal refactoring and improvements to the UpdraftPlus.com form
* TWEAK: Job ID is now separate from the file nonce
* TWEAK: Show increments in the UI
* TWEAK: Add visibility controls to functions of a stream wrapper class for WebDAV access
* TWEAK: Handle errors when getting folder ID from Google Drive more patiently
* TWEAK: Displays more descriptive error when google drive authentication error occur

= 1.14.4 - 19/Feb/2018 =

* FEATURE: Now supports AWS v4 signatures (allowing use of new AWS regions) with old S3 SDK (which is used on PHP 5.2)
* FIX: WebDAV options filter was not correctly saving any human-chosen description
* FIX: Regression: Rackspace 'new user' wizard was not functioning
* FIX: For chunked storage APIs that require a method to finally re-assemble chunks, if the first attempt failed, then a subsequent failed attempt could be incorrectly marked as having succeeded
* FIX: First instance of each remote storage object was not using its internal default options
* TWEAK: Added the ability to restore incremental backup sets (N.B. currently you cannot create incremental backup sets; this is part of our development of that feature)
* TWEAK: Edit welcome banner
* TWEAK: If 'lock admin' functionality (Premium) has been disabled by the site administrator, then include a line to that effect in the relevant section.
* TWEAK: Allow UpdraftCentral classes to have boiler-plate pre and post-call methods
* TWEAK: Do a bit more logging for Backblaze B2 uploads
* TWEAK: Add a sanity check to prevent some PHP debug notices being logged in an upgrade situation
* TWEAK: Resolved unwanted WebDAV remote storage JavaScript console message

= 1.14.3 - 24/Jan/2018 =

* FEATURE: OneDrive and Google Cloud deauthorise link provided after authentication
* FEATURE: Added the ability to label remote storage instances (Premium)
* TWEAK: Handle a combined error/timing condition seen on DigitalOcean Spaces that could lead to UD thinking that an upload that actually succeeded, did not
* TWEAK: Add functions to pull backup status and log for UpdraftCentral
* TWEAK: Add command multiplexer function for UpdraftCentral
* TWEAK: Audit and regularise use of slash-handling code in AJAX layer
* TWEAK: A couple of remote storage error paths were not returning the error information to the upper level correctly
* TWEAK: Prevent phpseclib from throwing a fatal upon autoload if mbstring.func_overload is set (see: https://github.com/phpseclib/phpseclib/issues/762); instead, log, or handle in some other way appropriate to the context
* TWEAK: Some minor code-styling and linting ignore tweaks
* TWEAK: (Regression) After filling the UpdraftVault connect form, pressing Enter was no longer triggering submission
* TWEAK: If counting up the total "More files" data when none are configured to be backed up, show "None configured" instead of "Error"
* TWEAK: Improve UI of notice when claiming an add-on
* TWEAK: Standardise the way OAuth remote storage methods authorise/deauthorise settings
* TWEAK: "Wipe Settings" button click event was not asking for confirmation
* TWEAK: Add Server Side Encryption (SSE) support to old S3 SDK
* TWEAK: Dropbox now uses the internal chunked download API

= 1.14.2 - 22/Dec/2017 =

* FIX: Email backups not sending correctly
* FIX: Buttons in the 'Migrate' dialog box stopped working after you switched tabs (until you reload the page)
* FIX: Unable to delete multi-storage S3 instances
* TWEAK: Remove duplicate DOM id for nonce fields
* TWEAK: Correct name of PutObjectAclVersion permission when requesting it in S3 wizard
* TWEAK: Improve S3 log message to make clear which back-end a message is coming from
* TWEAK: Improved migration warning message if migrator addon is available and restoration site url is slightly different than current site url
* TWEAK: New non-existent Backblaze B2 buckets are now created automatically
* TWEAK: Suppress expected (but confusing to some users) "404 not found" message in the log when WebDAV backup file is at 0% uploaded

= 1.14.1 - 12/Dec/2017 =

* FEATURE: Backup to multiple remote storage accounts of the same type
* TWEAK: Remove all the lines "X is a great choice, because is supports chunked uploading..." from the UI. Almost everything did support it, but not everything mentioned it, which could cause confusion.
* TWEAK: Prevent a PHP log notice in some settings savings scenarios
* TWEAK: Add missing filter for processing changes to Google Cloud, OneDrive and Azure settings (Premium storage option) on multisite
* TWEAK: Minor internal re-factoring: move hard-coded storage back-end names out of options and multisite addon classes.
* TWEAK: Prevent a PHP log notice during backup on PHP 7.2

= 1.13.16 - 07/Dec/2017 =

* TWEAK: Remove Ukrainian translation files from wordpress.org zip (translation now complete, will download from wordpress.org separately)
* TWEAK: Adding V4 Signature properties and methods to old S3 SDK
* TWEAK: Migrator add-on: keep a log of tables as they are created
* TWEAK: Tweak wording on the 'Premium/Extensions' tab
* TWEAK: Change the order of classes in methods/cloudfiles.php to work around a PHP install bug seen in one instance
* TWEAK: Be less aggressive about logging a usually unnecessary internal message about settings
* TWEAK: Improve UI of migration notice in free version
* TWEAK: Resolve PSR4 autoloading conflict with older version of Composer
* TWEAK: Pruning will now prune backups from multiple storage destinations of the same type (not yet a user-visible feature)
* TWEAK: Update the 'ifeq' handlebars helper to resolve a conflict with MainWP


= 1.13.15 - 28/Nov/2017 =

* FIX: Updated OneDrive SDK to allow for PHP 7.2 (due for release soon) compatibility
* FIX: When multiple remote backup destinations existed, pruning of old backup sets was not removing from all destinations (recent regression)
* FIX: When re-scanning a Rackspace Cloud Files remote location, only the first 100 files were processed
* FIX: Backups being downloaded twice from Dropbox during a restore which could cause unexpected results upon a site migration
* FIX: The 'SCP' and 'Server-side encryption' checkboxes in the settings was always ticked in the browser upon reload, regardless of the saved setting (regression in 1.13.14)
* TWEAK: Improve export settings file name by appending site name to export download file
* TWEAK: Perform escaping of table names in SQL calls without using esc_sql()
* TWEAK: Site option is deleted before updating it in multisite
* TWEAK: Improve WebDAV remote method upload speed
* TWEAK: Improve WebDAV remote method download speed

= 1.13.14 - 21/Nov/2017 =

* FIX: Search/replace checkbox was not appearing when migrating a multisite setup
* FIX: WordPress 4.8.3 introduced a breaking internal change in the WordPress database API, which broke the search/replace of strings including percent signs. Updated Migrator code to handle this.
* FIX: WebDAV remote storage settings not being loaded onto the settings page properly
* FIX: Rewrite of legacy (PHP 5.2) S3 SDK Class to fix pruning old backup sets when multiple storage back-ends that are all based on S3 are in use.
* TWEAK: Improve formatting of restoration warnings
* TWEAK: Add css classes to backup templates
* TWEAK: Standardise the way storage classes are internally stored/retrieved
* TWEAK: Remote storage modules configuration templates transition using handlebars.js
* TWEAK: Adjust message mentioning mcrypt which is not needed if php-openssl is installed
* TWEAK: Add UPDRAFTPLUS_USE_WPDB constant

= 1.13.13 - 02/Nov/2017 =

* FIX: Google Drive Custom App authorisation and de-authorisation was not working
* FIX: Rackspace new user creation had stopped filling the new credential fields automatically after successful creation of a new user
* TWEAK: When migrating, the detected search/replace terms now make sure that http and https variants are both included as search terms
* TWEAK: Make the internal error code with OneDrive auth failures more accurate
* TWEAK: Remote storage modules configuration templates transition using xamin/handlebars.php libraries
* TWEAK: Changed the Dropbox authentication flow to not send a GET request on large URLs
* TWEAK: Improve error message when invalid bucket name given by user for Backblaze remote storage method

= 1.13.12 - 25/Oct/2017 =

* TWEAK: Showing search/replace checkbox option only when needed.
* FEATURE: Warn the user if their .htaccess seems to contain a redirect (or any other reference) to the old site after migration.
* FEATURE: When importing a database, warn the user if the current MySQL server does not support a used collation, and offer to replace it
* FIX: Saving of S3 settings had taken a dislike to buckets beginning with a capital 'B'
* FIX: UpdraftCentral users' module was failing to handle loading a very large number of users
* TWEAK: Allows the installation and/or activation of the WP-Optimize plugin from UpdraftCentral
* TWEAK: Add multisite attribute to the error response object for the create user, delete user and edit user actions.
* TWEAK: All remote storage methods are ported over to using configuration templates internally
* TWEAK: Include a method to add a manifest file inside each backup archive
* TWEAK: All code relating to the now-dead Dropbox APIv1 removed (N.B. If you've not updated UpdraftPlus since November 2016 and were using Dropbox, it won't be working - https://blogs.dropbox.com/developers/2017/09/api-v1-shutdown-details/)
* TWEAK: Prevent a PHP log notice upon database backup restore when using Google Drive without a client ID
* TWEAK: Prevent the final 'Restore' button being pressed a second time
* TWEAK: Improvements to the UpdraftCentral wizard
* TWEAK: Update to trunk version of plugin updater (paid versions), restoring the ability to work on older WP versions (3.8 and before)
* TWEAK: Add lbakut_activity_log to the list of large log tables
* TWEAK: Updater in paid versions now requests JSON as response format for responses when claiming entitlements
* TWEAK: Resolve: Backup labels could end up with extraneous slashes in output
* TWEAK: Updater in paid versions can now receive and process update information in respond to entitlement claim - one less HTTP round-trip
* TWEAK: Improve Google Cloud authentication success message for bucket name is not defined
* TWEAK: UpdraftVault commands now pass an instance identifier
* FEATURE: Backups can now be uploaded to multiple instances of the same remote storage but not yet possible to add multiple instances

= 1.13.11 - 27/Sep/2017 =

* FIX: Fix a failure (regression in 1.13.8+) to download some backup sets which pre-date the existence of instances
* FIX: Fix a failure to backup in the short-lived 1.13.10 (many apologies)
* TWEAK: When logging an Exception or Error, include a backtrace (WP 3.4+)
* TWEAK: Prevent a PHP warning during a save of the backup history
* TWEAK: Added a MetaSlider notice in the notices collection
* TWEAK: Put a try/catch block that will catch PHP exceptions/fatals (PHP 7.0+) during encryption phase, so that any issues can be logged

= 1.13.9 - 25/Sep/2017 =

* FEATURE: Backblaze B2 (https://www.backblaze.com/b2/) support in UpdraftPlus Premium
* TWEAK: Port job data used by Azure, Google Cloud and OneDrive storage to being instance-local (now believed to all be ported)
* TWEAK: The automatic correcting of wrongly-input S3 and FTP settings had regressed in a recent version
* TWEAK: Various small fixes to the standards compliance of the HTML output in the remote storage settings area
* TWEAK: When deleting backups with multiple remote storage instances of the same type, order the attempts

= 1.13.8 - 21/Sep/2017 =

* FEATURE: When importing a database, warn the user if the current MySQL server does not support a used character set, and offer to replace it (with a link explaining the risks)
* FEATURE: Generic S3 storage module can now use non-default ports (specify by appending :(port number) to the host name)
* FIX: Re-scanning of remote storage would fail to detect a file manually uploaded to a secondary remote storage location if not also present locally. Various other (unlikely) corner-case rescanning scenarios also tested and fixed.
* TWEAK: Some enhancements to the S3 internals, to make the "S3 Generic" module behave better (it already worked) with the forthcoming DigitalOcean Spaces (object storage) (see: https://updraftplus.com/use-updraftplus-digital-ocean-spaces/)
* TWEAK: UpdraftCentral will no longer show updates which WordPress core lists which appear to be of the same version number
* TWEAK: Handle trying to download a zero-sized file through the browser more elegantly
* TWEAK: When pressing 'Delete', the "also delete remote backup" checkbox was showing even for backups without remote storage
* TWEAK: Abstract history handling into a separate class, UpdraftPlus_Backup_History, for easier maintenance
* TWEAK: Remove a use of count() on a string to prevent a new PHP notice on PHP 7.2+
* TWEAK: Some changes to the UpdraftCentral connection tool to make it more user-friendly
* TWEAK: Clarified and documented the re-scanning code, and made it compatible with the increased flexibility needed for incremental backups in future
* TWEAK: Tweaked UpdraftCentral GA handler to support Tracking ID editing and disconnection.
* TWEAK: In the free version, if the only difference between backup and site URLs is http/https, then show a different message to make the situation clearer
* TWEAK: Make the UPDRAFTPLUS_IPV4_ONLY constant take effect more widely
* TWEAK: Do not duplicate remote instance ID records in the backup history when re-scanning
* TWEAK: Keep the remote instance ID list consistent with the remote service list when re-scanning
* TWEAK: Prevent a PHP notice that could appear for locally stored backups in UpdraftPlus::get_storage_objects_and_ids()

= 1.13.7 - 06/Sep/2017 =

* FIX: UpdraftCentral connectivity for various operations restored (regression in 1.13.6)
* FIX: No error message was being shown when a backup to local storage was missing upon restore
* COMPATIBILITY: Replace uses of the deprecated (PHP 7.2+) each() function
* TRANSLATION: Portuguese (Portugal) and Romanian translations are now complete and supplied from wordpress.org, so can be removed from the free plugin zip
* TWEAK: Fix some wrongly-called translation functions, and pull more known strings into the Premium version
* TWEAK: Remove the legacy parameter for setting storage upload job status data (only useful for version downgrades of more than 1 release during in-progress backups)
* TWEAK: Exclude some unnecessary build and unused files from the release zip (reduce disk space and download size)

= 1.13.6 - 05/Sep/2017 =

* FEATURE: Google Drive authorisation now goes via an officially registered app for easier connections to Google Drive.
* FEATURE: Include commands for UpdraftCentral's (https://updraftcentral.com) Google Analytics management facility (check the changelog.txt for the release)
* FIX: Correct handling of OneDrive folder names featuring spaces (possibly a regression/change in the handling at OneDrive's end)
* TWEAK: Prevent messy layout when the last log message is very long
* TWEAK: Log catchable fatal errors and exceptions during backup in PHP 7
* TWEAK: Log catchable fatal errors and exceptions during restore in PHP 7
* TWEAK: Log catchable fatal errors and exceptions during backup download in PHP 7
* TWEAK: Reduce amount of database logging during existing zip analysis, database backup and pruning stages
* TWEAK: In AJAX/JSON responses, automatically detect and handle corrupted output (e.g. setups where PHP debugging notices are configured to come to the browser)
* TWEAK: Catches and more elegantly handles errors when a settings import file cannot be JSON-parsed
* TWEAK: Request list of available add-ons (paid versions) from the mothership in current format
* TWEAK: Added custom backup message parameter backupnow_message in function updraft_backupnow_inpage_go()
* TWEAK: General code tidy-up, making older code conform to our current standards
* TWEAK: Add the possibility of passing back associated data with test results, and log it in the browser console
* TWEAK: When carrying out a remote storage test, pass the state of the 'debug' setting
* TWEAK: When testing SFTP settings, if debug is activated, activate debug logging and pass the results back in the event of test failure
* TWEAK: Optimise away a database query in the case of no UpdraftCentral keys existing
* TWEAK: Removed "Reduced Redundancy" storage class from Amazon S3 remote storage options, because Amazon are deprecating it (and it now costs more, for inferior redundancy - https://updraftplus.com/forums/topic/amazon-is-phasing-out-reduced-redundancy-storage/)
* TWEAK: Backup files missing error message corrected
* TWEAK: Add the handlebars-js and xamin/handlebars.php libraries
* TWEAK: The FTP storage module has been ported to outputting its configuration via a template
* TWEAK: Introduce internal API and port all job data saved in storage modules to be instance-local

= 1.13.5 - 08/Aug/2017 =

* TWEAK: Manage phpseclib through composer
* TWEAK: Do less logging to database when resuming and noticing already-processed tables (saves resources)
* TWEAK: Returns comment status when updating comments from UpdraftCentral
* TWEAK: Update plugin-updates-checker library to current (4.2), and manage via composer, replacing bundled copy in the build source
* TWEAK: Replace uses of create_function(), which is deprecated on PHP 7.2
* TWEAK: Replace deprecated constructors (PHP 7+) in webdav module
* TWEAK: Documentation showing plugin developers how easy it is to add in-page backups to their plugin: https://updraftplus.com/add-take-backup-functionality-plugin/
* TWEAK: Make the UpdraftCentral updates checking able to cope with a wider range of third-party schemes
* TWEAK: General code tidy-up, making older code conform to our current standards
* TWEAK: Minor version updates of some bundled libraries
* TWEAK: Produce and use minified resources (CSS/JS) where available
* TWEAK: Update class-udrpc to latest (1.4.14) which removes a conflict with other code that may interact with CORS OPTIONS requests
* TWEAK: Escape log lines when sending for display (theoretically an XSS security issue, but to achieve a successful attack, someone would have to first get something malicious into the log file, which is difficult as there are not many places where foreign input can end up in the log file - e.g. hack into Dropbox and cause Dropbox to send you back malicious HTML in an error message - and then be able to persuade you to both take a backup triggering the problem and then view the log file in your WP dashboard)
* TWEAK: Update Google Cloud bucket locations

= 1.13.4 - 08/Jun/2017 =

* FIX: Import function had a regression and was not coping with all formats
* TWEAK: When the import function failed, the error was not shown to the user

= 1.13.3 - 07/Jun/2017 =

* FIX: Revert Dropbox authentication change in 1.13.2, which was not working on all sites

= 1.13.2 - 07/Jun/2017 =

* TWEAK: Marked as tested and compatible on WordPress 4.8
* TWEAK: Dropbox authentication flow can now use POST for the final step, side-stepping (arbitrary) parameter length restrictions on some Apache mod_security setups
* TWEAK: Prevent a possible PHP notice when curl is not present
* TWEAK: Point Clef users towards Keyy
* TWEAK: Do not open an alert box when the user changes their site ID in 'Advanced Tools'
* TWEAK: Fix parameters to updraft_check_overduecrons() JS function

= 1.13.1 - 09/May/2017 =

* REFACTOR: Completed re-factoring of the remote storage modules, so that now all remote storage code has completed this current stage of re-factoring (more to come in future - laying the foundation for a significant new feature)
* FIX: Added a nonce to the Dropbox deauth link. This is a minor security issue - someone personally targeting you, who knew that you were logged in to your WordPress admin, and who could persuade you to visit a personally-crafted web page, could cause the connection between UpdraftPlus and your Dropbox to be broken. The only impact of this is that the sending of your next backup to Dropbox would fail, and you would be alerted about the need to re-connect.
* FIX: Import settings now handle the new remote storage options format
* FIX: The zip file browser was not working in free versions
* TWEAK: Added a version check when saving settings to prevent errors or lost settings
* TWEAK: 'Existing Backups' table now shows an icon for each remote destination that the backup was sent to
* TWEAK: Update SSL CA certificates file
* TWEAK: If, when uploading to S3, a file is not found, handle it slightly more elegantly
* TWEAK: Work with some WebDAV servers that previously sent empty responses to OPTIONS requests

= 1.12.40 - 01/Apr/2017 =

* TWEAK: The in-page log file display had stopped continuously updating in 1.12.32
* FIX: In some circumstances, settings for the storage modules refactored in 1.12.37 could fail to show
* FIX: The free version of 1.12.37/38 in some circumstances could fail to complete Dropbox authentication

= 1.12.38 - 31/Mar/2017 =

* TWEAK: Dropbox API v2 call to de-authorise a token was failing
* FIX: Prevent a fatal error when attempting to use a backup method with no options set

= 1.12.37 - 31/Mar/2017 =

* FEATURE: Browse the contents of a backup from within your WordPress dashboard, and (with Premium) download individual files from it
* FIX: Fix an issue that could occasionally cause corruption of interrupted Dropbox backups. All Dropbox users are recommended to update asap.
* TWEAK: Remove debugging statement inadvertently left in 1.12.36
* TWEAK: Re-factored remote storage handlers via add-ons so that there was a cleaner and more consistent class hierarchy (preparation for future improvements). N.B. If you subsequently downgrade to an older version of UpdraftPlus, you will need to re-enter the settings for some remote storage options.
* TWEAK: List of checksum algorithms run over backups and logged now includes SHA256, and is filterable (SHA1 now considered deprecated)
* TWEAK: Allow chunked database encryption to try and resume in the event of an error
* TWEAK: Improve the premium/extension tab content
* TWEAK: Fix an issue whereby the UpdraftVault settings section could show a bogus problem with checking quota immediately after initial setup
* TWEAK: When requesting a download, work around buggy browser/server that continued after Connection: close
* TWEAK: Improve the UI experience when downloading a log file for display fails
* TWEAK: Prevent PHP notice if another plugin cancels a cron event
* TWEAK: Tweak semaphore handling and enhance logging

Older changes are found <a href="https://plugins.svn.wordpress.org/updraftplus/trunk/changelog-old.txt">in the changelog-old.txt file in the plugin directory.</a>

== Screenshots ==

1. Main dashboard - screenshots are from UpdraftPlus Premium, so may reference some features that are not part of the free version

2. Configuring your backups

3. Take a backup

4. Choose which components to restore

5. Restoration shows as successful

6. To migrate, first click 'Database', 'Plugins' etc. to download these backups to your local machine.

7. On the destination site, 'upload backup files' from the source site to restore and migrate to the new destination.

== License ==

    Copyright 2011-24 David Anderson

    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation; either version 3 of the License, or
    (at your option) any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA

Non-English translators are provided by volunteers, and wordpress.org does not give plugin developers control over their translations; thus relying on them is at your own risk; UpdraftPlus cannot guarantee that translations from the original English are accurate.

We recognise and thank those mentioned at https://updraftplus.com/acknowledgements/ for code and/or libraries used and/or modified under the terms of their open source licences.

== Upgrade Notice ==
* 1.25.9: Various fixes and small tweaks - see the changelog for details. A recommended update for all.
