Commit Graph

184 Commits

Author SHA1 Message Date
John Blackbourn
ec5ed03bf6 Docs: Miscellaneous docblock improvements.
See #53399


git-svn-id: https://develop.svn.wordpress.org/trunk@51955 602fd350-edb4-49c9-b593-d223f7449a82
2021-10-29 23:11:32 +00:00
Peter Wilson
2a02de7d53 Upgrade/Install: Notify users of deactivated plugins during upgrade.
This adds a one-off notice to the dashboard in the event WordPress has automatically deactivated a plugin due to incompatibility with the new version of WordPress.

Introduces the new private function `deactivated_plugins_notice()` to display the notice in the dashboard. Introduces the new auto-loaded option `wp_force_deactivated_plugins` to store a list of automatically deactivated plugins; the option is used on both a site and network level.

Follow up to [51180].

Props desrosj, jorbin, azaozz, SergeyBiryukov, peterwilsoncc.
See #53432.



git-svn-id: https://develop.svn.wordpress.org/trunk@51266 602fd350-edb4-49c9-b593-d223f7449a82
2021-06-30 00:20:52 +00:00
Sergey Biryukov
38d47a9979 Upgrade/Install: Remove parsing of readme.txt files for plugin or theme requirements.
This affects:
* `validate_plugin_requirements()`
* `validate_theme_requirements()`

Historically, the `Requires PHP` header was introduced in #meta2952 for the Plugin Directory first, so at the time it made sense to have it defined in the same place as `Requires at least`, which only existed in `readme.txt`. 

Since parsing of PHP and WordPress requirements was later added to WordPress core, the core should retrieve all the necessary data from the main plugin or theme file and not from `readme.txt`, which only contains the data meant for the Plugin or Theme Directory.

The recommended place for `Requires PHP` and `Requires at least` headers is as follows:
* The plugin's main PHP file
* The theme's `style.css` file

The place for the `Tested up to` header remains in `readme.txt` for the time being, as it's not used by WordPress core.

Follow-up to [44978], [45546], [47573], [47574], [meta5841], [meta9050].

Props afragen, Otto42, joyously, williampatton, audrasjb.
Fixes #48520. See #48515, #meta2952, #meta4514, #meta4621.

git-svn-id: https://develop.svn.wordpress.org/trunk@51092 602fd350-edb4-49c9-b593-d223f7449a82
2021-06-08 10:11:49 +00:00
Sergey Biryukov
e37b85fcd7 Plugins: Make sure Hello Dolly translations are deleted when the plugin is deleted.
Follow-up to [19965], [29856].

Props costdev, Otshelnik-Fm, JeffPaul, SergeyBiryukov.
Fixes #52817.

git-svn-id: https://develop.svn.wordpress.org/trunk@51064 602fd350-edb4-49c9-b593-d223f7449a82
2021-06-02 15:11:54 +00:00
Sergey Biryukov
0f45b89ffd Plugins: Add support for Update URI header.
This allows third-party plugins to avoid accidentally being overwritten with an update of a plugin of a similar name from the WordPress.org Plugin Directory.

Additionally, introduce the `update_plugins_{$hostname}` filter, which third-party plugins can use to offer updates for a given hostname.

If set, the `Update URI` header field should be a URI and have a unique hostname.

Some examples include:

* `https://wordpress.org/plugins/example-plugin/`
* `https://example.com/my-plugin/`
* `my-custom-plugin-name`

`Update URI: false` also works, and unless there is code handling the `false` hostname, the plugin will never get an update notification.

If the header is present, the WordPress.org API will currently only return updates for the plugin if it matches the following format:

* `https://wordpress.org/plugins/{$slug}/`
* `w.org/plugin/{$slug}`

If the header has any other value, the API will not return a result and will ignore the plugin for update purposes.

Props dd32, DavidAnderson, meloniq, markjaquith, DrewAPicture, mweichert, design_dolphin, filosofo, sean212, nhuja, JeroenReumkens, infolu, dingdang, joyously, earnjam, williampatton, grapplerulrich, markparnell, apedog, afragen, miqrogroove, rmccue, crazycoders, jdgrimes, damonganto, joostdevalk, jorbin, georgestephanis, khromov, GeekStreetWP, jb510, Rarst, juliobox, Ipstenu, mikejolley, Otto42, gMagicScott, TJNowell, GaryJ, knutsp, mordauk, nvartolomei, aspexi, chriscct7, benoitchantre, ryno267, lev0, gregorlove, dougwollison, SergeyBiryukov.
See #14179, #23318, #32101.

