Commit Graph

143 Commits

Author SHA1 Message Date
Sergey Biryukov
27098883f9 Themes: Make sure the theme API response is not an error before operating on it in themes_api().
This fixes a potential bug and avoids PHP warnings when `themes_api( 'query_themes' )` is called and a successful API response is not received.

Follow-up to [42632].

Props pierlo.
Fixes #53913.

git-svn-id: https://develop.svn.wordpress.org/trunk@51601 602fd350-edb4-49c9-b593-d223f7449a82
2021-08-11 13:00:46 +00:00
Sergey Biryukov
2905c5a9bc Themes: Add "Template Editing" to the list of WordPress theme features.
Follow-up to [meta11158].

Props poena, desrosj.
Fixes #53556. See #meta5802.

git-svn-id: https://develop.svn.wordpress.org/trunk@51510 602fd350-edb4-49c9-b593-d223f7449a82
2021-07-29 14:46:48 +00:00
Jonathan Desrosiers
d5407ec719 Docs: Use correct @since tag notation.
This corrects the version number specified by the `@since` tag for the `delete_theme` and `deleted_theme` action hooks introduced in [50826] to contain a full, 3 digit version.

Props ocean90.
See #16401.

git-svn-id: https://develop.svn.wordpress.org/trunk@50827 602fd350-edb4-49c9-b593-d223f7449a82
2021-05-07 18:24:23 +00:00
Jonathan Desrosiers
d6a37f9046 Themes: Introduce the delete_theme and deleted_theme action hooks.
This change introduces the `delete_theme` and `deleted_theme` action hooks, which fire immediately before and after an attempt to delete a theme, respectively.

Props scottconnerly, ptahdunbar, pbiron, vetyst, desrosj.
Fixes #16401.

git-svn-id: https://develop.svn.wordpress.org/trunk@50826 602fd350-edb4-49c9-b593-d223f7449a82
2021-05-07 16:08:42 +00:00
Sergey Biryukov
aaf3fc57fc Docs: Document the usage of $pagenow global in a few functions.
See #51800.

git-svn-id: https://develop.svn.wordpress.org/trunk@50407 602fd350-edb4-49c9-b593-d223f7449a82
2021-02-22 19:16:07 +00:00
Helen Hou-Sandi
29394d8a25 Upgrade/Install: Don't show theme update prompts on subsites.
If you are using `wp_prepare_themes_for_js()` and relying on `updates`/`no_updates` in multisite, you will need to filter that data back in using the `wp_prepare_themes_for_js` hook.

Props pbiron, afragen.
Fixes #49831.


git-svn-id: https://develop.svn.wordpress.org/trunk@49253 602fd350-edb4-49c9-b593-d223f7449a82
2020-10-20 19:12:54 +00:00
Sergey Biryukov
6b5b87db58 Upgrade/Install: Introduce a wrapper for the auto_update_{$type} filter checks.
This allows for cleaner checks whether auto-updates are forced for a plugin or theme.

Follow-up to [48750].

Props rebasaurus, garrett-eclipse, SergeyBiryukov.
Fixes #50875.

git-svn-id: https://develop.svn.wordpress.org/trunk@49241 602fd350-edb4-49c9-b593-d223f7449a82
2020-10-20 17:37:16 +00:00
John Blackbourn
74688add2c Themes: Remove the ability to delete themes from the single site Appearance screen on Multisite installations.
This brings theme deletion inline with plugin deletion and theme and plugin editing, which can only be performed from within Network Admin.

Props Mista-Flo, williampatton, johnbillion

Fixes #41441


git-svn-id: https://develop.svn.wordpress.org/trunk@49011 602fd350-edb4-49c9-b593-d223f7449a82
2020-09-20 12:01:32 +00:00
Sergey Biryukov
8c11d506e1 Docs: Correct usage of the dynamic auto_update_{$type} filter.
This ensures that the canonical name of the filter is used in Site Health debug data, as well as on plugin and theme screens, so the developer reference site remains correct.

Props johnbillion.
Fixes #50868.

git-svn-id: https://develop.svn.wordpress.org/trunk@48750 602fd350-edb4-49c9-b593-d223f7449a82
2020-08-07 16:12:11 +00:00
Jake Spurlock
20ac5dd62d 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.


git-svn-id: https://develop.svn.wordpress.org/trunk@48688 602fd350-edb4-49c9-b593-d223f7449a82
2020-07-29 19:59:30 +00:00
Sergey Biryukov
d67c469b0d Themes: Include theme name in available update messages, for better accessibility and consistency with other similar messages.
Follow-up to [48652-48654].

