Commit Graph

379 Commits

Author SHA1 Message Date
audrasjb 8cd983dee4 Help/About: Correction in "Managing Themes" HelpHub Docs link.
This change updates the HelpHub Documentation link to "Managing Themes" to make it more consistent with other Help tabs.

Props SergeyBiryukov, jdy68.
Fixes #54707.

Built from https://develop.svn.wordpress.org/trunk@52545


git-svn-id: http://core.svn.wordpress.org/trunk@52135 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2022-01-10 08:50:01 +00:00
audrasjb 461cd1373e Help/About: Change the HTML `title` of Themes Screen and add related HelpHub Docs link.
This change replaces the title of the Appearance Themes Screen to make it consistent with the main heading of the screen and with other Admin screens. It also adds a link to the related HelpHub Documentation in the Help tab of the screen.

Props jdy68.
Fixes #54707.

Built from https://develop.svn.wordpress.org/trunk@52543


git-svn-id: http://core.svn.wordpress.org/trunk@52133 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2022-01-09 23:14:04 +00:00
Sergey Biryukov 6dde735e3e Coding Standards: Use strict comparison in `wp-admin/themes.php`.
Follow-up to [15646], [30697].

See #54728.
Built from https://develop.svn.wordpress.org/trunk@52540


git-svn-id: http://core.svn.wordpress.org/trunk@52130 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2022-01-08 01:22:02 +00:00
hellofromTonya f847144952 Themes: Show only "Customize" or "Activate" button in block theme's Theme Details modal.
At the bottom of a block theme's "Theme Details" modal, only one button will be displayed:
* "Customize" button when the block theme is activated;
* Else, the "Activate" button.

The "Live Preview", "Editor beta", and "Navigation Menus" buttons are removed.

Follow-up to [15646], [52341], [52346].

Props poena, ryelle, kafleg, antonvlasenko, costdev, SergeyBiryukov, hellofromTonya.
Fixes #54578.
Built from https://develop.svn.wordpress.org/trunk@52353


git-svn-id: http://core.svn.wordpress.org/trunk@51945 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2021-12-10 20:33:00 +00:00
Sergey Biryukov 62574145ce Coding Standards: Use camel case with a lowercase first letter for the `blockTheme` array key.
This matches the WordPress JS naming conventions and the naming of other keys in the `$prepared_themes` array.

Follow-up to [52341].

See #54578, #53359.
Built from https://develop.svn.wordpress.org/trunk@52346


git-svn-id: http://core.svn.wordpress.org/trunk@51938 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2021-12-08 10:16:05 +00:00
hellofromTonya 9aba2584bb Themes: Hide "Live Preview" button for FSE block themes.
Currently, the Site Editor does not have a live preview feature for non-activated block themes.

This commit is a stop-gate to remove the "Live Preview" button for those themes. It avoids confusing users and avoiding a notification message that doesn't make sense.

Props antonvlasenko, costdev, hellofromTonya, kafleg, paaljoachim.
Fixes #54578.
Built from https://develop.svn.wordpress.org/trunk@52341


git-svn-id: http://core.svn.wordpress.org/trunk@51933 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2021-12-07 20:07:00 +00:00
Sergey Biryukov 0531cc11b4 Coding Standards: Consistently escape attribute in `wp-admin/themes.php`.
Follow-up to [27012], [38057], [47816], [51083].

Props sabbirshouvo, audrasjb.
Fixes #54256.
Built from https://develop.svn.wordpress.org/trunk@52020


git-svn-id: http://core.svn.wordpress.org/trunk@51612 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2021-11-05 17:58:57 +00:00
Sergey Biryukov 8a90b8691f Docs: Add a comment about the `$title` global usage in various admin files.
This should make it clear that the variable is used as part of the HTML `<title>` tag on admin screens.

Props ravipatel, hellofromTonya, sabernhardt, audrasjb, SergeyBiryukov.
Fixes #53729.
Built from https://develop.svn.wordpress.org/trunk@51475


git-svn-id: http://core.svn.wordpress.org/trunk@51086 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2021-07-22 13:53:00 +00:00
Sergey Biryukov 6a163e199a Administration: Consistently escape `admin_url()` links.
Props chintan1896, mukesh27.
Fixes #53426.
Built from https://develop.svn.wordpress.org/trunk@51177