git-svn-id: https://develop.svn.wordpress.org/trunk@50921 602fd350-edb4-49c9-b593-d223f7449a82
2021-05-17 17:02:49 +00:00
Sergey Biryukov
32ca843154 Plugins: When loading a plugin in a "sandbox" on activation, do it once.
This avoids a fatal error if the plugin is already included, e.g. in unit tests.

Follow-up to [50787].

See #31104.

git-svn-id: https://develop.svn.wordpress.org/trunk@50788 602fd350-edb4-49c9-b593-d223f7449a82
2021-04-25 13:19:54 +00:00
Sergey Biryukov
93290c44f6 Plugins: When loading a plugin in a "sandbox" on activation, do it in a separate function.
This avoids accidentally overriding some variables in the scope of `activate_plugin()`, e.g. `$silent` or `$network_wide`.

Plugins expecting to have access to `$network_wide` directly on inclusion should receive it as an argument of the activation hook callback instead, on any of these actions:

* `activate_plugin`
* `activate_{$plugin}`
* `activated_plugin`

Follow-up to [28644].

Props Mike_Cowobo, dd32, DrewAPicture, mensmaximus, SergeyBiryukov.
Fixes #31104.

git-svn-id: https://develop.svn.wordpress.org/trunk@50787 602fd350-edb4-49c9-b593-d223f7449a82
2021-04-24 18:02:39 +00:00
Sergey Biryukov
4fadd1f574 Coding Standards: Consistently format opendir() calls in get_plugins().
Props sabernhardt, subrataemfluence.
Fixes #44250.

git-svn-id: https://develop.svn.wordpress.org/trunk@50522 602fd350-edb4-49c9-b593-d223f7449a82
2021-03-11 15:17:56 +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
John Blackbourn
8153c8ba02 Docs: Corrections and improvements to types used in various docblocks.
See #51800, #52217


git-svn-id: https://develop.svn.wordpress.org/trunk@49936 602fd350-edb4-49c9-b593-d223f7449a82
2021-01-05 17:14:24 +00:00
John Blackbourn
679ccc35e6 Docs: Promote many bool types to true or false where only that value is used.
See #51800


git-svn-id: https://develop.svn.wordpress.org/trunk@49927 602fd350-edb4-49c9-b593-d223f7449a82
2021-01-03 22:02:13 +00:00
Dominik Schilling
798a3ba35e Administration: Restore alternative admin menu position for menu items with the same position value as an existing menu item.
Reverts parts of [49108].

Props johnjamesjacoby.
Fixes #42918.

git-svn-id: https://develop.svn.wordpress.org/trunk@49138 602fd350-edb4-49c9-b593-d223f7449a82
2020-10-13 19:57:10 +00:00
Sergey Biryukov
79703088c4 General: Replace older-style PHP type conversion functions with type casts.
This improves performance, readability, and consistency throughout core.

* `intval()` → `(int)`
* `strval()` → `(string)`
* `floatval()` → `(float)`

Props ayeshrajans.
Fixes #42918.

git-svn-id: https://develop.svn.wordpress.org/trunk@49108 602fd350-edb4-49c9-b593-d223f7449a82
2020-10-08 21:13:57 +00:00
Sergey Biryukov
af9db19b45 Docs: Correct @since version for add_allowed_options().
Follow-up to [48121].

Props coffee2code.
Fixes #51450.

git-svn-id: https://develop.svn.wordpress.org/trunk@49096 602fd350-edb4-49c9-b593-d223f7449a82
2020-10-06 15:53:25 +00:00
Sergey Biryukov
f556437ef4 Coding Standards: Remove a few more extra brackets from some conditions in wp-admin/includes/plugin.php.
Follow-up to [48764].

See #50767.

git-svn-id: https://develop.svn.wordpress.org/trunk@48766 602fd350-edb4-49c9-b593-d223f7449a82
2020-08-09 01:54:28 +00:00
Sergey Biryukov
18c0692773 Coding Standards: Fix WPCS issues in wp-admin/includes/plugin.php.
Includes minor code layout fixes for better readability.

Props rnaby for initial patch.
See #50767, #43848.

