=== Kuvarssoft Backup & Restore ===
Contributors: kuvarssoft
Tags: backup, restore, database, media, archive
Requires at least: 6.2
Tested up to: 7.0
Requires PHP: 7.4
Stable tag: 1.0.0
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Lightweight WordPress backup, restore and download manager. Take full, database and media backups; restore them; download archives.

== Description ==

Kuvarssoft Backup & Restore is a focused, lightweight backup and restore plugin for WordPress that does one job well: it lets you take, restore and download backups of your site without requiring any external service, paid account or cloud credentials. Everything lives on your own server, under the standard `wp-content/uploads/wpbc-backups/` folder.

The plugin is built around a chunked backup engine that processes large sites in small steps (15-second chunks) so it can finish even on shared hosting with strict execution-time limits. The same engine drives restore: it can rebuild a site from a single archive in a matter of seconds for small sites or a few minutes for media-heavy ones.

**What Kuvarssoft Backup & Restore gives you**

* **Three backup types** — full site (database + uploads + plugins + themes), database-only, and media-only — covering the common day-to-day needs.
* **One-click restore** — pick any backup from your library and restore it; the plugin updates `siteurl` / `home`, replaces stale URLs across the database, and reconnects WordPress when the restore is on the same domain.
* **URL Replace** — a built-in, serialized-data-safe search-and-replace that rewrites every occurrence of your old site URL to a new one across the whole database (its own **URL Replace** admin screen). Useful after moving a site to a new domain. Fully included in the free edition.
* **Restore Report** — every restore produces a clean HTML report (browser-printable to PDF) that lists start/finish time, duration, plugin list, warnings and suggested next steps. Reports live in `wp-content/uploads/wpbc-reports/` and are never deleted automatically.
* **Built-in error log** — when a backup, restore, URL replace or download fails or finishes with a warning, it is recorded in a dedicated `wp_wpbc_sync_log` table and shown on the Logs screen so you can spot and diagnose problems quickly. The log is preserved across restores (the table is excluded from backup dumps on purpose) and never leaves your server.
* **Download manager** — every backup archive can be downloaded from the admin UI. A failed download is recorded in the error log and can trigger an email alert.
* **Failure email alerts via your own SMTP** — configure Gmail, Yandex, or any custom SMTP server (Outlook, Mailgun, SendGrid, Amazon SES, and the like). The plugin emails you when an operation **fails** — a backup, restore, URL replace or download error — so you hear about problems right away. Routine success messages are not sent. BCC is supported for a secondary recipient.
* **Unified backup lock** — a single lock prevents two backups from overlapping on the same site, and the Settings page shows the live lock state in real time. Users can release a stuck lock manually if a process crashed.
* **No telemetry, no tracking** — the backup engine never contacts any external server. Backups stay on your server.

**What Kuvarssoft Backup & Restore is NOT trying to be**

It is not a marketing tool, a malware scanner, a security suite, or a cloud-storage front-end. If you need scheduled backups, Google Drive / Amazon S3 / Cloudflare R2 upload, site-to-site migration with auto-restore, the full searchable/exportable activity-log viewer, or notifications for every event (not just failures), those are part of a separate Pro edition.

**External / third-party services**

The Free plugin uses **no third-party or external services**. It sends no telemetry, no analytics, and uploads nothing off your server — every backup stays in `wp-content/uploads/wpbc-backups/` on your own host.

The only remote HTTP request it ever makes is a **local self-diagnostic**: on the Settings / System screen it calls your *own* site's REST API — `rest_url( 'wp/v2/types' )` via `wp_remote_get()` — purely to confirm the REST API is reachable. No data leaves your site, and no external party is contacted, so there is no third-party Terms of Service or Privacy Policy to disclose.

Email notifications are delivered through the SMTP server **you** configure (your own mail provider). The plugin never routes your mail through any service operated by us.

**Use cases**

* Take a one-shot full backup before a theme update.
* Restore a database-only snapshot after a botched plugin install.
* Hand a media-only archive to a colleague.
* Keep an offline copy of an entire WordPress site you no longer maintain.

