Add filter to wp_update_plugins() — at Version 1
|Reported by:||rmccue||Owned by:|
|Cc:||pippin@…, info@…, drenobi@…, johnstonphilip@…|
Description (last modified by rmccue)
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
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()
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.