git-svn-id: https://develop.svn.wordpress.org/trunk@48764 602fd350-edb4-49c9-b593-d223f7449a82
2020-08-08 21:02:18 +00:00
Sergey Biryukov
9eb6dd69c8 Coding Standards: Simplify some parts of user_can_access_admin_page() for better readability.
Props rnaby, valentinbora, khag7.
Fixes #43848.

git-svn-id: https://develop.svn.wordpress.org/trunk@48762 602fd350-edb4-49c9-b593-d223f7449a82
2020-08-08 20:22:34 +00:00
John Blackbourn
5e35ad2510 Docs: Various formatting improvements to inline docblocks.
See #49572

git-svn-id: https://develop.svn.wordpress.org/trunk@48574 602fd350-edb4-49c9-b593-d223f7449a82
2020-07-23 00:50:57 +00:00
Jonathan Desrosiers
857d34590a General: Rename remove_option_allowed_list() to remove_allowed_options().
This was missed in [48142] which renamed `add_option_allowed_list()` to `add_allowed_options()` for better readability. The two functions should have consistent names.

See #50413.

git-svn-id: https://develop.svn.wordpress.org/trunk@48566 602fd350-edb4-49c9-b593-d223f7449a82
2020-07-22 18:50:30 +00:00
Jake Spurlock
162afe2451 Administration: Fix an index inconsistency in get_admin_page_title() function.
Ensure that `get_admin_page_title()` returns a value from pages registered using `add_menu_page()`.

Fixes #46081.

Props grapestain, valentinbora, SergeyBiryukov, audrasjb.



git-svn-id: https://develop.svn.wordpress.org/trunk@48500 602fd350-edb4-49c9-b593-d223f7449a82
2020-07-16 22:13:54 +00:00
Jonathan Desrosiers
7bdff387e2 General: Rename the $new_whitelist_options global variable.
This change renames `$new_whitelist_options` to `$new_allowed_options`. This makes the variable’s purpose more clear, and promotes using more inclusive language.

For backwards compatibility, the new variable is passed by reference to the old one.

Follow up to [48121].

Props ayeshrajans, desrosj, jorbin, SergeyBiryukov.
See #50413.
Fixes #50434.

git-svn-id: https://develop.svn.wordpress.org/trunk@48477 602fd350-edb4-49c9-b593-d223f7449a82
2020-07-14 12:31:22 +00:00
Sergey Biryukov
b1b1b08e43 Plugins: Use include_once instead of include in uninstall_plugin(), in case the plugin file is already included.
Props valchovski, pcfreak30.
Fixes #47796.

git-svn-id: https://develop.svn.wordpress.org/trunk@48326 602fd350-edb4-49c9-b593-d223f7449a82
2020-07-05 20:30:18 +00:00
Sergey Biryukov
be8b93c269 Site Health: Improve the error message displayed when activating a plugin that requires a higher version of PHP or WordPress.
This adds some extra details to the message:

* The current PHP or WordPress version.
* The plugin's minimum required PHP or WordPress version.
* A link to the support documentation on how to update PHP.

Props stuffradio, johnbillion, garrett-eclipse, sabernhardt, williampatton, SergeyBiryukov.
Fixes #48245.

git-svn-id: https://develop.svn.wordpress.org/trunk@48172 602fd350-edb4-49c9-b593-d223f7449a82
2020-06-26 00:25:15 +00:00
Jonathan Desrosiers
19c9963d9d General: Rename (add|remove)_option_allowed_list() to (add|remove)_allowed_option().
The new names make the purpose more clear. It also adds consistency with the `$allowed_options` global variable.

Also in this change, the `wp-deprecated` dependency has been removed from the password strength meter in favor of a `window.console.log()` call to avoid adding 3 dependencies for one deprecated notice.

Props SergeyBiryukov, ocean90, desrosj
Fixes #50413.

git-svn-id: https://develop.svn.wordpress.org/trunk@48142 602fd350-edb4-49c9-b593-d223f7449a82
2020-06-23 18:53:00 +00:00
Jonathan Desrosiers
e26394bb2d General: Remove “whitelist” and “blacklist” in favor of more clear and inclusive language.
“The WordPress open source community cares about diversity. We strive to maintain a welcoming environment where everyone can feel included.”

