{"id":308784,"date":"2026-06-01T07:10:47","date_gmt":"2026-06-01T07:10:47","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/wxd-backup-lite\/"},"modified":"2026-06-01T18:42:36","modified_gmt":"2026-06-01T18:42:36","slug":"wxd-backup-lite","status":"publish","type":"plugin","link":"https:\/\/zh-sg.wordpress.org\/plugins\/wxd-backup-lite\/","author":23490248,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.2","stable_tag":"1.0.2","tested":"7.0","requires":"6.0","requires_php":"7.4","requires_plugins":null,"header_name":"WXD Backup Lite","header_author":"Webxdevelopers","header_description":"Production-ready local WordPress backup plugin with scheduled backups, restore tools, migration support, and recovery safeguards.","assets_banners_color":"4a3f4a","last_updated":"2026-06-01 18:42:36","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/www.webxdevelopers.com\/products\/wxd-backup-lite","header_author_uri":"https:\/\/www.webxdevelopers.com","rating":0,"author_block_rating":0,"active_installs":0,"downloads":45,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.1":{"tag":"1.0.1","author":"wxdlabs","date":"2026-06-01 07:10:12"},"1.0.2":{"tag":"1.0.2","author":"wxdlabs","date":"2026-06-01 18:42:36"}},"upgrade_notice":{"1.0.2":"<p>Minor fixes: the backup lock icon now renders correctly on first load, and several admin links now point to valid URLs.<\/p>","1.0.1":"<p>Reliability and UX hardening. Restore is more resilient on shared hosts; activity log no longer surfaces stale jobs as failures; progress feedback during long imports is more granular. Recommended for all 1.0.0 users.<\/p>","1.0.0":"<p>Initial public release. Please take a test backup on a staging copy before running a restore or migration on a production site.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3556939,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3556939,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3557158,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3557158,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.1","1.0.2"],"block_files":[],"assets_screenshots":[],"screenshots":[]},"plugin_section":[],"plugin_tags":[151,10718,4155,152,4685],"plugin_category":[59],"plugin_contributors":[265283],"plugin_business_model":[],"class_list":["post-308784","plugin","type-plugin","status-publish","hentry","plugin_tags-backup","plugin_tags-database-backup","plugin_tags-migration","plugin_tags-restore","plugin_tags-scheduler","plugin_category-utilities-and-tools","plugin_contributors-wxdlabs","plugin_committers-wxdlabs"],"banners":{"banner":"https:\/\/ps.w.org\/wxd-backup-lite\/assets\/banner-772x250.png?rev=3557158","banner_2x":"https:\/\/ps.w.org\/wxd-backup-lite\/assets\/banner-1544x500.png?rev=3557158","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/wxd-backup-lite\/assets\/icon-128x128.png?rev=3556939","icon_2x":"https:\/\/ps.w.org\/wxd-backup-lite\/assets\/icon-256x256.png?rev=3556939","generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p>Most WordPress backup tools either feel too fragile when you actually need them, or too bloated with upsells and clutter. <strong>WXD Backup Lite<\/strong> is built around a narrower goal: reliable backups, safer restores, and cleaner migrations for real-world WordPress sites.<\/p>\n\n<p>The focus is on <strong>recovery confidence<\/strong> and predictable workflows \u2014 not features for their own sake.<\/p>\n\n<p><strong>Full-site backups. Guided restores. Clean migrations.<\/strong><\/p>\n\n<p>WXD Backup Lite can create full-site or selective backups, schedule recurring jobs, enforce retention rules, lock important backups from deletion, and guide restores through a structured flow \u2014 including an automatic restore point created before every recovery attempt.<\/p>\n\n<p><strong>WooCommerce-friendly:<\/strong> Because WooCommerce stores everything in the WordPress database and filesystem, full-site backups automatically capture orders, products, customers, and store configuration. No extra setup required.<\/p>\n\n<p><strong>What's included:<\/strong><\/p>\n\n<ul>\n<li>Full-site backup \u2014 database, plugins, themes, uploads, MU-plugins, and core files<\/li>\n<li>Selective backup scope for targeted jobs<\/li>\n<li>Portable .zip backup archives<\/li>\n<li>Daily, weekly, or manual backup scheduling<\/li>\n<li>Configurable retention with automatic cleanup of the oldest backups<\/li>\n<li>Backup locking to protect important archives from auto-deletion<\/li>\n<li>Guided one-click restore with scope selection, confirmation, and real-time progress<\/li>\n<li>Automatic restore point created before every restore<\/li>\n<li>Real-time restore event log and progress tracking<\/li>\n<li>Post-restore validation flow<\/li>\n<li>Site migration workflow with URL rewriting<\/li>\n<li>wp-config.php normalization after migration<\/li>\n<li>Import from an uploaded backup archive<\/li>\n<li>Dashboard with backup stats, storage forecast, and server health check<\/li>\n<li>Activity log with export support<\/li>\n<li>Concurrent restore lock and restore-safety protections<\/li>\n<li>Nonce and capability protection on all AJAX actions<\/li>\n<\/ul>\n\n<p><strong>Note:<\/strong> This plugin does not support WordPress Multisite. It is designed for single-site installs only.<\/p>\n\n<p><strong>Privacy:<\/strong> No data leaves your server. WXD Backup Lite makes no external API calls, does not phone home, and requires no account or license key. Backup archives are stored locally in the <code>wsbl-backups<\/code> subfolder of your WordPress uploads directory.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin folder to <code>\/wp-content\/plugins\/<\/code> or install directly from the WordPress plugin directory.<\/li>\n<li>Activate the plugin through the WordPress admin.<\/li>\n<li>Go to <strong>WXD Backup<\/strong> in the WordPress admin sidebar.<\/li>\n<li>Create your first backup, or configure a schedule and retention policy.<\/li>\n<\/ol>\n\n<p>No account, no API key, no external service required.<\/p>\n\n<!--section=faq-->\n<dl>\n<dt id=\"where%20are%20backups%20stored%3F\"><h3>Where are backups stored?<\/h3><\/dt>\n<dd><p>Locally on your server in a protected <code>wsbl-backups<\/code> subfolder inside your WordPress uploads directory. The exact path depends on your <code>wp-content\/uploads<\/code> configuration. Remote storage destinations (S3, Backblaze) are planned for the Pro tier.<\/p><\/dd>\n<dt id=\"what%20does%20each%20backup%20contain%3F\"><h3>What does each backup contain?<\/h3><\/dt>\n<dd><p>Each archive contains a SQL database dump, a JSON manifest file, key root config files when present, and the main WordPress content directories (plugins, themes, uploads, and optionally core files).<\/p><\/dd>\n<dt id=\"does%20this%20plugin%20support%20restore%3F\"><h3>Does this plugin support restore?<\/h3><\/dt>\n<dd><p>Yes. You can restore a full backup or selectively restore supported backup components from the admin area. Every restore creates an automatic restore point first, so you can roll back immediately if something goes wrong.<\/p><\/dd>\n<dt id=\"does%20this%20plugin%20support%20migration%3F\"><h3>Does this plugin support migration?<\/h3><\/dt>\n<dd><p>Yes. You can upload an archive, import it into local storage, and restore it. The migration workflow handles URL rewriting and wp-config.php normalization so the site comes up cleanly on the new host.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20woocommerce%3F\"><h3>Does it work with WooCommerce?<\/h3><\/dt>\n<dd><p>Yes. Full-site backups capture WooCommerce orders, products, customers, and store configuration automatically \u2014 no separate plugin or configuration needed.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20wordpress%20multisite%3F\"><h3>Does it work with WordPress Multisite?<\/h3><\/dt>\n<dd><p>No. This version does not support Multisite. Activating on a Multisite network will show an admin notice and the plugin will remain inactive. Multisite support is on the roadmap for a future release.<\/p><\/dd>\n<dt id=\"what%20happens%20if%20a%20restore%20fails%20halfway%3F\"><h3>What happens if a restore fails halfway?<\/h3><\/dt>\n<dd><p>Every restore creates an automatic restore point first, and concurrent restores are blocked. If something fails mid-restore, you can immediately roll back to the pre-restore state.<\/p><\/dd>\n<dt id=\"does%20it%20require%20any%20special%20php%20extension%3F\"><h3>Does it require any special PHP extension?<\/h3><\/dt>\n<dd><p>Yes. The PHP <code>ZipArchive<\/code> extension must be enabled on your server. The plugin's health check will flag this if it is missing.<\/p><\/dd>\n<dt id=\"does%20this%20plugin%20send%20data%20to%20external%20services%3F\"><h3>Does this plugin send data to external services?<\/h3><\/dt>\n<dd><p>No. WXD Backup Lite operates entirely on your server and does not connect to any external service.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.2<\/h4>\n\n<ul>\n<li>Fixed: the backup lock\/unlock icon was blank on the initial Backups table render and only appeared after the button was clicked. The SVG icon now renders correctly on first paint.<\/li>\n<li>Fixed: corrected several admin-area links (Upgrade to Pro, Docs, Support, More Products) that pointed to non-existent URLs.<\/li>\n<\/ul>\n\n<h4>1.0.1<\/h4>\n\n<ul>\n<li>Restore reliability: post-commit hardening (.htaccess + wp-config) now runs in the same request that commits files, so cPanel\/LiteSpeed handler directives baked into a backup .htaccess can no longer 500 the site mid-restore.<\/li>\n<li>Restore reliability: stale source-site jobs purged from the imported activity log; the completed restore is recorded as its own activity entry.<\/li>\n<li>Restore reliability: iThemes Security <code>itsec-*<\/code> options purged on restore, preventing Force-SSL redirect loops on the destination.<\/li>\n<li>Stop restore: clicking Stop early no longer leaves the modal hanging; the rollback now drives incrementally via the JS poll loop so the event log streams transitions instead of going silent.<\/li>\n<li>Stop restore: progress bar no longer snaps from 100% back to 0% after a successful rollback.<\/li>\n<li>Stop restore: starting a new restore from a wizard that still shows a previous \"Stopped\" terminal state now resets cleanly.<\/li>\n<li>Stop restore: event log no longer leaks a stale \"Importing general database tables\" entry below the \"Stop requested by user\" line.<\/li>\n<li>Rollback throughput: DB import bumped to 5,000 statements per tick during rollback, turning multi-hour rollbacks into minutes.<\/li>\n<li>Migrate wizard: removed the URL-mapping step (auto-detected from archive) and the PRO upsell placeholder.<\/li>\n<li>Migrate wizard: Stop Restore button moved into the wizard footer and now hides on terminal completion.<\/li>\n<li>Migrate wizard: progress bar now fills determinately during the restore phase.<\/li>\n<li>Migrate wizard: event log now matches the standalone Restore wizard density.<\/li>\n<li>Activity log: drag-and-drop file selection now enables the wizard's Next button (parity with Browse).<\/li>\n<li>Activity log: per-tick byte\/percent sub-progress shown during long DB import buckets.<\/li>\n<li>Activity log: stopped+rolled-back restores now render with an amber \"Stopped \u2014 rolled back\" badge.<\/li>\n<li>Activity log: event log populates from both the standalone restore wizard and the migrate wizard's poll loop.<\/li>\n<li>Activity log: Retry Job for restore-type jobs now opens the regular Restore wizard instead of running silently in the background.<\/li>\n<li>Critical: fixed a rollback-empties-plugin-dir bug where a failed copy() during file-rollback would call cleanup_path() on the destination without a preserved fallback, deleting wp-content\/plugins entirely.<\/li>\n<li>Localhost compatibility: optional shim for the WpOrg\\Requests\\IdnaEncoder autoloader works around a known Elementor + localhost subdirectory crash.<\/li>\n<li>Code quality: WordPress.org Plugin Check passes with zero errors and zero warnings.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release of WXD Backup Lite.<\/li>\n<li>Full-site and component-level WordPress backups with SQL database export.<\/li>\n<li>Restore workflow with automatic safety restore point and rollback on failure.<\/li>\n<li>Import and migration workflow with URL mapping and environment-aware hardening.<\/li>\n<li>Scheduled backups, retention policy, background job tracking, and archive verification.<\/li>\n<\/ul>","raw_excerpt":"Reliable WordPress backup, restore, and migration workflows for agencies, freelancers, and serious site owners.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/zh-sg.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/308784","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/zh-sg.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/zh-sg.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/zh-sg.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=308784"}],"author":[{"embeddable":true,"href":"https:\/\/zh-sg.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/wxdlabs"}],"wp:attachment":[{"href":"https:\/\/zh-sg.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=308784"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/zh-sg.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=308784"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/zh-sg.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=308784"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/zh-sg.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=308784"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/zh-sg.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=308784"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/zh-sg.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=308784"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}