{"id":295018,"date":"2026-04-28T21:28:39","date_gmt":"2026-04-28T21:28:39","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/haznox-updraft-cleaner\/"},"modified":"2026-04-28T21:28:40","modified_gmt":"2026-04-28T21:28:40","slug":"haznox-cleaner-for-updraftplus","status":"publish","type":"plugin","link":"https:\/\/ca.wordpress.org\/plugins\/haznox-cleaner-for-updraftplus\/","author":23472937,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","version":"2.2.0","stable_tag":"2.2.0","tested":"6.9.4","requires":"5.0","requires_php":"7.2","requires_plugins":null,"header_name":"Haznox Cleaner for UpdraftPlus","header_author":"Haznox Tech","header_description":"Automatically deletes local UpdraftPlus backup files after confirmed remote upload to Google Drive or any other configured remote storage. Includes an admin activity log and manual clean tool.","assets_banners_color":"","last_updated":"2026-04-28 21:28:40","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"https:\/\/haznox.com\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":60,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"2.2.0":{"tag":"2.2.0","author":"haznoxtech","date":"2026-04-28 21:28:40"}},"upgrade_notice":{"2.2.0":"<p>Trademark compliance rename, WP_Filesystem migration, and Plugin Check error fixes. Required update for all users.<\/p>","2.1.0":"<p>Full WordPress.org compliance update. Adds translation support, proper uninstall cleanup, and improved security.<\/p>","2.0.0":"<p>Major feature update adding admin dashboard, activity log, and improved safety checks.<\/p>"},"ratings":[],"assets_icons":[],"assets_banners":[],"assets_blueprints":{},"all_blocks":[],"tagged_versions":["2.2.0"],"block_files":[],"assets_screenshots":[],"screenshots":{"1":"The Status panel showing UpdraftPlus detection, remote storage status, backup directory, and next scheduled clean time.","2":"The Activity Log showing detailed timestamped entries for every backup and cleanup event.","3":"The local backup file browser listing all current files in the UpdraftPlus backup directory."},"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[569,151,3786,17785,151816],"plugin_category":[59],"plugin_contributors":[261323],"plugin_business_model":[],"class_list":["post-295018","plugin","type-plugin","status-publish","hentry","plugin_tags-automation","plugin_tags-backup","plugin_tags-cleanup","plugin_tags-google-drive","plugin_tags-updraftplus","plugin_category-utilities-and-tools","plugin_contributors-haznoxtech","plugin_committers-haznoxtech"],"banners":[],"icons":{"svg":false,"icon":"https:\/\/s.w.org\/plugins\/geopattern-icon\/haznox-cleaner-for-updraftplus.svg","icon_2x":false,"generated":true},"screenshots":[],"raw_content":"<!--section=description-->\n<p><strong>Haznox Cleaner for UpdraftPlus<\/strong> is a lightweight WordPress plugin that works alongside <a href=\"https:\/\/updraftplus.com\/\">UpdraftPlus<\/a> to automatically remove local backup files from your server once they have been successfully uploaded to a remote storage destination such as Google Drive, Amazon S3, Dropbox, OneDrive, or any other service supported by UpdraftPlus.<\/p>\n\n<p>This keeps your server disk usage low without any manual effort \u2014 ideal for agencies and developers managing multiple WordPress sites.<\/p>\n\n<p><strong>How it works:<\/strong><\/p>\n\n<ol>\n<li>UpdraftPlus runs its regular backup and uploads files to your configured remote storage.<\/li>\n<li>Once the backup job completes, Haznox Cleaner for UpdraftPlus schedules a cleanup task to run 10 minutes later via WP-Cron.<\/li>\n<li>Before deleting anything, the plugin confirms that remote storage is configured and the backup exists in UpdraftPlus history.<\/li>\n<li>Only then are the local backup files permanently removed from your server.<\/li>\n<\/ol>\n\n<p><strong>Key features:<\/strong><\/p>\n\n<ul>\n<li>Hooks into both the modern (<code>updraftplus_backup_complete<\/code>) and legacy (<code>updraft_backup_complete<\/code>) UpdraftPlus actions \u2014 compatible with all UpdraftPlus versions.<\/li>\n<li>Four-method backup directory resolver that works with default, custom, and token-based UpdraftPlus path configurations.<\/li>\n<li>Activity log inside WordPress admin \u2014 see exactly what was deleted, when, and why anything was skipped.<\/li>\n<li>Manual Clean button to run an on-demand cleanup from the dashboard.<\/li>\n<li>All operations are logged with timestamps.<\/li>\n<li>Safety checks prevent deletion if remote storage is not configured or the backup is not found in UpdraftPlus history.<\/li>\n<li>System files (<code>.htaccess<\/code>, <code>index.html<\/code>, <code>index.php<\/code>) are never touched.<\/li>\n<li>Clean uninstall \u2014 all plugin data is removed from the database when you delete the plugin.<\/li>\n<\/ul>\n\n<p><strong>Supports all UpdraftPlus remote storage destinations:<\/strong><\/p>\n\n<ul>\n<li>Google Drive<\/li>\n<li>Amazon S3 (and S3-compatible)<\/li>\n<li>Dropbox<\/li>\n<li>Microsoft OneDrive<\/li>\n<li>Backblaze B2<\/li>\n<li>FTP \/ SFTP<\/li>\n<li>Any other service supported by UpdraftPlus<\/li>\n<\/ul>\n\n<!--section=installation-->\n<p><strong>From the WordPress admin:<\/strong><\/p>\n\n<ol>\n<li>Go to <strong>Plugins &gt; Add New<\/strong>.<\/li>\n<li>Click <strong>Upload Plugin<\/strong> and select the <code>haznox-cleaner-for-updraftplus.zip<\/code> file.<\/li>\n<li>Click <strong>Install Now<\/strong>, then <strong>Activate Plugin<\/strong>.<\/li>\n<\/ol>\n\n<p><strong>Manual installation:<\/strong><\/p>\n\n<ol>\n<li>Unzip <code>haznox-cleaner-for-updraftplus.zip<\/code>.<\/li>\n<li>Upload the <code>haznox-cleaner-for-updraftplus<\/code> folder to <code>\/wp-content\/plugins\/<\/code>.<\/li>\n<li>Activate the plugin from <strong>Plugins &gt; Installed Plugins<\/strong> in WordPress admin.<\/li>\n<\/ol>\n\n<p><strong>After activation:<\/strong><\/p>\n\n<ul>\n<li>No configuration is required.<\/li>\n<li>The plugin reads your existing UpdraftPlus settings automatically.<\/li>\n<li>Go to <strong>Settings &gt; Updraft Cleaner<\/strong> to view the status panel and activity log.<\/li>\n<\/ul>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20this%20plugin%20work%20without%20updraftplus%3F\"><h3>Does this plugin work without UpdraftPlus?<\/h3><\/dt>\n<dd><p>No. This plugin is an add-on for UpdraftPlus and requires it to be installed and active.<\/p><\/dd>\n<dt id=\"which%20version%20of%20updraftplus%20is%20supported%3F\"><h3>Which version of UpdraftPlus is supported?<\/h3><\/dt>\n<dd><p>Both the free and premium versions of UpdraftPlus are supported. The plugin is compatible with all recent UpdraftPlus versions.<\/p><\/dd>\n<dt id=\"will%20my%20backups%20be%20deleted%20even%20if%20the%20upload%20to%20google%20drive%20failed%3F\"><h3>Will my backups be deleted even if the upload to Google Drive failed?<\/h3><\/dt>\n<dd><p>No. The plugin checks two things before deleting: (1) that a remote storage service is configured in UpdraftPlus, and (2) that the backup appears in UpdraftPlus backup history. If either check fails, no files are deleted and the reason is recorded in the activity log.<\/p><\/dd>\n<dt id=\"why%20does%20cleanup%20happen%2010%20minutes%20after%20the%20backup%3F\"><h3>Why does cleanup happen 10 minutes after the backup?<\/h3><\/dt>\n<dd><p>The delay ensures that UpdraftPlus has fully finished uploading all backup files to the remote destination before any local files are removed.<\/p><\/dd>\n<dt id=\"where%20can%20i%20see%20what%20was%20deleted%3F\"><h3>Where can I see what was deleted?<\/h3><\/dt>\n<dd><p>Go to <strong>Settings &gt; Updraft Cleaner<\/strong> in your WordPress admin. The activity log shows every backup detected, every file deleted, and every time a deletion was skipped with the reason.<\/p><\/dd>\n<dt id=\"what%20happens%20to%20the%20plugin%27s%20data%20when%20i%20delete%20it%3F\"><h3>What happens to the plugin's data when I delete it?<\/h3><\/dt>\n<dd><p>When you delete (uninstall) the plugin from WordPress admin, all stored options \u2014 including the activity log \u2014 are automatically removed from the database. No data is left behind.<\/p><\/dd>\n<dt id=\"is%20the%20plugin%20compatible%20with%20multisite%3F\"><h3>Is the plugin compatible with multisite?<\/h3><\/dt>\n<dd><p>The plugin is designed for single-site use. Multisite compatibility has not been tested.<\/p><\/dd>\n<dt id=\"does%20the%20plugin%20send%20any%20data%20externally%3F\"><h3>Does the plugin send any data externally?<\/h3><\/dt>\n<dd><p>No. The plugin does not make any external HTTP requests and does not transmit any data outside your server.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>2.2.0<\/h4>\n\n<ul>\n<li>Renamed plugin to \"Haznox Cleaner for UpdraftPlus\" and slug to <code>haznox-cleaner-for-updraftplus<\/code> to comply with WordPress.org trademark guidelines.<\/li>\n<li>Removed <code>load_plugin_textdomain()<\/code> \u2014 no longer needed for WordPress.org-hosted plugins since WordPress 4.6.<\/li>\n<li>Replaced <code>is_writable()<\/code> with <code>WP_Filesystem<\/code> API (<code>$wp_filesystem-&gt;is_writable()<\/code>, <code>-&gt;delete()<\/code>, <code>-&gt;exists()<\/code>) as required by WordPress.org plugin review standards.<\/li>\n<li>Fixed Plugin URI returning a 404 HTTP response.<\/li>\n<li>All file system operations now route exclusively through the WordPress <code>WP_Filesystem<\/code> layer.<\/li>\n<\/ul>\n\n<h4>2.1.0<\/h4>\n\n<ul>\n<li>Full WordPress.org coding standards compliance.<\/li>\n<li>Added proper internationalisation (i18n) \u2014 all strings are now translation-ready.<\/li>\n<li>Replaced <code>@unlink()<\/code> with <code>wp_delete_file()<\/code> (WordPress-recommended file deletion).<\/li>\n<li>Admin CSS now delivered via <code>wp_add_inline_style()<\/code> instead of inline attributes.<\/li>\n<li>Added <code>register_uninstall_hook()<\/code> \u2014 all plugin data is removed on uninstall.<\/li>\n<li>Added <code>uninstall.php<\/code> as a secondary uninstall safety net.<\/li>\n<li>Introduced singleton pattern to prevent duplicate instantiation.<\/li>\n<li>Nonce field names scoped to plugin slug to prevent conflicts.<\/li>\n<li>Redirect query parameters scoped to plugin slug.<\/li>\n<li>Text domain changed to match plugin slug: <code>haznox-cleaner-for-updraftplus<\/code>.<\/li>\n<li>Added <code>load_plugin_textdomain()<\/code> for translation support.<\/li>\n<li>Added <code>languages\/<\/code> directory placeholder.<\/li>\n<li>Fixed backup directory resolver to use four fallback methods.<\/li>\n<li>Resolved token paths (<code>%WP_CONTENT_DIR%<\/code>, etc.) from UpdraftPlus options.<\/li>\n<\/ul>\n\n<h4>2.0.0<\/h4>\n\n<ul>\n<li>Introduced admin dashboard with status panel and activity log.<\/li>\n<li>Added manual clean and clear log actions.<\/li>\n<li>Added four-method backup directory resolver.<\/li>\n<li>Added UpdraftPlus remote storage confirmation check.<\/li>\n<li>Added support for legacy <code>updraft_backup_complete<\/code> hook.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release.<\/li>\n<\/ul>","raw_excerpt":"Automatically deletes local UpdraftPlus backup files after confirmed remote upload to Google Drive or any other configured remote storage.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/ca.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/295018","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ca.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/ca.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/ca.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=295018"}],"author":[{"embeddable":true,"href":"https:\/\/ca.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/haznoxtech"}],"wp:attachment":[{"href":"https:\/\/ca.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=295018"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/ca.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=295018"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/ca.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=295018"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/ca.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=295018"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/ca.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=295018"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/ca.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=295018"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}