Fix Admin Notices not showing on the Dashboard (v2.4.2)
admin_notices fires everywhere, but prints inside #wpbody, which DashboardTakeover hides entirely on the Dashboard (to hide the *native* dashboard, not ours) — notices went down with it as collateral damage. Notices::render_for_dashboard() now renders directly inside the visible dashboard frame instead, called from DashboardTakeover::render_mount(); the normal admin_notices path bails on the Dashboard so it isn't rendered twice. Second, independent bug found along the way: wp-admin/js/common.js unconditionally relocates every .notice element on the page to right after the page's <h1>, regardless of where it was placed server-side — without opting out, it would've silently moved our notice right back into the hidden #wpbody. Used core's own documented `below-h2` class to opt out, only for the dashboard render path. Verified live: notice now shows correctly inside the dashboard frame with proper dark styling, and dismisses correctly. Co-Authored-By: Claude Sonnet 5 <[email protected]>
This commit is contained in:
co-authored by
Claude Sonnet 5
parent
03c3c4fc89
commit
d8bf1ae049
+17
-1
@@ -1,6 +1,6 @@
|
||||
# Aurora Admin v2 — Project Status
|
||||
|
||||
_Last updated: 2026-07-04 (latest session — file-integrity tamper protection for the license gate)_
|
||||
_Last updated: 2026-07-04 (latest session — remaining placeholder settings wired up, dashboard scrolling and admin notices fixed)_
|
||||
|
||||
## What this project is
|
||||
|
||||
@@ -628,6 +628,22 @@ compatibility, trust), which wasn't in scope here.
|
||||
|
||||
## Key bugs fixed (root causes, in case they resurface)
|
||||
|
||||
- **Admin Notices invisible on the Dashboard**: `admin_notices` prints
|
||||
inside `#wpbody`, which `DashboardTakeover::hide_native()` hides
|
||||
entirely (to hide the *native* dashboard, not ours) — collateral damage
|
||||
for anything else relying on that hook there. Fixed with
|
||||
`Notices::render_for_dashboard()`, called directly inside the visible
|
||||
dashboard frame (`DashboardTakeover::render_mount()`), with `render()`
|
||||
(the normal `admin_notices` hook) bailing on the Dashboard so it isn't
|
||||
rendered twice. **Second, independent bug surfaced by the same fix**:
|
||||
`wp-admin/js/common.js` unconditionally relocates every `.notice`
|
||||
element on the page to right after the page's `<h1>`
|
||||
(`$('.notice').not('.inline, .below-h2').insertAfter($headerEnd)`) —
|
||||
regardless of where it was placed server-side, it would've moved right
|
||||
back into the hidden `#wpbody` on its own. Core's own `.below-h2` class
|
||||
is the documented opt-out; added only for the dashboard render path
|
||||
(`render_notices($keep_in_place)`), not the normal one, where the
|
||||
relocation is harmless/expected.
|
||||
- **`.card` global class collision**: original Dashboard cards used
|
||||
`class="card"`, colliding with WP core's `.card { max-width: 520px }`.
|
||||
Fixed by renaming to `.aurora-card*` everywhere. Never use unprefixed
|
||||
|
||||
Reference in New Issue
Block a user