See #48491.

git-svn-id: https://develop.svn.wordpress.org/trunk@48659 602fd350-edb4-49c9-b593-d223f7449a82
2020-07-28 11:29:28 +00:00
Sergey Biryukov
7ea44b5add 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.

git-svn-id: https://develop.svn.wordpress.org/trunk@48652 602fd350-edb4-49c9-b593-d223f7449a82
2020-07-28 00:08:00 +00:00
Sergey Biryukov
3b0b11acc6 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.

git-svn-id: https://develop.svn.wordpress.org/trunk@48636 602fd350-edb4-49c9-b593-d223f7449a82
2020-07-27 13:10:04 +00:00
Sergey Biryukov
5674e7e085 I18N: Add context to some plugin and theme strings for consistency.
Props ramiy, audrasjb.
Fixes #50710.

git-svn-id: https://develop.svn.wordpress.org/trunk@48520 602fd350-edb4-49c9-b593-d223f7449a82
2020-07-20 23:12:33 +00:00
Sergey Biryukov
cdf3431ac9 Docs: Remove @staticvar tags from core.
The tag was supported in phpDocumentor 1.x, but is no longer supported in 2.x and 3.x.

Usage of static variables is considered an internal implementation detail and has no information value for someone reading the docs.

Props alishanvr, jrf.
Fixes #50426.

git-svn-id: https://develop.svn.wordpress.org/trunk@48109 602fd350-edb4-49c9-b593-d223f7449a82
2020-06-20 12:38:55 +00:00
Sergey Biryukov
3bdf8b7b02 Docs: Consistently include an empty line between @since tag and @see, @link, or @global, per the documentation standards.
See #49572.

git-svn-id: https://develop.svn.wordpress.org/trunk@48067 602fd350-edb4-49c9-b593-d223f7449a82
2020-06-16 21:05:20 +00:00
Jake Spurlock
eb79d7f1ee 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.


git-svn-id: https://develop.svn.wordpress.org/trunk@47835 602fd350-edb4-49c9-b593-d223f7449a82
2020-05-20 18:47:24 +00:00
Sergey Biryukov
a60b30444f Themes: Prevent installation of themes that require a higher version of PHP or WordPress.
Props afragen.
Fixes #49653. See #48491.

git-svn-id: https://develop.svn.wordpress.org/trunk@47819 602fd350-edb4-49c9-b593-d223f7449a82
2020-05-18 16:01:38 +00:00
Sergey Biryukov
581bc56b16 Themes: Remove extra whitespace from wp-admin/includes/ajax-actions.php and wp-admin/includes/theme.php.
Follow-up to [47816].

See #48491.

git-svn-id: https://develop.svn.wordpress.org/trunk@47818 602fd350-edb4-49c9-b593-d223f7449a82
2020-05-18 12:53:34 +00:00
Sergey Biryukov
b91e74d2f6 Themes: Prevent activation and live preview of themes that require a higher version of PHP or WordPress.
Props afragen, jorbin, TimothyBlynJacobs, SergeyBiryukov.
See #48491.

git-svn-id: https://develop.svn.wordpress.org/trunk@47816 602fd350-edb4-49c9-b593-d223f7449a82
2020-05-18 12:30:04 +00:00
Sergey Biryukov
6742d0d7a6 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.

git-svn-id: https://develop.svn.wordpress.org/trunk@47808 602fd350-edb4-49c9-b593-d223f7449a82
2020-05-16 18:40:52 +00:00
SergeyBiryukov
7fcb660015 Themes: Add "Block Editor Patterns" and "Full Site Editing" to the list of WordPress theme features.
Follow-up to [meta9876].

Props dingo_d.
Fixes #50164. See #meta5212.

git-svn-id: https://develop.svn.wordpress.org/trunk@47797 602fd350-edb4-49c9-b593-d223f7449a82
2020-05-14 14:41:02 +00:00
Sergey Biryukov
783c936d68 Docs: Add @since notes for theme features added or removed in get_theme_feature_list() after its introduction in WordPress 3.1.
See #50165.

git-svn-id: https://develop.svn.wordpress.org/trunk@47794 602fd350-edb4-49c9-b593-d223f7449a82
2020-05-14 12:49:00 +00:00
Sergey Biryukov
5adac72f47 Themes: Add "Block Editor Styles" and "Wide Blocks" to the list of WordPress theme features.
These were added to Theme Directory API in anticipation of being committed to core for WordPress 5.2+, which has not happened until now.

Follow-up to [meta8273].

See #46272.

