diff --git a/CHANGELOG.md b/CHANGELOG.md index 89f23b6..3639d3e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,20 @@ version bump. Starts at 2.1.0 — earlier history (the theming rebuild, window chrome/taskbar, Site Editor support, etc.) lives in `git log` and `PROJECT_STATUS.md`, not reconstructed here. +## [2.7.2] - 2026-07-05 + +### Fixed +- Installing/activating a plugin dropped back to the native WordPress + Plugins page instead of staying in Aurora's UI, until the sidebar's + "Plugins" link was clicked again. Unlike Posts/Pages/Media/Users/ + Comments, Plugins only ever had its sidebar *link* rewritten + (`MenuSerializer.php`) — there was no `redirect_native_pages()` case + for direct visits to `plugins.php`, which is exactly what WordPress's + own post-activate/post-install redirect does + (`wp_redirect(self_admin_url('plugins.php?activate=true'))`, no + `?page=` param). Added the missing case, matching the pattern already + used for the other four pages. + ## [2.7.1] - 2026-07-05 ### Fixed diff --git a/PROJECT_STATUS.md b/PROJECT_STATUS.md index 99e5416..4986c4a 100644 --- a/PROJECT_STATUS.md +++ b/PROJECT_STATUS.md @@ -1,6 +1,6 @@ # Aurora Admin v2 — Project Status -_Last updated: 2026-07-05 (latest session — fixed white native form fields on classic edit screens, e.g. Edit Media's title field)_ +_Last updated: 2026-07-05 (latest session — fixed Plugins dropping to the native page after activating a plugin)_ ## What this project is @@ -766,6 +766,29 @@ replacement — there's no native WP file browser to redirect from). ## Key bugs fixed (root causes, in case they resurface) +- **Plugins dropped to the native page after activating a plugin**: user + installed FileBird and it "defaulted back to WordPress plugins page + until I clicked on plugins from the menu." Root cause: unlike Posts/ + Pages/Media/Users/Comments, Plugins was originally built with *only* a + `MenuSerializer.php` link rewrite (the sidebar's own "Plugins" link + pointed at the Aurora page) — it never got a `redirect_native_pages()` + case for direct visits to `plugins.php` itself. WordPress's own + post-activate/post-install redirect + (`wp_redirect(self_admin_url('plugins.php?activate=true'))`) is exactly + that: a direct visit with no `?page=` param, bypassing the rewritten + sidebar link entirely and landing on the true native page — fixed only + once the user next clicked the sidebar link themselves. Added the + missing `redirect_native_pages()` case, gated by `modern_plugins` like + the others, redirecting to `plugins.php?page=aurora-admin-plugins` (not + `admin.php?page=...`, to match the URL the sidebar link itself already + uses). Verified live by visiting `plugins.php?activate=true` directly + (the exact URL WP's own redirect produces) — now lands on the Aurora + page correctly. **If a similarly "sidebar-link-only" page ever gets + reported as dropping to native after some WP-core-triggered redirect, + check `redirect_native_pages()` for a missing case first** — this is + the second time that exact gap has caused a bug (Plugins now fixed; + worth double-checking Comments/Posts/Pages/Media/Users don't have + similar missed redirect sources, e.g. bulk actions, if this resurfaces). - **White native form fields on classic (non-block-editor) screens**: user reported "a lot of endpoints still linking back to the original WordPress dashboard [look]" — investigation landed on the Edit Media diff --git a/admin/src/Pages/SubApps.php b/admin/src/Pages/SubApps.php index cddbbb4..b720a58 100644 --- a/admin/src/Pages/SubApps.php +++ b/admin/src/Pages/SubApps.php @@ -142,6 +142,25 @@ class SubApps return; } + // Settings > Plugins > "Modern plugins page". Unlike the others below, + // this one was previously only handled by MenuSerializer rewriting the + // sidebar's own link — direct visits to plugins.php never redirected, + // which is exactly what WordPress's own post-activate/post-install + // redirect does (wp_redirect(self_admin_url('plugins.php?activate=true')) + // — no ?page= param, so it always landed on the true native page, + // fixed only once the user next clicked the (correctly rewritten) + // sidebar link themselves. Redirects to plugins.php?page=... (not + // admin.php?page=...) to match the URL admin_url("plugins.php?page= + // aurora-admin-plugins") that the sidebar link itself already uses. + if ( + $pagenow === "plugins.php" && + current_user_can("activate_plugins") && + Settings::get("modern_plugins", true) + ) { + wp_safe_redirect(admin_url("plugins.php?page=aurora-admin-plugins")); + exit; + } + // Settings > Comments > "Modern comments page" — previously always // redirected regardless of this setting; default true so existing // installs keep their current behavior until explicitly turned off. diff --git a/app/package.json b/app/package.json index e57b6a0..8bccbdd 100644 --- a/app/package.json +++ b/app/package.json @@ -1,6 +1,6 @@ { "name": "aurora-admin-app", - "version": "2.7.1", + "version": "2.7.2", "private": true, "type": "module", "scripts": { diff --git a/aurora-admin.php b/aurora-admin.php index 1091753..8e10574 100644 --- a/aurora-admin.php +++ b/aurora-admin.php @@ -3,7 +3,7 @@ * Plugin Name: Aurora Admin * Plugin URI: https://aurora.co * Description: A modern, fast WordPress admin interface. - * Version: 2.7.1 + * Version: 2.7.2 * Author: Aurora * Text Domain: aurora-admin * Domain Path: /languages/ @@ -14,7 +14,7 @@ defined("ABSPATH") || exit(); -define("AURORA_ADMIN_VERSION", "2.7.1"); +define("AURORA_ADMIN_VERSION", "2.7.2"); define("AURORA_ADMIN_PATH", plugin_dir_path(__FILE__)); define("AURORA_ADMIN_URL", plugins_url("aurora-admin/"));