git-svn-id: http://core.svn.wordpress.org/trunk@50786 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2021-06-17 14:37:00 +00:00
joedolson 637282bb0f Themes: Fix accessibility issues with controls in themes screen.
Add accessible names to several theme controls so provide better context for screen reader users. Change theme details element into a button that can receive focus. Ensure focus is set back on existing theme when theme details modal is closed.

props alexstine, poena.
Fixes #52649.
Built from https://develop.svn.wordpress.org/trunk@51083


git-svn-id: http://core.svn.wordpress.org/trunk@50692 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2021-06-07 23:10:57 +00:00
Sergey Biryukov 2a7238f658 Coding Standards: Give a variable in `wp-admin/themes.php` a more meaningful name.
Follow-up to [20029].

See #52627.
Built from https://develop.svn.wordpress.org/trunk@50696


git-svn-id: http://core.svn.wordpress.org/trunk@50305 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2021-04-10 12:01:10 +00:00
Sergey Biryukov 68b73d3696 Themes: Remove unused code fragment from `wp-admin/themes.php`.
Follow-up to [25666], [26141].

Props mukesh27, rkradadiya.
Fixes #53005.
Built from https://develop.svn.wordpress.org/trunk@50694


git-svn-id: http://core.svn.wordpress.org/trunk@50303 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2021-04-09 11:49:05 +00:00
Dominik Schilling cf3e30b301 Customize: Update button label reference in themes help text to reflect the label introduced in [41626].
Props ovidiul.
See #39896, #42305.
Fixes #52271.
Built from https://develop.svn.wordpress.org/trunk@49969


git-svn-id: http://core.svn.wordpress.org/trunk@49670 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2021-01-17 17:01:08 +00:00
whyisjake e6bfdde581 Upgrade/Install: Only show auto-update for themes that support the feature.
Similar to the changes for plugins in [48669], let's only show the UI for themes when updates are supported for that theme.

See #50280.
Props dd32.

Built from https://develop.svn.wordpress.org/trunk@48688


git-svn-id: http://core.svn.wordpress.org/trunk@48450 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2020-07-29 20:01:08 +00:00
Sergey Biryukov e349d92b53 Themes: Include theme name in available update messages, for better accessibility and consistency with other similar messages.
Follow-up to [48652-48654].

See #48491.
Built from https://develop.svn.wordpress.org/trunk@48659


git-svn-id: http://core.svn.wordpress.org/trunk@48421 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2020-07-28 11:31:01 +00:00
Sergey Biryukov ab6c396531 Themes: Correct the logic for displaying a message in theme grid if a theme update requires a higher version of PHP or WordPress.
This applies to the Themes screen fallback used when JS is turned off.

Follow-up to [48652].

See #48491.
Built from https://develop.svn.wordpress.org/trunk@48653


git-svn-id: http://core.svn.wordpress.org/trunk@48415 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2020-07-28 00:43:02 +00:00
Sergey Biryukov 0122e035b0 Themes: Display a message in theme grid and Theme Details modal if a theme update requires a higher version of PHP or WordPress.
This applies to the Themes screen and the Customizer theme browser.

Props afragen, SergeyBiryukov.
See #48491.
Built from https://develop.svn.wordpress.org/trunk@48652


git-svn-id: http://core.svn.wordpress.org/trunk@48414 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2020-07-28 00:09:02 +00:00
Sergey Biryukov e071ace6c4 Themes: Display a message in theme grid if a theme requires a higher version of PHP or WordPress.
This applies to the Themes screen fallback used when JS is turned off.

Props afragen, desrosj, SergeyBiryukov.
See #48491.
Built from https://develop.svn.wordpress.org/trunk@48640


git-svn-id: http://core.svn.wordpress.org/trunk@48402 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2020-07-27 15:21:02 +00:00
Sergey Biryukov 4336a2b9a7 Themes: Display a message in theme grid if a theme requires a higher version of PHP or WordPress.
This applies to the Themes screen, Add Themes screen, and the Customizer theme browser.

Props afragen, desrosj, SergeyBiryukov.
See #48491.
Built from https://develop.svn.wordpress.org/trunk@48638


