=== Kavin Site Backup and Migration ===
Contributors: arpansahdev
Tags: backup, migration, clone, database backup, export
Requires at least: 5.5
Tested up to: 7.0
Requires PHP: 7.4
Stable tag: 1.0.2
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

An efficient backup and migration tool for your website. Back up your database and files, then move your site to a new domain with zero data loss.

== Description ==

Kavin Migrate lets you create a full backup of your WordPress site — database plus files — and restore it on a new domain or host without touching FTP or phpMyAdmin.

* Manual database backup
* Full site backup (database + wp-content)
* Export a single portable archive
* Import and restore on a new domain, with automatic (serialization-safe) URL replacement
* Chunked engine that works on limited/shared hosting without timing out

== Installation ==

1. Upload the `kavin-site-backup-migration` folder to `/wp-content/plugins/`.
2. Activate the plugin through the 'Plugins' menu in WordPress.
3. Open **Kavin Backup** in the admin sidebar.

== Frequently Asked Questions ==

= Will I lose data when migrating? =
No. The importer restores your database and files exactly, and safely rewrites the old
site URL to the new one, including inside serialized data.

= Does it work on shared hosting? =
Yes. Backups run in small steps so they don't hit PHP timeout or memory limits.

== Screenshots ==

1. The main dashboard — database backup, full-site backup, and restore in one place.
2. A backup running: the engine works in small, resumable steps so it never times out.
3. Import / Restore — restore onto a new domain with automatic, serialization-safe URL replacement.
4. Your backups — download, restore, or delete any saved backup.

== Changelog ==

= 1.0.2 =
* Fixed: must-use plugins and cache drop-ins are moved aside only while a restore is running, and are now put back when it finishes or is cancelled. Previously they could be left disabled on the destination site.
* Added: a restore that was interrupted part-way now puts them back automatically the next time one is started.

= 1.0.1 =
* Backup storage now resolves through wp_upload_dir() and lives in a folder named after the plugin slug (existing backups are moved across automatically).
* Improved compatibility with installs that relocate the uploads or content directory.

= 1.0.0 =
* Initial public release.
* Full site backup: database + all files (wp-content) packaged into one portable .kavin archive.
* Database-only backup: chunked .sql export with a progress bar, download, and backup management.
* Import / restore on a new domain or host, with serialization-safe URL replacement that handles www/non-www, http/https, protocol-relative, and subdirectory installs — so page-builder (Elementor/Divi/WoodMart) background images and links point to the new site.
* Resumable, time-boxed engine that runs in small steps, so backups and restores work on shared hosting without hitting PHP timeout or memory limits.
* Chunked upload that bypasses the host's upload-size limit for browser-based restores.
* Safe restore: isolates the environment (only this plugin + a bundled safe theme) while working, so an incompatible source plugin/theme can't crash the migration; disables cache/database dropins and must-use plugins during restore, then restores the real environment at the end.
* Handles real-world edge cases: table-prefix migration, unsupported collations (with utf8 fallback), binary/blob values, table-prefix-dependent roles/capabilities, and post-restore cache/CSS/permalink regeneration.
* Protected backup storage and a clean admin dashboard.
