=== Poly Bright Quick Restore ===
Contributors: brandcoremedia
Tags: backup, restore, migration, database backup, duplicator
Requires at least: 5.5
Tested up to: 7.1
Requires PHP: 7.2
Stable tag: 1.0.10
License: GPLv3
License URI: https://www.gnu.org/licenses/gpl-3.0.html

Back up, restore and migrate your whole WordPress site from a single file. Unlimited size, chunked upload past host limits, and .wpress import.

== Description ==

**PolyBright Quick Restore** backs up your entire WordPress site — database, media, plugins and themes — into a single `.wpqr` file, and restores it just as easily. Backup and restore are fully free with **no size limit**, and large uploads bypass your host's upload limit automatically.

= Everything here is free =

* **Full-site backup** to a single `.wpqr` file — database, media, plugins, themes.
* **Restore any backup**, of **any size** — by uploading the file, or with one click from a backup saved on the server.
* **Chunked upload** — your host's upload limit (often 32MB) does not apply. Large files are uploaded in small pieces and reassembled on the server.
* **Keep as many backups as you like** on the server.
* **Serialization-safe URL replacement** — restore onto a different domain and your page-builder content and serialized data are rewritten correctly.
* **Verify a backup** is valid and restorable — without restoring it.
* **Import `.wpress` files** made by All-in-One WP Migration — switching is easy; your existing backups just work.
* **Confirmation before overwrite** — you are always asked before a restore replaces the current site.

There is no trial, no usage limit, and no locked feature in this plugin. It is fully functional.

= Switching from All-in-One WP Migration? =

Your existing **.wpress** backup files can be imported and restored directly with PolyBright Quick Restore. No re-exporting needed.

= Paid editions (optional, from Poly Bright Labs) =

If you manage many sites or want hands-off protection, separate paid editions of Quick Restore — available from [polybrightlabs.com](https://polybrightlabs.com/quick-restore/) — add **automation** that this free plugin does not include:

* Scheduled automatic backups (daily / weekly)
* Backup retention rules (keep the latest N backups)
* Automatic backup before plugin, theme or core updates
* Email alerts on backup success or failure
* Backup encryption

These are additional features delivered separately. The free plugin's own backup and restore are never limited.

== Installation ==

1. In your WordPress admin, go to **Plugins → Add New**, search for "PolyBright Quick Restore", and click **Install Now**, then **Activate**. (Or upload the plugin ZIP under **Plugins → Add New → Upload Plugin**.)
2. Go to **Quick Restore → Export** and click to create your first backup.
3. To restore, go to **Quick Restore → Restore**, upload or choose a backup, and confirm.

To move a site to a new location, install WordPress at the destination first, then install PolyBright Quick Restore there and restore your backup.

== Frequently Asked Questions ==

= Is there a size limit on backup or restore? =

No. Both backup and restore are unlimited in this free plugin. Chunked upload also lets you restore large files even when your host has a small upload limit.

= My host only allows 32MB uploads. Can I still restore a large backup? =

Yes. The plugin uploads your backup in small chunks and reassembles it on the server, so your host's upload limit does not apply.

= Does restoring overwrite my current site? =

Yes. Restoring replaces the current site's database, media, plugins and themes with the contents of the backup. The plugin asks you to confirm before making any changes, so always keep a separate backup of the destination before restoring onto a live site.

= Can I restore a backup onto a different domain? =

Yes. During restore the plugin rewrites the backup's site URLs to the current site's URL in a serialization-safe way, so a backup taken on one domain works on another.

= Can I import backups from All-in-One WP Migration? =

Yes. `.wpress` files can be imported and restored directly.

= If I delete the plugin, are my backups deleted? =

No — by default your backups are kept even if you deactivate or delete the plugin. You can choose to delete them on uninstall via a checkbox in Settings, but it is off by default.

= Where are my backups stored? =

Inside your site's `wp-content` directory, in a protected folder. You can also download backup files and keep them anywhere.

== Screenshots ==

1. Export page — one click to back up your entire site.
2. Restore page — drag and drop a backup, or restore a saved one.
3. Backups page — keep as many stored backups as you like, with Verify built in.
4. Settings — server environment, upload limits, and data preferences.

== Changelog ==

= 1.0.10 =
* Critical fix: exports could freeze permanently ("Archiving files... 0 done") when a single file read stalled — most commonly on network-backed storage used by some managed WordPress hosts. Reads are now bounded with a 20-second timeout, so a stalled file now fails cleanly and reports an error instead of hanging the export forever.
* Hardening: the export's internal time-slice check now runs on every file, including skipped/unreadable ones, so it always yields back to the browser on schedule.


= 1.0.9 =
* Security fix: restore-continuation requests now require a cryptographic match of the per-restore secret key instead of trusting client-supplied flags, closing a CSRF gap flagged in review.

= 1.0.8 =
* Internal consistency fixes: copyright line and code comments now correctly say Poly Bright Labs throughout.

= 1.0.7 =
* Renamed to PolyBright Quick Restore (permalink: polybright-quick-restore).

= 1.0.6 =
* Fixed: migrating to a site with a different table prefix no longer locks out administrators (prefix-dependent keys such as capabilities and user roles are now correctly rewritten, while all other data is preserved verbatim).
* Fixed: serialized settings containing the site URL (widgets, theme options, page-builder data) are now rewritten with correct string lengths instead of being silently discarded after migration.
* Security: removed an unauthenticated diagnostic endpoint that disclosed server paths and versions; progress polling no longer exposes filesystem paths.
* Removed an unused server-side loopback request; the plugin now makes no outbound HTTP requests at all.

= 1.0.5 =
* Critical fix: media images no longer break after restore. The database prefix replacement was corrupting metadata keys such as _wp_attached_file; it now only affects table names, never row data.

= 1.0.4 =
* Major upload speed improvement: larger upload chunks mean far fewer requests (a 30MB file now uploads in ~6 requests instead of ~120).

= 1.0.3 =
* Fixed "Security check failed (403)" error when restoring a saved backup; the security token is now sent on all restore actions.

= 1.0.2 =
* Fixed a stray code comment that displayed on the restore screen and corrupted the confirmation dialog.

= 1.0.1 =
* Fixed restore confirmation dialog: resolved a false "request failed" message and populated the backup details (source, date, WordPress version).

= 1.0.0 =
* First public release of PolyBright Quick Restore.
* Full-site backup and restore, unlimited size.
* Chunked upload that bypasses the host upload limit.
* One-click restore from saved backups, plus restore by upload.
* Serialization-safe URL replacement for cross-domain restores.
* Backup verification.
* Import of All-in-One WP Migration (.wpress) files.
* Backups are kept by default on uninstall (opt-in deletion).

= Upgrade Notice ==

= 1.0.0 =
First public release of PolyBright Quick Restore.