With this commit, all occurrences of “whitelist” and “blacklist” (with the single exception of the `$new_whitelist_options` global variable) are removed. A new ticket has been opened to explore renaming the `$new_whitelist_options` variable (#50434).

Changing to more specific names or rewording sentences containing these terms not only makes the code more inclusive, but also helps provide clarity. These terms are often ambiguous. What is being blocked or allowed is not always immediately clear. This can make it more difficult for non-native English speakers to read through the codebase.

Words matter. If one contributor feels more welcome because these terms are removed, this was worth the effort.

Props strangerstudios, jorbin, desrosj, joemcgill, timothyblynjacobs, ocean90, ayeshrajans, davidbaumwald, earnjam.
See #48900, #50434.
Fixes #50413.

git-svn-id: https://develop.svn.wordpress.org/trunk@48121 602fd350-edb4-49c9-b593-d223f7449a82
2020-06-22 17:24:34 +00:00
Andrea Fercia
98d22d5d3d 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.


git-svn-id: https://develop.svn.wordpress.org/trunk@48115 602fd350-edb4-49c9-b593-d223f7449a82
2020-06-21 13:58:46 +00:00
Sergey Biryukov
e27ad0f007 Docs: Miscellaneous DocBlock corrections for plugin and theme installation and updates.
See #49572.

git-svn-id: https://develop.svn.wordpress.org/trunk@48105 602fd350-edb4-49c9-b593-d223f7449a82
2020-06-20 12:12:39 +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
Andrea Fercia
50ece6d31c 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.


git-svn-id: https://develop.svn.wordpress.org/trunk@48059 602fd350-edb4-49c9-b593-d223f7449a82
2020-06-16 15:33:37 +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
Sergey Biryukov
d419b1b6d6 Plugins: Simplify the logic of validate_plugin_requirements(), update documentation.
This updates the function for consistency with `validate_theme_requirements()`.

Follow-up to [44978], [45546], [47573].

Fixes #43992.

git-svn-id: https://develop.svn.wordpress.org/trunk@47574 602fd350-edb4-49c9-b593-d223f7449a82
2020-04-13 15:29:17 +00:00
Sergey Biryukov
d8c502e966 Coding Standards: Use strict type check for in_array() and array_search().
This addresses all the remaining `WordPress.PHP.StrictInArray.MissingTrueStrict` issues in core.

Includes minor code layout fixes for better readability.

Follow-up to [47550].

See #49542.

git-svn-id: https://develop.svn.wordpress.org/trunk@47557 602fd350-edb4-49c9-b593-d223f7449a82
2020-04-09 15:41:04 +00:00
Sergey Biryukov
0b4e2c4604 Coding Standards: Use strict type check for in_array() and array_search() where strings are involved.
This reduces the number of `WordPress.PHP.StrictInArray.MissingTrueStrict` issues from 486 to 50.

Includes minor code layout fixes for better readability.

See #49542.

git-svn-id: https://develop.svn.wordpress.org/trunk@47550 602fd350-edb4-49c9-b593-d223f7449a82
2020-04-05 03:00:44 +00:00
Sergey Biryukov
178e16e33a Docs: Add documentation for the $parent parameter of get_admin_page_parent().
Props subrataemfluence.
Fixes #45849.

git-svn-id: https://develop.svn.wordpress.org/trunk@47546 602fd350-edb4-49c9-b593-d223f7449a82
2020-04-03 17:21:25 +00:00
Sergey Biryukov
130751cda3 Coding Standards: Use Yoda conditions where appropriate.
See #49222.

git-svn-id: https://develop.svn.wordpress.org/trunk@47219 602fd350-edb4-49c9-b593-d223f7449a82
2020-02-09 16:52:28 +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
6bdc961d5f Docs: Improve comments in some wp-admin files per the documentation standards.
Follow-up to [47084].

Props passoniate, apedog.
Fixes #49223, #49227.

git-svn-id: https://develop.svn.wordpress.org/trunk@47119 602fd350-edb4-49c9-b593-d223f7449a82
2020-01-29 00:33:45 +00:00
Sergey Biryukov
191f798201 Docs: Remove extra trailing spaces from wp_add_privacy_policy_content() DocBlock to fix WPCS issues, apply minor formatting changes for consistency.
Follow-up to [47112].

See #49282.

git-svn-id: https://develop.svn.wordpress.org/trunk@47113 602fd350-edb4-49c9-b593-d223f7449a82
2020-01-27 01:04:08 +00:00
Andrew Ozz
9224e14e67 Privacy: Cleanup .wp-policy-help CSS remnants and add back-compat when hiding the tutorial content before copying.
Props garrett-eclipse.
Fixes #49282.

git-svn-id: https://develop.svn.wordpress.org/trunk@47112 602fd350-edb4-49c9-b593-d223f7449a82
2020-01-26 23:00:54 +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
Sergey Biryukov
c273108570 Docs: Improve documentation for admin menu functions:
* `get_admin_page_parent()`
* `get_admin_page_title()`
* `get_plugin_page_hook()`
* `get_plugin_page_hookname()`
* `user_can_access_admin_page()`

Add missing descriptions and `@since` tags.

Props subrataemfluence, kennithnichol, stevenlinx, SergeyBiryukov.
Fixes #44253, #49067.

git-svn-id: https://develop.svn.wordpress.org/trunk@47006 602fd350-edb4-49c9-b593-d223f7449a82
2019-12-23 14:34:10 +00:00
Sergey Biryukov
c1ab0cc974 Menus: Avoid a PHP warning in add_submenu_page() when the same value is passed for both $parent_slug and $menu_slug parameters.
Props welcher, ispreview, ayeshrajans, NextScripts, adamsilverstein, garrett-eclipse, 123host.
Fixes #48599.

git-svn-id: https://develop.svn.wordpress.org/trunk@46868 602fd350-edb4-49c9-b593-d223f7449a82
2019-12-09 21:01:13 +00:00
Sergey Biryukov
cde71eed52 Docs: In various @return tags, list the expected type first, instead of WP_Error.
See #48303.

git-svn-id: https://develop.svn.wordpress.org/trunk@46696 602fd350-edb4-49c9-b593-d223f7449a82
2019-11-11 02:41:15 +00:00
Sergey Biryukov
63a534030e Docs: Miscellaneous docblock corrections in wp-admin/includes/plugin.php.
See #48303.

git-svn-id: https://develop.svn.wordpress.org/trunk@46695 602fd350-edb4-49c9-b593-d223f7449a82
2019-11-11 00:03:53 +00:00
Sergey Biryukov
84540ab336 Docs: Improve documentation for deactivate_plugins() and activate_plugins().
Props marekdedic, spenserhale, SergeyBiryukov.
Fixes #48352.

git-svn-id: https://develop.svn.wordpress.org/trunk@46694 602fd350-edb4-49c9-b593-d223f7449a82
2019-11-10 23:03:34 +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
Sergey Biryukov
7ee1e12715 Administration: Relax the default value check for the $position argument added to add_submenu_page() and related functions in [46197].
Due to a confusion with `add_menu_page()`, which takes the `$icon_url` parameter, while `add_submenu_page()` does not, some plugins were passing in a string instead of integer as `$position`, causing backward compatibility issues.

A `_doing_it_wrong()` message is now added to alert developers of the wrong parameter type.

Props david.binda, desrosj, 123host, dennis_f, MattyRob.
Reviewed by desrosj.
Fixes #48249.

git-svn-id: https://develop.svn.wordpress.org/trunk@46570 602fd350-edb4-49c9-b593-d223f7449a82
2019-10-22 17:50:45 +00:00
Sergey Biryukov
e2b7892a3e Docs: Format comments in wp-admin/includes/plugin.php as per the documentation standards.
Props dkarfa.
Fixes #48191.

git-svn-id: https://develop.svn.wordpress.org/trunk@46410 602fd350-edb4-49c9-b593-d223f7449a82
2019-10-06 02:21:42 +00:00
Sergey Biryukov
1a6d41b4d6 Docs: Add @since tag for the new $position argument added to add_submenu_page() and related functions in [46197].
See #39776.

git-svn-id: https://develop.svn.wordpress.org/trunk@46198 602fd350-edb4-49c9-b593-d223f7449a82
2019-09-20 17:05:26 +00:00
Adam Silverstein
78e8100b6b Menus: add a position argument to add_submenu_page and the helper functions that use it.
Add a position argument to the `add_submenu_page` function similar to the one already in `add_menu_page`. When adding sub menus enables setting the position in the sub menu where the item should appear.

In addition, add the position argument to functions that call `add_submenu_page` under the hood: `add_management_page`, `add_options_page`, `add_theme_page`, `add_plugins_page`, `add_users_page`, `add_dashboard_page`, `add_posts_page`, `add_media_page`, `add_links_page`, `add_pages_page` and `add_comments_page`.

Props welcher, birgire, alexvorn2.
Fixes #39776.



git-svn-id: https://develop.svn.wordpress.org/trunk@46197 602fd350-edb4-49c9-b593-d223f7449a82
2019-09-20 14:59:04 +00:00