Multisite: surface pre-1.0.3 host lists awaiting review in Network Admin #25

Closed
opened 2026-10-16 15:47:01 -07:00 by eric · 0 comments
Owner

Follow-up to #21.

Since 1.0.3, on multisite any host list saved before 1.0.3 (settings version < 2) is ignored until a network admin re-saves it on that site's settings page. Every list written by 1.0.2 is version 1, so upgrading a network turns rewriting off on every site, including the main site, until each one is re-saved. While it is off, onion visitors are served clearnet URLs again.

The only signal is SettingsRenderer::renderReviewNotice() on admin_notices, which shows in that site's own wp-admin. A super admin working from Network Admin never sees it and has to visit each site to discover the problem.

Single-site is unaffected.

Proposed

  • Also hook network_admin_notices: list the sites whose stored multi_domain_redux_settings is non-empty with version < Repository::NETWORK_TRUSTED_VERSION, each linked to its settings page (get_admin_url( $blog_id, 'options-general.php?page=multi-domain-redux' )). Show to manage_network_options only.
  • Scan cheaply: get_sites( [ 'number' => 0, 'fields' => 'ids' ] ) plus get_blog_option(), or cache the result in a site transient cleared when any site's option is updated.
  • Make the behaviour change prominent in the release notes / readme.txt changelog for the release that ships it.

Not a security issue; this is about making the upgrade effect visible.

Follow-up to #21. Since 1.0.3, on multisite any host list saved before 1.0.3 (settings version < 2) is ignored until a network admin re-saves it on that site's settings page. Every list written by 1.0.2 is version 1, so upgrading a network turns rewriting off on **every** site, including the main site, until each one is re-saved. While it is off, onion visitors are served clearnet URLs again. The only signal is `SettingsRenderer::renderReviewNotice()` on `admin_notices`, which shows in that site's own wp-admin. A super admin working from Network Admin never sees it and has to visit each site to discover the problem. Single-site is unaffected. ## Proposed - Also hook `network_admin_notices`: list the sites whose stored `multi_domain_redux_settings` is non-empty with version < `Repository::NETWORK_TRUSTED_VERSION`, each linked to its settings page (`get_admin_url( $blog_id, 'options-general.php?page=multi-domain-redux' )`). Show to `manage_network_options` only. - Scan cheaply: `get_sites( [ 'number' => 0, 'fields' => 'ids' ] )` plus `get_blog_option()`, or cache the result in a site transient cleared when any site's option is updated. - Make the behaviour change prominent in the release notes / `readme.txt` changelog for the release that ships it. Not a security issue; this is about making the upgrade effect visible.
eric closed this issue 2026-10-16 15:56:18 -07:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
eric/multi-domain-redux#25
No description provided.