WordPress/wp-admin
audrasjb 4c03f712bc Upgrade/Install: Check plugin compatibility during bulk upgrades.
Previously, bulk upgrades did not verify that a plugin package was compatible with the site's WordPress version or the server's PHP version. This could lead to 
incompatible updates being installed, causing various compatibility issues and errors.

This change implements the following checks:

- If available, the API response's `requires` and `requires_php` values are checked for compatibility. This saves time, diskspace, memory and file operations by 
failing the upgrade before the package is downloaded and unpacked.
- If the API check passes, the downloaded and unpacked package is verified using `Plugin_Upgrader::check_package()` to ensure a plugin file is present, and the 
plugin's "RequiresWP" and "RequiresPHP" headers are compatible, if present. This ensures that a mismatch between the API response and the plugin file's headers does 
not cause an incompatible plugin to be installed.

Props salcode, afragen, mukesh27, iammehedi1, zunaid321, johnbillion, SergeyBiryukov, costdev, nicolefurlan, audrasjb, nicolefurlan.
Merges [56525] to the 6.3 branch.
Fixes #59198.

--

_M   6.3
M    6.3/src/wp-admin/includes/class-plugin-upgrader.php

Built from https://develop.svn.wordpress.org/branches/6.3@56787


git-svn-id: http://core.svn.wordpress.org/branches/6.3@56299 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2023-10-05 15:10:23 +00:00
..
css General: Commit changes after running precommit:css. 2023-08-07 17:57:27 +00:00
images Help/About: Updates to About page. 2023-07-25 00:12:21 +00:00
includes Upgrade/Install: Check plugin compatibility during bulk upgrades. 2023-10-05 15:10:23 +00:00
js External Libraries: Update deprecated jQuery code in Farbtastic lib. 2023-07-17 22:03:26 +00:00
maint Coding Standards: Use strict comparison in wp-admin/maint/repair.php. 2023-04-11 16:30:22 +00:00
network Help/About: Fix the Get Involved tab on Network Admin. 2023-07-25 22:21:25 +00:00
user
about.php Help/About: Update the About page for 6.3.1. 2023-08-29 09:40:29 +00:00
admin-ajax.php Coding Standards: Remove extra space in wp-admin/admin-ajax.php. 2022-05-07 16:21:18 +00:00
admin-footer.php
admin-functions.php
admin-header.php Docs: Use third-person singular verbs in various function descriptions, as per docblocks standards. 2023-06-14 14:08:18 +00:00
admin-post.php Administration: Require a valid action parameter to be set for admin-ajax.php requests. 2022-03-02 15:00:11 +00:00
admin.php Docs: Use third-person singular verbs in various function descriptions, as per docblocks standards. 2023-06-14 14:08:18 +00:00
async-upload.php Media: Remove target blank attribute from media uploader edit links. 2022-01-27 22:17:00 +00:00
authorize-application.php Docs: Various corrections and improvements to inline documentation. 2022-08-04 14:52:11 +00:00
comment.php Code Modernization: Replace usage of strpos() with str_contains(). 2023-06-22 14:36:26 +00:00
contribute.php Help/About: Escape "Contribute" links, for better consistency. 2023-08-01 13:00:29 +00:00
credits.php Help/About: Escape "Contribute" links, for better consistency. 2023-08-01 13:00:29 +00:00
custom-background.php
custom-header.php
customize.php Docs: Use third-person singular verbs in various function descriptions, as per docblocks standards. 2023-06-14 14:08:18 +00:00
edit-comments.php General: Replace some instances of "blog" with "site" in documentation, translator comments, and user-facing text strings. 2023-06-19 18:27:27 +00:00
edit-form-advanced.php Help/About: Avoid extra redirections on HelpHub Links. 2023-02-23 11:06:19 +00:00
edit-form-blocks.php Editor: Fix layout of no-js state in site editor. 2023-07-10 21:22:21 +00:00
edit-form-comment.php I18N: Mark screen reader strings as such with translator comments. 2023-02-07 17:10:21 +00:00
edit-link-form.php Coding Standards: Use esc_url() to escape link URL value in wp-admin/edit-link-form.php. 2023-05-11 15:05:22 +00:00
edit-tag-form.php Networks and Sites: Officially remove global terms. 2022-09-20 02:51:09 +00:00
edit-tags.php Help/About: Use the new /documentation/ URLs for HelpHub links in WordPress Admin. 2023-02-23 10:38:21 +00:00
edit.php Code Modernization: Replace usage of strpos() with str_contains(). 2023-06-22 14:36:26 +00:00
erase-personal-data.php Help/About: Use the new /documentation/ URLs for HelpHub links in WordPress Admin. 2023-02-23 10:38:21 +00:00
export-personal-data.php Help/About: Use the new /documentation/ URLs for HelpHub links in WordPress Admin. 2023-02-23 10:38:21 +00:00
export.php Docs: Use third-person singular verbs in various function descriptions, as per docblocks standards. 2023-06-14 14:08:18 +00:00
freedoms.php Help/About: Updates to About page. 2023-07-25 00:12:21 +00:00
import.php Help/About: Use the new /documentation/ URLs for HelpHub links in WordPress Admin. 2023-02-23 10:38:21 +00:00
index.php Docs: Use third-person singular verbs in various function descriptions, as per docblocks standards. 2023-06-14 14:08:18 +00:00
install-helper.php Docs: Fix typo and improve DocBlock formatting in wp-admin/install-helper.php. 2022-11-20 14:10:15 +00:00
install.php Upgrade/Install: Add aria-describedby for input descriptions. 2023-06-25 18:44:23 +00:00
link-add.php Docs: Add a comment about the $title global usage in various admin files. 2021-07-22 13:53:00 +00:00
link-manager.php Help/About: Use the new /documentation/ URLs for HelpHub links in WordPress Admin. 2023-02-23 10:38:21 +00:00
link-parse-opml.php Docs: Use third-person singular verbs in various function descriptions, as per docblocks standards. 2023-06-14 14:08:18 +00:00
link.php Coding Standards: Apply some alignment fixes from composer format. 2021-07-27 19:01:59 +00:00
load-scripts.php Docs: Update a comment in wp-admin/load-styles.php per the documentation standards. 2021-12-12 14:52:02 +00:00
load-styles.php Database: Replace str_contains() and str_ends_with() usage in wpdb methods. 2023-06-23 12:17:24 +00:00
media-new.php Help/About: Use the new /documentation/ URLs for HelpHub links in WordPress Admin. 2023-02-23 10:38:21 +00:00
media-upload.php
media.php Media: Redirect deprecated wp-admin/media.php file. 2023-06-19 23:20:21 +00:00
menu-header.php Docs: Replace multiple single line comments with multi-line comments. 2023-07-09 19:56:23 +00:00
menu.php Editor: Fix conditionals in Template Editing Mode. 2023-07-25 14:35:23 +00:00
moderation.php
ms-admin.php
ms-delete-site.php Text Changes: Improve the wording of the email sent to confirm site deletion. 2022-11-14 21:57:10 +00:00
ms-edit.php
ms-options.php
ms-sites.php
ms-themes.php
ms-upgrade-network.php
ms-users.php
my-sites.php Docs: Use third-person singular verbs in various function descriptions, as per docblocks standards. 2023-06-14 14:08:18 +00:00
nav-menus.php Administration: Define the $title global on the Menus screen for classic themes. 2023-03-15 09:05:22 +00:00
network.php Help/About: Use the new /documentation/ URLs for HelpHub links in WordPress Admin. 2023-02-23 10:38:21 +00:00
options-discussion.php Help/About: Use the new /documentation/ URLs for HelpHub links in WordPress Admin. 2023-02-23 10:38:21 +00:00
options-general.php I18n: Move translator comments inside sprintf for tagline field description. 2023-07-11 05:55:20 +00:00
options-head.php
options-media.php Help/About: Use the new /documentation/ URLs for HelpHub links in WordPress Admin. 2023-02-23 10:38:21 +00:00
options-permalink.php Code Modernization: Replace usage of strpos() with str_starts_with(). 2023-05-02 15:45:22 +00:00
options-privacy.php Coding Standards: Use __DIR__ magic constant in wp-admin/options-privacy.php. 2023-04-27 13:14:23 +00:00
options-reading.php Help/About: Use the new /documentation/ URLs for HelpHub links in WordPress Admin. 2023-02-23 10:38:21 +00:00
options-writing.php Administration: Hide password in options/writing. 2023-06-22 00:32:21 +00:00
options.php Code Modernization: Replace usage of strpos() with str_contains(). 2023-06-22 14:36:26 +00:00
plugin-editor.php Code Modernization: Use str_ends_with() in a few more places. 2023-06-24 09:52:19 +00:00
plugin-install.php Help/About: Use the new /documentation/ URLs for HelpHub links in WordPress Admin. 2023-02-23 10:38:21 +00:00
plugins.php Help/About: Avoid extra redirections on HelpHub Links. 2023-02-23 11:06:19 +00:00
post-new.php
post.php Code Modernization: Replace usage of strpos() with str_contains(). 2023-06-22 14:36:26 +00:00
press-this.php
privacy-policy-guide.php Coding Standards: Replace include_once with require_once for required files. 2023-04-09 11:57:22 +00:00
privacy.php Help/About: Updates to About page. 2023-07-25 00:12:21 +00:00
profile.php
revision.php Help/About: Use the new /documentation/ URLs for HelpHub links in WordPress Admin. 2023-02-23 10:38:21 +00:00
setup-config.php Upgrade/Install: Show/hide toggle on password fields. 2023-06-23 23:09:29 +00:00
site-editor.php Editor: Fix conditionals in Template Editing Mode. 2023-07-25 14:35:23 +00:00
site-health-info.php Site Health: Internationalizes count in the info section headings. 2021-11-01 22:36:59 +00:00
site-health.php Docs: Use third-person singular verbs in various function descriptions, as per docblocks standards. 2023-06-14 14:08:18 +00:00
term.php General: Replace all esc_url_raw() calls in core with sanitize_url(). 2022-06-01 18:14:10 +00:00
theme-editor.php Code Modernization: Use str_ends_with() in a few more places. 2023-06-24 09:52:19 +00:00
theme-install.php Help/About: Use the new /documentation/ URLs for HelpHub links in WordPress Admin. 2023-02-23 10:38:21 +00:00
themes.php General: add block theme previews. 2023-06-27 09:36:21 +00:00
tools.php Help/About: Use the new /documentation/ URLs for HelpHub links in WordPress Admin. 2023-02-23 10:38:21 +00:00
update-core.php Help/About: Fix typo in [56171]: support forum "topic", not "ticket". 2023-07-14 22:11:22 +00:00
update.php Coding Standards: Replace include_once with require_once for required files. 2023-04-09 11:57:22 +00:00
upgrade-functions.php
upgrade.php Help/About: Use the new /documentation/ URLs for links about WordPress version. 2023-04-04 22:38:22 +00:00
upload.php Code Modernization: Replace usage of strpos() with str_contains(). 2023-06-22 14:36:26 +00:00
user-edit.php Docs: Replace multiple single line comments with multi-line comments. 2023-07-09 19:56:23 +00:00
user-new.php Upgrade/Install: Show/hide toggle on password fields. 2023-06-23 23:09:29 +00:00
users.php Coding Standards: Use strict comparison in wp-admin/users.php. 2023-06-04 02:35:19 +00:00
widgets-form-blocks.php Editor: Update preload paths for post, site and widgets editors 2022-04-07 13:40:04 +00:00
widgets-form.php Code Modernization: Replace usage of substr() with str_starts_with() and str_ends_with(). 2023-06-22 14:57:24 +00:00
widgets.php Administration: Replace contracted verb forms for better consistency. 2022-03-22 19:59:04 +00:00