== Installation ==

1. Upload the `kuvarssoft-backup-restore` folder to your `/wp-content/plugins/` directory, or install through the WordPress admin under **Plugins → Add New**.
2. Activate the plugin through the **Plugins** screen.
3. Go to **Kuvarssoft Backup & Restore → Backup & Restore** from the WordPress admin menu to take your first backup.
4. (Optional) Configure your SMTP under **Kuvarssoft Backup & Restore → Notifications** if you want email alerts when an operation fails.

That's it. No external account, no token, no API key required.

== Frequently Asked Questions ==

= Does Kuvarssoft Backup & Restore upload my backups anywhere? =

No. The Free edition writes backup archives only to your own server at `wp-content/uploads/wpbc-backups/`. There is no telemetry, no analytics, and no automatic upload to any third-party service.

= Can I use it on a multisite network? =

The plugin is designed for single-site installs. Multisite is not officially supported in the Free edition.

= How big a site can Kuvarssoft Backup & Restore back up? =

The chunked engine has been tested on sites up to ~10 GB. Very large media libraries may need a longer per-chunk window (`max_execution_time` ≥ 60 s); the Settings page shows the recommended values as a copy-paste `wp-config.php` snippet you add yourself — the plugin never edits `wp-config.php` for you.

= Where are the restore reports stored? =

Each successful restore writes an HTML report to `wp-content/uploads/wpbc-reports/`. You can view the list under **Kuvarssoft Backup & Restore → Restore Reports** and open each one in a new tab. The reports are not deleted automatically; the **Settings → Clear Restore Reports** button removes them all if you no longer need them.

= I see a backup lock that won't release. How do I clear it? =

Open **Kuvarssoft Backup & Restore → Settings**. The "Backup Lock Status" panel shows the current lock holder. Click the "Force release lock" button to clear a stuck lock. The lock also auto-expires after 30 minutes.

= Does the plugin restore my live site's error log when I restore a backup? =

No — and that is on purpose. The log table (`wp_wpbc_sync_log`) is excluded from backup dumps, so when you restore an older backup the error history on the live site is preserved rather than rolled back. Any problem that was logged before the restore is still there afterwards.

= Does Kuvarssoft Backup & Restore work on PHP 8.0 / 8.1 / 8.2? =

Yes. The plugin is tested on PHP 7.4 through 8.3.

== Screenshots ==

1. Dashboard — at-a-glance view of the latest backup, disk usage and lock state.
2. Backup & Restore — take a new backup or restore from your existing library.
3. Restore Report — printable HTML report generated after each restore.
4. Notifications — SMTP setup plus failure-alert preferences.
5. Settings — backup lock status, restore reports cleanup, and PHP limit helper.

== Disclaimer / Limitation of Liability ==

Kuvarssoft Backup & Restore is provided **"AS IS"**, without warranty of any kind, express or implied. Kuvarssoft Technology accepts **no liability** for any direct, indirect, incidental, consequential, or punitive damages arising out of the use of — or inability to use — this software. This includes, but is not limited to, data loss, site downtime, corrupted backups, failed restores, or any other operational issues that may occur on your WordPress installation.

By installing and using this plugin you agree that:

1. You alone are responsible for verifying the integrity of every backup before relying on it for recovery.
2. You alone are responsible for testing every restore in a non-production environment before performing it on a live site.
3. Kuvarssoft Technology does not guarantee compatibility with every WordPress version, hosting environment, theme, or third-party plugin combination.
4. If you encounter a bug, please report it through the support forum. Bug reports may be incorporated into a future release at the author's sole discretion. There is no service-level agreement on response or resolution times for the Free edition.

This software is licensed under the GNU General Public License v2 or later. Sections 11 ("NO WARRANTY") and 12 ("LIMITATION OF LIABILITY") of the GPL take legal precedence over this human-readable summary.

== Changelog ==

= 1.0.0 =
* Initial release.
