Opened 7 months ago
Last modified 6 months ago
#22377 new enhancement
Add filter to wp_update_plugins()
| Reported by: |
|
Owned by: | |
|---|---|---|---|
| Priority: | low | Milestone: | Awaiting Review |
| Component: | Upgrade/Install | Version: | 3.4 |
| Severity: | minor | Keywords: | has-patch |
| Cc: | pippin@…, info@…, drenobi@… |
Description (last modified by rmccue)
Background
Certain plugins (paid plugins, etc) may not wish to use WordPress' built-in
upgrading functionality. As such, they may implement their own update checking
code. WordPress' code runs every 12 hours via wp-cron, so hooking into the
native system for checking would be the best way to avoid duplicating tonnes of
code.
Problem
Currently, filtering this result is somewhat unintuitive. There are no filters
in wp_update_plugins() to filter the result of the API call, so you have to
fall back to pre_set_site_transient_update_plugins. WordPress, however, sets
this transient twice,
once before updating "to prevent multiple blocking requests if request hangs"
and then once afterwards with the actual result.
This is only a minor inconvenience, but it appears to be somewhat fragile.
Ensuring that a plugin's custom code doesn't run on the first set_transient()
requires setting a flag, and this is prone to breaking if wp_update_plugins()
changes internally.
Solution
Introduce a new filter to change the API result before saving. This filter
should only run once, with the actual result of the API call.
Patch attached.
Attachments (2)
Change History (12)
You can also hook into 'http_request_args' + 'http_response', but that's even more unintuitive. Similar: #22129
Also, shouldn't there be a 'wp_update_themes' filter as well?
Replying to scribu:
You can also hook into 'http_request_args' + 'http_response', but that's even more unintuitive. Similar: #22129
Yeah, and bulk upgrading is actively hard. I'll open a ticket for that soonish once I get a patch for that too.
Replying to scribu:
Also, shouldn't there be a 'wp_update_themes' filter as well?
Probably, yeah, I didn't consider that. I'll update the patch.
comment:9
SergeyBiryukov — 6 months ago
- Version changed from trunk to 3.4
comment:10
nerrad — 6 months ago
- Cc drenobi@… added

Add filter to wp_update_plugins