git-svn-id: https://develop.svn.wordpress.org/trunk@47790 602fd350-edb4-49c9-b593-d223f7449a82
2020-05-14 09:16:45 +00:00
Sergey Biryukov
e72fff9cef 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.

git-svn-id: https://develop.svn.wordpress.org/trunk@47198 602fd350-edb4-49c9-b593-d223f7449a82
2020-02-06 06:31:22 +00:00
Sergey Biryukov
cfc3b57488 Docs: Improve inline comments per the documentation standards.
Includes minor code layout fixes for better readability.

See #48303.

git-svn-id: https://develop.svn.wordpress.org/trunk@47122 602fd350-edb4-49c9-b593-d223f7449a82
2020-01-29 00:43:23 +00:00
Sergey Biryukov
4c2ee4e9ff Docs: In various @return tags, list the expected type first, instead of false.
Follow-up to [46696].

See #48303.

git-svn-id: https://develop.svn.wordpress.org/trunk@47060 602fd350-edb4-49c9-b593-d223f7449a82
2020-01-11 18:30:58 +00:00
John Blackbourn
46581088d5 Docs: Docs on docs. Further improve documentation of known return types, plus other docs fixes.
See #48303


git-svn-id: https://develop.svn.wordpress.org/trunk@46662 602fd350-edb4-49c9-b593-d223f7449a82
2019-11-05 21:28:51 +00:00
John Blackbourn
6bd7097626 Docs: Docblock corrections and improvements, mostly related to various pre_* filters.
See #47110


git-svn-id: https://develop.svn.wordpress.org/trunk@46232 602fd350-edb4-49c9-b593-d223f7449a82
2019-09-21 17:40:58 +00:00
Sergey Biryukov
00b03f2a6f I18N: Capitalize translator comments consistently, add trailing punctuation.
Includes minor code layout fixes.

See #44360.

git-svn-id: https://develop.svn.wordpress.org/trunk@45932 602fd350-edb4-49c9-b593-d223f7449a82
2019-09-03 00:39:13 +00:00
Sergey Biryukov
a7513ac8e0 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.

git-svn-id: https://develop.svn.wordpress.org/trunk@45926 602fd350-edb4-49c9-b593-d223f7449a82
2019-09-01 17:12:43 +00:00
Gary Pendergast
9a1549767e Coding Standards: Fix the Squiz.PHP.DisallowMultipleAssignments violations in wp-admin.
See #47632.



git-svn-id: https://develop.svn.wordpress.org/trunk@45583 602fd350-edb4-49c9-b593-d223f7449a82
2019-07-01 12:50:14 +00:00
Sergey Biryukov
a6fa4b5491 General: 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/.

This is a follow-up to [45140], which changed the links in help tabs.

Props dilipbheda.
Fixes #47239. See #46790.

git-svn-id: https://develop.svn.wordpress.org/trunk@45412 602fd350-edb4-49c9-b593-d223f7449a82
2019-05-25 14:23:27 +00:00
Jonathan Desrosiers
3da0d67f80 I18N: Combine similar strings with minor differences.
Props dimadin.
Fixes #47158.

git-svn-id: https://develop.svn.wordpress.org/trunk@45298 602fd350-edb4-49c9-b593-d223f7449a82
2019-05-09 19:47:28 +00:00
Felix Arntz
075a85c05e Bootstrap/Load: Do not redefine constants because tests don't like it.
See #46045.


git-svn-id: https://develop.svn.wordpress.org/trunk@45116 602fd350-edb4-49c9-b593-d223f7449a82
2019-04-05 15:52:39 +00:00
Felix Arntz
7f6adbb345 Bootstrap/Load: Ensure WP_Fatal_Error_Handler does not conflict with existing mechanisms treating fatal errors.
Prior to this change, resuming or activating a plugin or theme that is still broken would result in a redirect loop if in recovery mode. If outside recovery mode, it would cause the error template to be displayed.

Furthermore this applies to breaking a plugin or theme when editing from the backend.

Props aandrewdixon, azaozz, dhanukanuwan, henrywright, ocean90, ohiosierra, PandelisZ, xkon.
Fixes #46045, #46751.


git-svn-id: https://develop.svn.wordpress.org/trunk@45114 602fd350-edb4-49c9-b593-d223f7449a82
2019-04-05 15:19:50 +00:00
Sergey Biryukov
fa0190bcb1 Customize: Add a link to theme reviews in the theme details modal in the Customizer and on Add Themes screen.
Props celloexpressions, Travel_girl, Ixium, marco-peralta, dd32.
Fixes #36612.

