{"id":359928,"date":"2026-08-27T18:03:48","date_gmt":"2026-08-27T18:03:48","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/beardo-multisite-activation-console\/"},"modified":"2026-09-05T09:58:40","modified_gmt":"2026-09-05T09:58:40","slug":"beardo-multisite-activation-console","status":"publish","type":"plugin","link":"https:\/\/hat.wordpress.org\/plugins\/beardo-multisite-activation-console\/","author":23519436,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.0","stable_tag":"1.0.0","tested":"7.1","requires":"7.0","requires_php":"8.0","requires_plugins":null,"header_name":"Beardo Multisite Activation Console","header_author":"Beardo.Tools","header_description":"Network-admin console to view and safely transition plugin activation","assets_banners_color":"dadfe4","last_updated":"2026-09-05 09:58:40","external_support_url":"","external_repository_url":"","donate_link":"https:\/\/beardo.tools\/donate\/","header_plugin_uri":"https:\/\/beardo.tools\/plugins\/multisite-activation-console\/","header_author_uri":"","rating":0,"author_block_rating":0,"active_installs":0,"downloads":94,"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":"beardotools","date":"2026-09-05 09:58:40","revision":3682332}},"upgrade_notice":{"1.0.0":"<p>First public release.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.gif":{"filename":"icon-128x128.gif","revision":3682445,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.gif":{"filename":"icon-256x256.gif","revision":3682445,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3669350,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3669350,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3669350,"resolution":"1","location":"assets","locale":"","width":1698,"height":879},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3669350,"resolution":"2","location":"assets","locale":"","width":1692,"height":876}},"screenshots":{"1":"The whole network on one screen \u2014 every plugin's status across every site, with the change menu open","2":"The audit log \u2014 who changed what, where, and when, filterable by person, site, or plugin"}},"plugin_section":[],"plugin_tags":[3741,8533,441,325,2391],"plugin_category":[51],"plugin_contributors":[271446],"plugin_business_model":[],"class_list":["post-359928","plugin","type-plugin","status-publish","hentry","plugin_tags-activation","plugin_tags-audit","plugin_tags-multisite","plugin_tags-network","plugin_tags-plugins","plugin_category-multisite","plugin_contributors-beardotools","plugin_committers-beardotools"],"banners":{"banner":"https:\/\/ps.w.org\/beardo-multisite-activation-console\/assets\/banner-772x250.png?rev=3669350","banner_2x":"https:\/\/ps.w.org\/beardo-multisite-activation-console\/assets\/banner-1544x500.png?rev=3669350","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/beardo-multisite-activation-console\/assets\/icon-128x128.gif?rev=3682445","icon_2x":"https:\/\/ps.w.org\/beardo-multisite-activation-console\/assets\/icon-256x256.gif?rev=3682445","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/beardo-multisite-activation-console\/assets\/screenshot-1.png?rev=3669350","caption":"The whole network on one screen \u2014 every plugin's status across every site, with the change menu open"},{"src":"https:\/\/ps.w.org\/beardo-multisite-activation-console\/assets\/screenshot-2.png?rev=3669350","caption":"The audit log \u2014 who changed what, where, and when, filterable by person, site, or plugin"}],"raw_content":"<!--section=description-->\n<p><strong>Activate, deactivate, and manage plugins across every site in your network from one screen.<\/strong><\/p>\n\n<p>Managing plugins on a multisite network is messy. Deactivating a plugin at the network level can leave it quietly running on individual sites \u2014 but how would you know? Finding out means clicking through site after site, and fixing it means holding your breath while a bulk action either works or takes the network down.<\/p>\n\n<p>Beardo Multisite Activation Console was built for one purpose: to save you that time. Every plugin, every site, one grid \u2014 with every change made carefully, recorded, and impossible to lock yourself out with.<\/p>\n\n<h4>Activation Grid<\/h4>\n\n<p>See the whole network at a glance: which plugins are network-active, which are switched on for individual sites, and which are off everywhere. Sort, search, and filter the way you already do in the WordPress admin \u2014 no spreadsheets, no site-hopping.<\/p>\n\n<h4>Quick Change<\/h4>\n\n<p>Change the status of any plugin on any site right from the grid. The console never fires off a giant batch and hopes for the best: each change runs on its own, with a health check first. If a plugin would break one subsite, that site is flagged and the rest of your network carries on untouched.<\/p>\n\n<h4>Clear Stale<\/h4>\n\n<p>Networks that have been around a while collect clutter \u2014 plugins marked active on a site <em>and<\/em> network-active at the same time. The console spots the redundant entries and clears them without deactivating anything that's genuinely in use.<\/p>\n\n<h4>Dead References<\/h4>\n\n<p>Deleted a plugin from the server but WordPress still thinks it's active somewhere? Those leftover entries hang around in your database for years. The console finds them and removes them.<\/p>\n\n<h4>Logs<\/h4>\n\n<p>Every change is written to a network-wide audit log: who did it, on which site, what they changed, and whether it worked. Filter by person, site, or plugin. When a client asks \"who turned that off?\", you'll have the answer in seconds.<\/p>\n\n<h4>Guardrails<\/h4>\n\n<p>A built-in protected list means the console will never deactivate itself, a drop-in, or anything else that would lock a super admin out mid-change. Developers can extend that list with a single filter.<\/p>\n\n<h4>Feels like part of WordPress<\/h4>\n\n<p>Built on the same DataViews interface WordPress itself uses, so there's nothing new to learn. It follows your admin color scheme, works in right-to-left languages, and looks like it belongs.<\/p>\n\n<h4>Free, and nothing leaves your server<\/h4>\n\n<p>No paid tier, no external services, no tracking, no phoning home. The plugin reads and writes only your own network's plugin state and its own audit log.<\/p>\n\n<h4>Who it's for<\/h4>\n\n<ul>\n<li>Agencies and hosts managing client sites on one network<\/li>\n<li>Universities, franchises, and publishers with dozens or hundreds of subsites<\/li>\n<li>Anyone who has ever bulk-activated a plugin and immediately regretted it<\/li>\n<\/ul>\n\n<p><strong>Requires a multisite network.<\/strong> Only super admins can use the console, and every request is protected by WordPress nonces and capability checks.<\/p>\n\n<p><strong>Support &amp; Documentation<\/strong><\/p>\n\n<ul>\n<li>Learn more: <a href=\"https:\/\/beardo.tools\/multisite-activation-console\/\">beardo.tools\/multisite-activation-console<\/a><\/li>\n<li>Get help: <a href=\"https:\/\/help.beardo.tools\">help.beardo.tools<\/a><\/li>\n<\/ul>\n\n<h3>External Services<\/h3>\n\n<p>This plugin makes no external HTTP requests. It reads and writes only local\nWordPress data: the network's plugin activation state, the sites in the\nnetwork, and its own audit log table. No data is sent to any third-party\nservice, and no tracking, telemetry, or analytics of any kind is collected.<\/p>\n\n<h3>Third-Party Libraries<\/h3>\n\n<p>The admin interface is a React application built from the plugin's own source\nin <code>src\/<\/code> using @wordpress\/scripts. The shipped <code>build\/index.js<\/code> is compiled\noutput \u2014 not obfuscated code \u2014 and contains only the plugin's source plus the\nstandard WordPress packages it imports (@wordpress\/components,\n@wordpress\/dataviews, @wordpress\/element, @wordpress\/api-fetch,\n@wordpress\/i18n, @wordpress\/icons), all GPL-compatible.<\/p>\n\n<p>The full, unminified source is available in the plugin's public repository.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin folder to <code>\/wp-content\/plugins\/<\/code><\/li>\n<li><strong>Network Activate<\/strong> it from <strong>Network Admin \u2192 Plugins<\/strong><\/li>\n<li>Open <strong>Network Admin \u2192 Plugins \u2192 Activation Console<\/strong><\/li>\n<\/ol>\n\n<p>This plugin requires a WordPress multisite installation. It has no effect on single-site installs.<\/p>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20this%20work%20on%20a%20regular%20%28single-site%29%20wordpress%20install%3F\"><h3>Does this work on a regular (single-site) WordPress install?<\/h3><\/dt>\n<dd><p>No. The console is built for multisite networks and must be network activated. On a single-site install it does nothing.<\/p><\/dd>\n<dt id=\"can%20it%20break%20my%20network%20by%20turning%20off%20something%20critical%3F\"><h3>Can it break my network by turning off something critical?<\/h3><\/dt>\n<dd><p>It's designed specifically so it can't. Changes run one at a time with a health check first, so a problem on one site stays on that site. And a protected list stops it from ever deactivating itself or anything that would lock a super admin out. Developers can add to that list with the <code>beardo_mac_protected_plugins<\/code> filter.<\/p><\/dd>\n<dt id=\"who%20can%20use%20the%20console%3F\"><h3>Who can use the console?<\/h3><\/dt>\n<dd><p>Only super admins (users with the <code>manage_network_plugins<\/code> capability). Regular site admins won't see it.<\/p><\/dd>\n<dt id=\"what%20does%20the%20audit%20log%20record%3F\"><h3>What does the audit log record?<\/h3><\/dt>\n<dd><p>Who made the change, which plugin, what they did, which site it applied to, whether it succeeded, and when. You can filter the log by person, site, or plugin.<\/p><\/dd>\n<dt id=\"does%20it%20send%20any%20data%20anywhere%3F\"><h3>Does it send any data anywhere?<\/h3><\/dt>\n<dd><p>No. There are no external calls, no analytics, and no tracking of any kind.<\/p><\/dd>\n<dt id=\"what%20happens%20if%20i%20uninstall%20it%3F\"><h3>What happens if I uninstall it?<\/h3><\/dt>\n<dd><p>The audit log table is removed. Nothing else on your network is touched \u2014 your plugins stay exactly as they were.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial public release.<\/li>\n<li>Activation matrix \u2014 every plugin's state (network active, per-site active, or off) across all subsites in a single DataViews grid<\/li>\n<li>Safe transitions \u2014 one state change per request, so a fatal error on one subsite never takes down the whole batch<\/li>\n<li>Dry-run validation \u2014 backend health checks run before any change is executed<\/li>\n<li>Stale dual-state cleanup \u2014 detects and strips redundant per-site entries for network-active plugins without deactivating anything<\/li>\n<li>Dead-reference cleanup \u2014 removes activation entries for plugins no longer present on disk<\/li>\n<li>Audit log \u2014 every state transition recorded network-wide with acting user, target site, action, and result, filterable by user, site, and plugin<\/li>\n<li>Guardrails \u2014 a filterable protected list (<code>beardo_mac_protected_plugins<\/code>) prevents the console from deactivating itself or locking out a super admin<\/li>\n<li>Admin theme compatibility \u2014 console colors flow through a plugin-scoped CSS token layer, and the focus ring follows the user's admin color scheme<\/li>\n<li>Full RTL support<\/li>\n<\/ul>\n\n<p>This release follows an internal beta series; 1.0.0 is the first version published to WordPress.org.<\/p>","raw_excerpt":"See which plugins are on across your whole multisite network \u2014 and switch them on or off safely, one site at a time, with a full audit trail.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/hat.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/359928","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/hat.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/hat.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/hat.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=359928"}],"author":[{"embeddable":true,"href":"https:\/\/hat.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/beardotools"}],"wp:attachment":[{"href":"https:\/\/hat.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=359928"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/hat.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=359928"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/hat.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=359928"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/hat.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=359928"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/hat.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=359928"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/hat.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=359928"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}