Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[Blueprints] Prevent WSOD when autologin is enabled and a plugin logs…
… a notice (#2079) This PR ensures the autologin step won't cause a perpetual white screen of death when one of the plugins displays a notice. The autologin flow consists of a bunch of checks, setcookie() call, a header('Location') call, and an `exit;`. However, when the headers are already sent, the cookies won't be set, the redirect won't work, but the script will still. This, effectively, prevents loading any WordPress page. This PR adds a `headers_sent()` check to stop the autologin step early in those scenarios when we can't finish the login. ## Testing instructions * CI has a new E2E test – confirm everything is green * Try this Blueprint (courtesy of @janw-me). It should open a white screen with errors. Now change the landing page to "/". It should open the homepage with a few errors at the top. Before this PR, you'd see a blank page instead of the homepage. ```json { "plugins": [ "pronamic-ideal" ], "preferredVersions": { "php": "8.2", "wp": "6.7" }, "features": { "networking": true }, "login": true, "landingPage": "/wp-admin/update-core.php", "steps": [ { "step": "defineWpConfigConsts", "consts": { "WP_DEBUG": true, "WP_DEBUG_DISPLAY": true } }, { "step": "setSiteLanguage", "language": "nl_NL" } ] } ```
- Loading branch information