{"id":373632,"date":"2026-09-23T08:19:18","date_gmt":"2026-09-23T08:19:18","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/multisite-reset-cleanup\/"},"modified":"2026-09-23T08:31:20","modified_gmt":"2026-09-23T08:31:20","slug":"resetforge-for-multisite","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/resetforge-for-multisite\/","author":23535813,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.0","stable_tag":"1.0.0","tested":"7.1.2","requires":"6.0","requires_php":"8.1","requires_plugins":null,"header_name":"ResetForge for Multisite","header_author":"Elevoire","header_description":"A scope-aware, safety-first, developer-focused reset and cleanup platform built specifically for WordPress Multisite networks.","assets_banners_color":"0e1919","last_updated":"2026-09-23 08:31:20","external_support_url":"","external_repository_url":"","donate_link":"https:\/\/wise.com\/pay\/r\/RD1pa-Uv5NlRSXw","header_plugin_uri":"https:\/\/wordpress.org\/plugins\/resetforge-for-multisite","header_author_uri":"https:\/\/elevoire.com","rating":0,"author_block_rating":0,"active_installs":0,"downloads":34,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"elevoire","date":"2026-09-23 08:31:20","revision":3708844}},"upgrade_notice":{"1.0.0":"<ul>\n<li>Initial release of ResetForge for Multisite.<\/li>\n<\/ul>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3708844,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3708844,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3708844,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3708844,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0"],"block_files":[],"assets_screenshots":[],"screenshots":{"1":"Network Admin Dashboard showing site selector, profiles, and dry-run scan plan.","2":"Safety confirmation modal requiring typing confirmation phrase.","3":"Discovered table classification matrix with protection badges."}},"plugin_section":[],"plugin_tags":[3786,153,4932,441,4684],"plugin_category":[51,59],"plugin_contributors":[272881,269240],"plugin_business_model":[],"class_list":["post-373632","plugin","type-plugin","status-publish","hentry","plugin_tags-cleanup","plugin_tags-database","plugin_tags-developer-tools","plugin_tags-multisite","plugin_tags-reset","plugin_category-multisite","plugin_category-utilities-and-tools","plugin_contributors-elevoire","plugin_contributors-hassanraza","plugin_committers-elevoire"],"banners":{"banner":"https:\/\/ps.w.org\/resetforge-for-multisite\/assets\/banner-772x250.png?rev=3708844","banner_2x":"https:\/\/ps.w.org\/resetforge-for-multisite\/assets\/banner-1544x500.png?rev=3708844","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/resetforge-for-multisite\/assets\/icon-128x128.png?rev=3708844","icon_2x":"https:\/\/ps.w.org\/resetforge-for-multisite\/assets\/icon-256x256.png?rev=3708844","generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p>ResetForge for Multisite is engineered from the ground up for WordPress Multisite networks. Unlike traditional single-site reset plugins that execute broad <code>TRUNCATE wp_*<\/code> queries, this plugin enforces strict database prefix isolation, filesystem sandboxing, and resource classification to ensure that resetting a subsite never impacts other sites, shared users, or network configuration.<\/p>\n\n<h4>Key Features<\/h4>\n\n<ul>\n<li><strong>Strict Multisite Scope Isolation<\/strong>: Distinguishes network tables, site-specific tables, shared user tables, and third-party plugin tables.<\/li>\n<li><strong>Granular Reset Profiles<\/strong>:\n\n<ul>\n<li><em>Content Reset<\/em>: Safely removes posts, pages, terms, taxonomies, and comments while preserving media, options, and plugins.<\/li>\n<li><em>Content + Media Reset<\/em>: Cleans content and site-specific uploads directory while leaving root uploads untouched.<\/li>\n<li><em>Development Reset<\/em>: Cleans content, media, transients, and plugin site tables for iterative development.<\/li>\n<li><em>Factory Reset<\/em>: Reverts a subsite to a clean initial state while preserving core routing and bootstrap options.<\/li>\n<\/ul><\/li>\n<li><strong>Deterministic Reset Plans &amp; Dry-Run<\/strong>: Inspect exact discovered tables, row counts, and upload sizes prior to any destructive operation.<\/li>\n<li><strong>Safety Snapshots<\/strong>: Generates pre-operation database table dumps and JSON metadata manifests in protected storage.<\/li>\n<li><strong>Post-Reset Invariant Verification<\/strong>: Automatically verifies network integrity, user table invariance, and target cleanup post-execution.<\/li>\n<li><strong>Network Audit Log<\/strong>: Permanent network-level ledger of all reset operations, users, durations, and results.<\/li>\n<li><strong>WP-CLI Native Integration<\/strong>: Identical core engine exposed via <code>wp resetforge {sites|scan|reset|history}<\/code>.<\/li>\n<li><strong>Concurrency Locking<\/strong>: Prevents double-submissions, parallel execution conflicts, and race conditions.<\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Upload <code>resetforge-for-multisite<\/code> to the <code>\/wp-content\/plugins\/<\/code> directory, or install through Network Admin.<\/li>\n<li>Network Activate the plugin through the 'Plugins' menu in WordPress Network Admin.<\/li>\n<li>Access the toolkit under <strong>Network Admin &gt; ResetForge<\/strong>.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20resetting%20a%20subsite%20delete%20users%3F\"><h3>Does resetting a subsite delete users?<\/h3><\/dt>\n<dd><p>No. In WordPress Multisite, users reside in the global <code>wp_users<\/code> and <code>wp_usermeta<\/code> tables. Resetting a subsite only removes site-specific role assignments and leaves user accounts intact across the network.<\/p><\/dd>\n<dt id=\"can%20i%20reset%20the%20main%20site%3F\"><h3>Can I reset the Main Site?<\/h3><\/dt>\n<dd><p>Yes, but the Main Site (<code>blog_id = 1<\/code>) receives enhanced safeguards. Shared network options and subsite uploads folders (<code>\/uploads\/sites\/<\/code>) are strictly protected from deletion.<\/p><\/dd>\n<dt id=\"is%20wp-cli%20supported%3F\"><h3>Is WP-CLI supported?<\/h3><\/dt>\n<dd><p>Yes. You can run <code>wp resetforge scan &lt;site-id&gt;<\/code> and <code>wp resetforge reset &lt;site-id&gt;<\/code> using the exact same safety engine.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial production release of ResetForge for Multisite.<\/li>\n<\/ul>","raw_excerpt":"A scope-aware, safety-first, developer-focused reset and cleanup platform built specifically for WordPress Multisite networks.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/373632","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=373632"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/elevoire"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=373632"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=373632"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=373632"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=373632"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=373632"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=373632"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}