git-svn-id: http://core.svn.wordpress.org/trunk@48400 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2020-07-27 15:04:03 +00:00
Sergey Biryukov 1f89186a3d Themes: Display a message in Theme Details modal if a theme requires a higher version of PHP or WordPress.
Props afragen, desrosj, SergeyBiryukov.
See #48491.
Built from https://develop.svn.wordpress.org/trunk@48636


git-svn-id: http://core.svn.wordpress.org/trunk@48398 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2020-07-27 13:12:04 +00:00
Sergey Biryukov a6fed0173d Themes: Correct closing tag for the "Enable auto-updates" button in the JS template for theme auto-update setting.
Follow-up to [48418].

See #50516.
Built from https://develop.svn.wordpress.org/trunk@48428


git-svn-id: http://core.svn.wordpress.org/trunk@48197 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2020-07-10 22:03:04 +00:00
whyisjake 28a390c2b2 Upgrade/Install: Use ARIA button class on plugin and theme auto-updates action links
According to the [accesability guidelines](https://developer.wordpress.org/coding-standards/wordpress-coding-standards/accessibility/#semantics-for-controls), the control should be a link when JavaScript is not available and a button the rest of the time.

In addition, handlers were added for spacebar usage, and some changes to the a11y speak verbiage.

Fixes #50516.
Props ryokuhi, audrasjb, afercia, whyisjake/



Built from https://develop.svn.wordpress.org/trunk@48418


git-svn-id: http://core.svn.wordpress.org/trunk@48187 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2020-07-10 06:18:04 +00:00
Andrea Fercia ae447adaf4 I18N: Restore the "Error:" prefix for error messages.
Partially reverts [48059] as there's no full consensus on the removal of the text prefix. Further actions should be taken to improve consistency and accessibility of the admin notices. Keeps some improvements to the translatable strings from [48059].

Fixes #47656.

Built from https://develop.svn.wordpress.org/trunk@48115


git-svn-id: http://core.svn.wordpress.org/trunk@47884 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2020-06-21 14:00:09 +00:00
Sergey Biryukov 26621b3b44 Docs: Miscellaneous DocBlock corrections for plugin and theme installation and updates.
See #49572.
Built from https://develop.svn.wordpress.org/trunk@48105


git-svn-id: http://core.svn.wordpress.org/trunk@47874 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2020-06-20 12:14:09 +00:00
John Blackbourn acb8983ac1 Docs: Corrections and improvements to inline docs related to plugin and theme auto-updates.
See #50052, #49572
Built from https://develop.svn.wordpress.org/trunk@48097


git-svn-id: http://core.svn.wordpress.org/trunk@47866 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2020-06-19 22:17:07 +00:00
Sergey Biryukov 82a5d41d9b Help/About: Move "Learn more: Auto-updates documentation" link about "Support", for consistency with other screens.
Follow-up to [48062].

See #50215.
Built from https://develop.svn.wordpress.org/trunk@48095


git-svn-id: http://core.svn.wordpress.org/trunk@47864 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2020-06-19 21:14:08 +00:00
Andrew Ozz aca919f007 Plugins and Themes Auto-Updates:
- Fix displaying of errors on the Themes screen.
- Correct the classes used for the error messages, and use `notice-alt` as notices are mostly shown on a white background.

Props afercia, azaozz.
Fixes #50405.
Built from https://develop.svn.wordpress.org/trunk@48092


git-svn-id: http://core.svn.wordpress.org/trunk@47859 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2020-06-19 16:51:14 +00:00
Andrew Ozz 7757ad5e94 Plugins and Themes Auto-Updates: allow overriding of the HTML for the auto-update setting link. This will let plugins show better/specific information when they are overriding the auto-update settings, for example "Updates are managed by ... plugin".
Introduces: `theme_auto_update_setting_html`, `plugin_auto_update_setting_html`, and `theme_auto_update_setting_template` filters.

Props audrasjb, pbiron, azaozz.
Fixes #50280.
Built from https://develop.svn.wordpress.org/trunk@48077


git-svn-id: http://core.svn.wordpress.org/trunk@47844 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2020-06-18 00:00:13 +00:00
whyisjake 97e2b94f84 Help/About: Add help tabs to provide informations about plugin & themes auto-updates.
Adds language around how the feature works and includes links to the WordPress HelpHub pages.

Fixes: #50215.
Props: audrasjb, garrett-eclipse, paaljoachim, marybaum, pbiron, whyisjake.


Built from https://develop.svn.wordpress.org/trunk@48062


git-svn-id: http://core.svn.wordpress.org/trunk@47829 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2020-06-16 17:29:07 +00:00
Andrea Fercia f83c504b88 I18N: Remove the "Error:" prefix from error messages.
For a number of years, most of the WordPress error messages have been prefixed with "Error:". However, these messages appear in a context where it's already clear an error occurred. Whether it's an error, a warning, or any other classification, that's not so relevant for users. The content of the message is the relevant part. The "Error:" prefix doesn't add great value while it does add unnecessary complexity for the message readability.

Also, revises some of these messages to improve clarity and removes HTML from translatable strings.

Props garrett-eclipse, ramiy, SergeyBiryukov, afercia, sabernhardt, quadthemes, audrasjb. 
See #47003, #43037, #42945, #15887.
Fixes #47656.

Built from https://develop.svn.wordpress.org/trunk@48059


git-svn-id: http://core.svn.wordpress.org/trunk@47826 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2020-06-16 15:35:13 +00:00
whyisjake ffc4869c9c Themes: Ensure a broken theme name is returned properly.
Props: sstoqnov.

Built from https://develop.svn.wordpress.org/trunk@47950


git-svn-id: http://core.svn.wordpress.org/trunk@47722 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2020-06-10 17:23:36 +00:00
desrosj b013a15d43 Accessibility: Add the `aria-hidden` attribute to the auto-update related icons.
`<span>` elements used for displaying icons should use the `aria-hidden` attribute as they are purely decorative.

Props audrasjb, ryokuhi.
Fixes #50293.
Built from https://develop.svn.wordpress.org/trunk@47910


git-svn-id: http://core.svn.wordpress.org/trunk@47684 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2020-06-04 15:47:09 +00:00
Sergey Biryukov b9751d4efe Coding Standards: Use strict comparison for `count()` calls.
See #49542.
Built from https://develop.svn.wordpress.org/trunk@47848


git-svn-id: http://core.svn.wordpress.org/trunk@47624 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2020-05-23 11:38:08 +00:00
whyisjake 661b929e1e Security: Add user interface to auto-update themes and plugins.
Building on core update mechanisms, this adds the ability to enable automatic updates for themes and plugins to the WordPress admin. 

Fixes: #50052.
Props: afercia, afragen, audrasjb, azaozz, bookdude13, davidperonne, desrosj, gmays, gmays, javiercasares, karmatosed, knutsp, mapk, mukesh27, netweb, nicolaskulka, nielsdeblaauw, paaljoachim, passoniate, pbiron, pedromendonca, whodunitagency, whyisjake, wpamitkumar, and xkon.

Built from https://develop.svn.wordpress.org/trunk@47835


git-svn-id: http://core.svn.wordpress.org/trunk@47611 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2020-05-20 18:49:09 +00:00
Sergey Biryukov b73bbd8139 Themes: Prevent activation and live preview of themes that require a higher version of PHP or WordPress.
Props afragen, jorbin, TimothyBlynJacobs, SergeyBiryukov.
See #48491.
Built from https://develop.svn.wordpress.org/trunk@47816


git-svn-id: http://core.svn.wordpress.org/trunk@47592 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2020-05-18 12:32:10 +00:00
Sergey Biryukov 7932193708 Coding Standards: Use strict comparison where static strings are involved.
This reduces the number of `WordPress.PHP.StrictComparisons.LooseComparison` issues in half, from 1897 to 890.

Includes minor code layout fixes for better readability.

See #49542.
Built from https://develop.svn.wordpress.org/trunk@47808


git-svn-id: http://core.svn.wordpress.org/trunk@47584 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2020-05-16 18:42:12 +00:00
John Blackbourn 7dbad241cb Themes: Always list broken themes even if the user cannot take a corresponding action within the admin area.
This prevents broken themes being hidden when the `DISALLOW_FILE_MODS` constant is in use.

Props rebasaurus

Fixes #49268
Built from https://develop.svn.wordpress.org/trunk@47510


git-svn-id: http://core.svn.wordpress.org/trunk@47285 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2020-03-26 17:50:15 +00:00
Sergey Biryukov 47ed56f38f Code Modernization: Replace `dirname( __FILE__ )` calls with `__DIR__` magic constant.
This avoids the performance overhead of the function call every time `dirname( __FILE__ )` was used instead of `__DIR__`.

This commit also includes:

* Removing unnecessary parentheses from `include`/`require` statements. These are language constructs, not function calls.
* Replacing `include` statements for several files with `require_once`, for consistency:
 * `wp-admin/admin-header.php`
 * `wp-admin/admin-footer.php`
 * `wp-includes/version.php`

Props ayeshrajans, desrosj, valentinbora, jrf, joostdevalk, netweb.
Fixes #48082.
Built from https://develop.svn.wordpress.org/trunk@47198


git-svn-id: http://core.svn.wordpress.org/trunk@46998 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2020-02-06 06:33:11 +00:00
Sergey Biryukov deb1886078 Accessibility: Text Changes: Use sentence case for the word `Error` in various error messages, instead of all caps.
Using all caps should be avoided for better readability and because screen readers may pronounce all-caps words as abbreviations.

Props afercia, ryokuhi, sabernhardt, garrett-eclipse.
See #47656, #43037, #42945.
Built from https://develop.svn.wordpress.org/trunk@47156


git-svn-id: http://core.svn.wordpress.org/trunk@46956 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2020-02-01 21:38:04 +00:00
Sergey Biryukov 001ffe81fb Docs: Improve inline comments per the documentation standards.
Includes minor code layout fixes for better readability.

See #48303.
Built from https://develop.svn.wordpress.org/trunk@47122


git-svn-id: http://core.svn.wordpress.org/trunk@46922 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2020-01-29 00:45:18 +00:00
Sergey Biryukov 1adca958e3 I18N: Remove unnecessary HTML from "Active:" strings in `wp-admin/themes.php`.
Follow-up to [45435].

Props ramiy.
Fixes #49243.
Built from https://develop.svn.wordpress.org/trunk@47090


git-svn-id: http://core.svn.wordpress.org/trunk@46890 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2020-01-20 14:27:04 +00:00
Sergey Biryukov 38ad319fdf I18N: Change context for the "Add New" string on Themes screen for consistency with other similar strings.
Props ramiy.
Fixes #48875.
Built from https://develop.svn.wordpress.org/trunk@46812


git-svn-id: http://core.svn.wordpress.org/trunk@46612 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2019-12-04 10:36:01 +00:00
Sergey Biryukov e199663322 I18N: Capitalize translator comments consistently, add trailing punctuation.
Includes minor code layout fixes.

See #44360.
Built from https://develop.svn.wordpress.org/trunk@45932


git-svn-id: http://core.svn.wordpress.org/trunk@45743 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2019-09-03 00:41:05 +00:00
Sergey Biryukov 16b8d91baa I18N: Improve translator comments.
* Add missing translator comments.
* Fix placement of some translator comments. Translator comments should be on the line directly above the line containing the translation function call for optimal compatibility with various `.pot` file generation tools. The CS auto-fixing, which changed some inconsistent function calls to multi-line function calls, is part of the reason why this was no longer the case for a select group of translator comments.

Includes minor code layout fixes.

Polyglots, rejoice! All WordPress core files now have translator comments for all strings with placeholders!

Props jrf, subrataemfluence, GaryJ, webdados, Dency, swissspidy, alvarogois, marcomartins, mihaiiceyro, vladwtz, niq1982, flipkeijzer, michielatyoast, chandrapatel, thrijith, joshuanoyce, FesoVik, tessak22, bhaktirajdev, cleancoded, dhavalkasvala, garrett-eclipse, bibliofille, socalchristina, priyankkpatel, 5hel2l2y, adamsilverstein, JeffPaul, pierlo, SergeyBiryukov.
Fixes #44360.
Built from https://develop.svn.wordpress.org/trunk@45926


git-svn-id: http://core.svn.wordpress.org/trunk@45737 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2019-09-01 17:13:59 +00:00
Sergey Biryukov 8e85299a00 General: First pass at replacing Codex URLs with a corresponding HelpHub or DevHub article.
Props ianbelanger, tobifjellner, SergeyBiryukov.
See #47771.
Built from https://develop.svn.wordpress.org/trunk@45674


git-svn-id: http://core.svn.wordpress.org/trunk@45485 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2019-07-25 22:45:57 +00:00
Gary Pendergast cf3fa9f7c8 Coding Standards: Fix the `Squiz.PHP.DisallowMultipleAssignments` violations in `wp-admin`.
See #47632.


Built from https://develop.svn.wordpress.org/trunk@45583


git-svn-id: http://core.svn.wordpress.org/trunk@45394 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2019-07-01 12:52:01 +00:00
Gary Pendergast 4487551344 Help: Update support forum links.
There are a lot of places in Core that link to https://wordpress.org/support/ for the support forums, but that's now the URL for HelpHub. The new forums link is https://wordpress.org/support/forums/.

Props jitendrabanjara1991, dilipbheda, mukesh27, ianbelanger.
Fixes #46790.


Built from https://develop.svn.wordpress.org/trunk@45140


git-svn-id: http://core.svn.wordpress.org/trunk@44949 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2019-04-08 22:59:56 +00:00
Felix Arntz 3a77265148 Bootstrap/Load: Introduce a recovery mode for fixing fatal errors.
Using the new fatal handler introduced in [44962], an email is sent to the admin when a fatal error occurs. This email includes a secret link to enter recovery mode. When clicked, the link will be validated and on success a cookie will be placed on the client, enabling recovery mode for that user. This functionality is executed early before plugins and themes are loaded, in order to be unaffected by potential fatal errors these might be causing.

When in recovery mode, broken plugins and themes will be paused for that client, so that they are able to access the admin backend despite of these errors. They are notified about the broken extensions and the errors caused, and can then decide whether they would like to temporarily deactivate the extension or fix the problem and resume the extension.

A link in the admin bar allows the client to exit recovery mode.

Props timothyblynjacobs, afragen, flixos90, nerrad, miss_jwo, schlessera, spacedmonkey, swissspidy.
Fixes #46130, #44458.

Built from https://develop.svn.wordpress.org/trunk@44973


git-svn-id: http://core.svn.wordpress.org/trunk@44804 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2019-03-21 21:53:51 +00:00
Felix Arntz 92c3c46abe Bootstrap/Load: Revert fatal error recovery mechanism from 5.1 to polish for 5.2.
Due to the high number of follow-up tickets and associated security concerns, it was decided to reschedule the fatal error recovery feature for WordPress 5.2, in order to address these issues properly. The feature will continue to be developed, with iterations being merged into trunk early in the 5.2 release cycle.

Fixes #46141. See #44458, #45932, #45940, #46038, #46047, #46068.

Built from https://develop.svn.wordpress.org/trunk@44717


git-svn-id: http://core.svn.wordpress.org/trunk@44548 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2019-01-30 11:01:52 +00:00
Felix Arntz 1e4088fc98 Bootstrap/Load: Introduce fatal error recovery mechanism allowing users to still log in to their admin dashboard.
This changeset introduces a `WP_Shutdown_Handler` class that detects fatal errors and which extension (plugin or theme) causes them. Such an error is then recorded, and an error message is displayed. Subsequently, in certain protected areas, for example the admin, the broken extension will be paused, ensuring that the website is still usable in the respective area. The major benefit is that this mechanism allows site owners to still log in to their website, to fix the problem by either disabling the extension or solving the bug and then resuming the extension.

Extensions are only paused in certain designated areas. The frontend for example stays unaffected, as it is impossible to know what pausing the extension would cause to be missing, so it might be preferrable to clearly see that the website is temporarily not accessible instead.

The fatal error recovery is especially important in scope of encouraging the switch to a maintained PHP version, as not necessarily every WordPress extension is compatible with all PHP versions. If problems occur now, non-technical site owners that do not have immediate access to the codebase are not locked out of their site and can at least temporarily solve the problem quickly.

Websites that have custom requirements in that regard can implement their own shutdown handler by adding a `shutdown-handler.php` drop-in that returns the handler instance to use, which must be based on a class that inherits `WP_Shutdown_Handler`. That handler will then be used in place of the default one.

Websites that would like to modify specifically the error template displayed in the frontend can add a `php-error.php` drop-in that works similarly to the existing `db-error.php` drop-in.

Props afragen, bradleyt, flixos90, ocean90, schlessera, SergeyBiryukov, spacedmonkey.
Fixes #44458.

Built from https://develop.svn.wordpress.org/trunk@44524


git-svn-id: http://core.svn.wordpress.org/trunk@44355 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2019-01-09 20:05:49 +00:00