{"id":38134,"date":"2015-08-10T22:38:13","date_gmt":"2015-08-10T22:38:13","guid":{"rendered":"https:\/\/wordpress.org\/plugins-wp\/hackrepair-plugin-archiver\/"},"modified":"2025-09-11T16:27:34","modified_gmt":"2025-09-11T16:27:34","slug":"hackrepair-plugin-archiver","status":"publish","type":"plugin","link":"https:\/\/cor.wordpress.org\/plugins\/hackrepair-plugin-archiver\/","author":2686334,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","version":"3.1.1","stable_tag":"3.1.1","tested":"6.8.5","requires":"6.6","requires_php":"7.4","requires_plugins":null,"header_name":"The Hack Repair Guy's Plugin Archiver","header_author":"Jim Walker, The Hack Repair Guy","header_description":"","assets_banners_color":"e1d2cc","last_updated":"2025-09-11 16:27:34","external_support_url":"","external_repository_url":"","donate_link":"https:\/\/hackrepair.com\/about\/hackrepair-plugin-archiver","header_plugin_uri":"http:\/\/wordpress.org\/extend\/plugins\/hackrepair-plugin-archiver\/","header_author_uri":"http:\/\/hackrepair.com\/hackrepair-plugin-archiver\/","rating":5,"author_block_rating":0,"active_installs":300,"downloads":8500,"num_ratings":11,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"0.1.10":{"tag":"0.1.10","author":"deployer","date":"2015-08-11 03:10:32"},"0.1.11":{"tag":"0.1.11","author":"deployer","date":"2015-08-11 03:19:24"},"0.1.12":{"tag":"0.1.12","author":"deployer","date":"2015-08-11 03:59:36"},"0.1.13":{"tag":"0.1.13","author":"deployer","date":"2015-08-11 04:15:40"},"0.1.2":{"tag":"0.1.2","author":"deployer","date":"2015-08-10 23:51:00"},"0.1.3":{"tag":"0.1.3","author":"deployer","date":"2015-08-11 00:25:51"},"0.1.4":{"tag":"0.1.4","author":"deployer","date":"2015-08-11 01:20:22"},"0.1.5":{"tag":"0.1.5","author":"deployer","date":"2015-08-11 01:38:10"},"0.1.6":{"tag":"0.1.6","author":"deployer","date":"2015-08-11 02:06:21"},"0.1.7":{"tag":"0.1.7","author":"deployer","date":"2015-08-11 02:30:59"},"0.1.8":{"tag":"0.1.8","author":"deployer","date":"2015-08-11 02:50:08"},"0.1.9":{"tag":"0.1.9","author":"deployer","date":"2015-08-11 03:03:48"},"0.2.0":{"tag":"0.2.0","author":"deployer","date":"2015-08-11 05:46:46"},"0.2.1":{"tag":"0.2.1","author":"deployer","date":"2015-08-11 05:56:06"},"0.2.2":{"tag":"0.2.2","author":"deployer","date":"2015-08-11 06:04:13"},"0.2.3":{"tag":"0.2.3","author":"deployer","date":"2015-08-11 06:07:37"},"0.2.4":{"tag":"0.2.4","author":"deployer","date":"2015-08-11 06:10:21"},"1.0.0":{"tag":"1.0.0","author":"deployer","date":"2015-08-11 22:44:39"},"1.0.1":{"tag":"1.0.1","author":"deployer","date":"2015-08-11 23:18:54"},"1.0.2":{"tag":"1.0.2","author":"deployer","date":"2015-08-11 23:22:38"},"1.0.3":{"tag":"1.0.3","author":"deployer","date":"2015-08-11 23:24:31"},"1.0.5":{"tag":"1.0.5","author":"deployer","date":"2015-08-14 00:00:43"},"1.0.6":{"tag":"1.0.6","author":"deployer","date":"2015-08-14 00:08:25"},"1.0.7":{"tag":"1.0.7","author":"deployer","date":"2015-08-19 22:24:27"},"1.0.8":{"tag":"1.0.8","author":"deployer","date":"2015-08-24 00:59:55"},"1.0.9":{"tag":"1.0.9","author":"deployer","date":"2015-09-09 21:48:22"},"2.0.0":{"tag":"2.0.0","author":"deployer","date":"2015-12-09 07:55:16"},"2.0.1":{"tag":"2.0.1","author":"deployer","date":"2015-12-09 07:58:27"},"2.0.2":{"tag":"2.0.2","author":"deployer","date":"2017-08-03 19:45:56"},"2.0.3":{"tag":"2.0.3","author":"deployer","date":"2017-08-30 18:28:41"},"2.0.4":{"tag":"2.0.4","author":"tvcnet","date":"2020-08-20 05:52:52"},"3.1.1":{"tag":"3.1.1","author":"tvcnet","date":"2025-09-11 16:27:34"}},"upgrade_notice":[],"ratings":{"1":0,"2":0,"3":0,"4":0,"5":11},"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":1217684,"resolution":"128x128","location":"assets","locale":""},"icon-256x256.png":{"filename":"icon-256x256.png","revision":1217684,"resolution":"256x256","location":"assets","locale":""}},"assets_banners":{"banner-244x245.png":{"filename":"banner-244x245.png","revision":1217684,"resolution":"244x245","location":"assets","locale":""},"banner-772x250.png":{"filename":"banner-772x250.png","revision":1217824,"resolution":"772x250","location":"assets","locale":""}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["0.1.10","0.1.11","0.1.12","0.1.13","0.1.2","0.1.3","0.1.4","0.1.5","0.1.6","0.1.7","0.1.8","0.1.9","0.2.0","0.2.1","0.2.2","0.2.3","0.2.4","1.0.0","1.0.1","1.0.2","1.0.3","1.0.5","1.0.6","1.0.7","1.0.8","1.0.9","2.0.0","2.0.1","2.0.2","2.0.3","2.0.4","3.1.1"],"block_files":[],"assets_screenshots":[],"screenshots":{"1":"Archive action on the Plugins screen","2":"Archived Plugins list with bulk actions","3":"Settings screen with archive directory controls"},"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[83,151,153,247,600],"plugin_category":[54,59],"plugin_contributors":[138585,87818],"plugin_business_model":[],"class_list":["post-38134","plugin","type-plugin","status-publish","hentry","plugin_tags-admin","plugin_tags-backup","plugin_tags-database","plugin_tags-performance","plugin_tags-security","plugin_category-security-and-spam-protection","plugin_category-utilities-and-tools","plugin_contributors-hackrepair","plugin_contributors-tvcnet","plugin_committers-tvcnet"],"banners":{"banner":"https:\/\/ps.w.org\/hackrepair-plugin-archiver\/assets\/banner-772x250.png?rev=1217824","banner_2x":false,"banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/hackrepair-plugin-archiver\/assets\/icon-128x128.png?rev=1217684","icon_2x":"https:\/\/ps.w.org\/hackrepair-plugin-archiver\/assets\/icon-256x256.png?rev=1217684","generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p>Archive any plugin with one click. Archived plugins are hidden from your Plugins list and safely moved out of wp-content\/plugins into a dedicated archive directory for easy restore later. Ideal for preventing accidental re-activation, testing different plugin sets, and keeping occasional-use tools out of sight until needed.<\/p>\n\n<p>[youtube https:\/\/www.youtube.com\/watch?v=i_Gn22bWLVs]<\/p>\n\n<h4>Features<\/h4>\n\n<ul>\n<li>One\u2011click Archive link on the Plugins screen<\/li>\n<li>Bulk Archive \/ Unarchive \/ Delete actions<\/li>\n<li>Optional auto\u2011deactivate before archiving (recommended)<\/li>\n<li>Manage multiple archive directories and switch between them<\/li>\n<li>\u201cUnarchive All\u201d button on the Archived Plugins tab<\/li>\n<li>Non\u2011destructive: archiving does not remove a plugin\u2019s settings\/data<\/li>\n<li>Uses the built\u2011in WordPress Filesystem API with capability and nonce checks<\/li>\n<\/ul>\n\n<h4>How it works<\/h4>\n\n<ul>\n<li>When you Archive a plugin, its folder is moved from wp-content\/plugins to your chosen archive directory (e.g., wp-content\/plugins-archive-xxxxxx).<\/li>\n<li>Archived plugins are removed from the Plugins list, so they can\u2019t be accidentally activated.<\/li>\n<li>You may switch the active archive directory or create new ones in Settings \u2192 Plugin Archiver.<\/li>\n<\/ul>\n\n<h4>Common use cases<\/h4>\n\n<ul>\n<li>Maintain a \u201ctoolbox\u201d of favorite utilities you don\u2019t need to see every day<\/li>\n<li>Quarantine buggy or compromised plugins to avoid accidental activation<\/li>\n<li>Test different plugin stacks by pulling sets into and out of the archive<\/li>\n<li>Share management with others while reducing \u201coops, I clicked Activate\u201d incidents<\/li>\n<\/ul>\n\n<!--section=installation-->\n<h4>Quick install from WordPress<\/h4>\n\n<ol>\n<li>Go to Plugins \u2192 Add New.<\/li>\n<li>Search for \u201cThe Hack Repair Guy\u2019s Plugin Archiver\u201d.<\/li>\n<li>Install and Activate.<\/li>\n<\/ol>\n\n<h4>Manual installation<\/h4>\n\n<ol>\n<li>Upload the hackrepair-plugin-archiver folder to \/wp-content\/plugins\/<\/li>\n<li>Activate the plugin through the Plugins menu<\/li>\n<\/ol>\n\n<h4>Quick start<\/h4>\n\n<ol>\n<li>Go to Plugins \u2192 Installed Plugins and click \u201cArchive\u201d under any plugin you want to set aside.<\/li>\n<li>Manage archived plugins at Plugins \u2192 Archived Plugins, or via Settings \u2192 Plugin Archiver \u2192 Archived Plugins.<\/li>\n<li>Use \u201cUnarchive\u201d to restore a plugin to wp-content\/plugins. Use \u201cDelete\u201d to remove it from the archive.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id='why%20was%20this%20plugin%20created%3F'><h3>Why was this plugin created?<\/h3><\/dt>\n<dd><p>In my day\u2011to\u2011day work cleaning malware from hacked websites, I often saw sites break after a plugin update. Deactivating the problem plugin wasn\u2019t enough\u2014someone would \u201cActivate\u201d it later and take the site down again. Archiving removes the temptation entirely.<\/p><\/dd>\n<dt id='if%20i%20deactivate%20or%20remove%20this%20plugin%2C%20what%20happens%20to%20archived%20plugins%3F'><h3>If I deactivate or remove this plugin, what happens to archived plugins?<\/h3><\/dt>\n<dd><p>Nothing changes. Archived plugins remain safely in your archive directories until you unarchive them or move them back manually.<\/p><\/dd>\n<dt id='are%20you%20planning%20an%20%E2%80%9Cunarchive%20all%20on%20plugin%20deletion%E2%80%9D%20option%3F'><h3>Are you planning an \u201cunarchive all on plugin deletion\u201d option?<\/h3><\/dt>\n<dd><p>No. The Plugin Archiver supports multiple archive directories; since duplicates may exist, it wouldn\u2019t know which version to unarchive. However, there is an \u201cUnarchive All\u201d button on the Archived Plugins tab while the plugin is active.<\/p><\/dd>\n<dt id='why%20not%20just%20delete%20plugins%3F'><h3>Why not just delete plugins?<\/h3><\/dt>\n<dd><p>Some plugins remove their settings\/data on deletion. Archiving keeps everything intact so you can restore later without reconfiguration.<\/p><\/dd>\n<dt id='where%20are%20archived%20plugins%20stored%3F'><h3>Where are archived plugins stored?<\/h3><\/dt>\n<dd><p>By default in wp-content\/plugins-[name] (e.g., plugins-archive-xxxxxx). You can create and switch archives in Settings \u2192 Plugin Archiver.<\/p><\/dd>\n<dt id='does%20archiving%20delete%20plugin%20data%3F'><h3>Does archiving delete plugin data?<\/h3><\/dt>\n<dd><p>No. Archiving only moves plugin files.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>3.1.1<\/h4>\n\n<ul>\n<li>Removed all debug logging statements to reduce log clutter in production environments<\/li>\n<li>Debug logs were only active when WP_DEBUG is enabled but were unnecessary for production use<\/li>\n<\/ul>\n\n<h4>3.1.0<\/h4>\n\n<ul>\n<li>Added PHP 8.3 compatibility by fixing strpos() calls with potential null\/false values from realpath()<\/li>\n<li>Improved error handling in get_archived_plugins, bulk_remove, and bulk_restore functions<\/li>\n<li>Removed debug logging statements to reduce log clutter in production environments<\/li>\n<li>No breaking changes; maintains backward compatibility<\/li>\n<\/ul>\n\n<h4>3.0.2<\/h4>\n\n<ul>\n<li>Security hardening: switched to wp_safe_redirect() and added exit after redirects; fortified path traversal defenses and CSRF protection<\/li>\n<li>Added nonce to \"Unarchive All\" action<\/li>\n<li>Additional path traversal checks and stricter input validation<\/li>\n<li>Output escaping improvements in admin list table<\/li>\n<li>Readme updates; no breaking changes<\/li>\n<\/ul>\n\n<h4>3.0.1<\/h4>\n\n<ul>\n<li>Documentation polish and typo fixes; no functional changes<\/li>\n<\/ul>\n\n<h4>3.0<\/h4>\n\n<ul>\n<li>Major version update: Hardened against path traversal and CSRF vulnerabilities from prior versions (up to 2.0.4) through enhanced validation, nonces, and safer filesystem operations<\/li>\n<li>Improved compatibility with WordPress 6.8<\/li>\n<li>Added support for custom archive directory management<\/li>\n<li>Enhanced user interface for better user experience<\/li>\n<li>Fixed minor bugs and improved overall performance<\/li>\n<\/ul>\n\n<h4>2.0.3<\/h4>\n\n<ul>\n<li>4.8.1 Compatible<\/li>\n<\/ul>\n\n<h4>2.0.1<\/h4>\n\n<ul>\n<li>Fixed relative includes error on WordPress 4.4<\/li>\n<\/ul>\n\n<h4>2.0.0<\/h4>\n\n<ul>\n<li>Randomized default plugin archive directory<\/li>\n<\/ul>\n\n<h4>1.0.9<\/h4>\n\n<ul>\n<li>Fixed WP Rocket incompatibility.<\/li>\n<\/ul>\n\n<h4>1.0.8<\/h4>\n\n<ul>\n<li>Fixed iThemes Sync incompatibility.<\/li>\n<\/ul>\n\n<h4>1.0.7<\/h4>\n\n<ul>\n<li>Updated video in description.<\/li>\n<\/ul>\n\n<h4>1.0.5<\/h4>\n\n<ul>\n<li>Updated description.<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>The Hack Repair Guy\u2019s Plugin Archiver is born!<\/li>\n<\/ul>","raw_excerpt":"Disable Plugins Without Deleting \u2014 Archive and Restore in One Click","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/cor.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/38134","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/cor.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/cor.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/cor.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=38134"}],"author":[{"embeddable":true,"href":"https:\/\/cor.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/tvcnet"}],"wp:attachment":[{"href":"https:\/\/cor.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=38134"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/cor.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=38134"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/cor.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=38134"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/cor.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=38134"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/cor.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=38134"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/cor.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=38134"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}