git-svn-id: https://develop.svn.wordpress.org/trunk@44975 602fd350-edb4-49c9-b593-d223f7449a82
2019-03-21 22:01:42 +00:00
Felix Arntz
1f3912e9bf 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.


git-svn-id: https://develop.svn.wordpress.org/trunk@44973 602fd350-edb4-49c9-b593-d223f7449a82
2019-03-21 21:52:07 +00:00
Felix Arntz
0612ea2d38 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.


git-svn-id: https://develop.svn.wordpress.org/trunk@44717 602fd350-edb4-49c9-b593-d223f7449a82
2019-01-30 11:00:30 +00:00
Dominik Schilling (ocean90)
51726c6092 I18N: Remove JSON translations when deleting a theme or a plugin.
See #29860.
Fixes #45467.

git-svn-id: https://develop.svn.wordpress.org/trunk@44675 602fd350-edb4-49c9-b593-d223f7449a82
2019-01-21 20:40:56 +00:00
Gary Pendergast
73cbf3ec7d Docs: Add missing periods to a grab-bag of docblocks.
Props Hitendra Chopda.
Fixes #45409.



git-svn-id: https://develop.svn.wordpress.org/trunk@44643 602fd350-edb4-49c9-b593-d223f7449a82
2019-01-18 01:02:11 +00:00
Felix Arntz
fc37b1746e 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.


git-svn-id: https://develop.svn.wordpress.org/trunk@44524 602fd350-edb4-49c9-b593-d223f7449a82
2019-01-09 20:04:55 +00:00
Gary Pendergast
a75d153eee Coding Standards: Upgrade WPCS to 1.0.0
WPCS 1.0.0 includes a bunch of new auto-fixers, which drops the number of coding standards issues across WordPress significantly. Prior to running the auto-fixers, there were 15,312 issues detected. With this commit, we now drop to 4,769 issues.

This change includes three notable additions:
- Multiline function calls must now put each parameter on a new line.
- Auto-formatting files is now part of the `grunt precommit` script. 
- Auto-fixable coding standards issues will now cause Travis failures.

Fixes #44600.



git-svn-id: https://develop.svn.wordpress.org/trunk@43571 602fd350-edb4-49c9-b593-d223f7449a82
2018-08-17 01:50:26 +00:00
Sergey Biryukov
a8a0adbaf7 Docs: Remove backtick-escaping around a core function in the hook docs for the pre_prepare_themes_for_js filter.
This allows the function to be auto-linked in the Developer Reference. Added in [42877].

See #42505.

git-svn-id: https://develop.svn.wordpress.org/trunk@43024 602fd350-edb4-49c9-b593-d223f7449a82
2018-04-29 21:46:54 +00:00
John Blackbourn
cf400b9bc4 Docs: Correct and improve various inline documentation.
See #42505


git-svn-id: https://develop.svn.wordpress.org/trunk@42877 602fd350-edb4-49c9-b593-d223f7449a82
2018-03-25 19:34:31 +00:00
John Blackbourn
d541798a64 Docs: Document more parameters and properties using typed array notation.
See #41756


git-svn-id: https://develop.svn.wordpress.org/trunk@42875 602fd350-edb4-49c9-b593-d223f7449a82
2018-03-25 18:09:56 +00:00
Sergey Biryukov
2d37bd46ec Docs: Expand delete_theme() return value, fix typo in delete_plugins() return value.
See #42505.

git-svn-id: https://develop.svn.wordpress.org/trunk@42778 602fd350-edb4-49c9-b593-d223f7449a82
2018-03-04 22:06:46 +00:00
Sergey Biryukov
e0b16ef59c Docs: Use consistent description for $wp_filesystem global.
See #42505.

git-svn-id: https://develop.svn.wordpress.org/trunk@42777 602fd350-edb4-49c9-b593-d223f7449a82
2018-03-04 21:57:10 +00:00
Sergey Biryukov
1cc516f2e8 General: Introduce WP_Error::has_errors() method and use it where appropriate.
Props robdxw, DrewAPicture, SergeyBiryukov.
Fixes #42742.

git-svn-id: https://develop.svn.wordpress.org/trunk@42761 602fd350-edb4-49c9-b593-d223f7449a82
2018-02-27 02:30:46 +00:00
Sergey Biryukov
b252154091 Customize: Correct closing tags in customize_themes_print_templates().
Props johnpgreen, nandorsky.
Fixes #43307.

git-svn-id: https://develop.svn.wordpress.org/trunk@42711 602fd350-edb4-49c9-b593-d223f7449a82
2018-02-13 22:14:36 +00:00