WP_Upgrader::run( array $options ): array|false|WP_Error
- Since
- 2.8.0
- Source
wp-admin/includes/class-wp-upgrader.php:774
Description
Attempts to download the package (if it is not a local file), unpack it, and install it in the destination folder.
Compatibility
- WordPress
- since 2.8.0
- PHP
- 7.4–8.6-dev
- 6.7.7
- 6.8.8
- 6.9.7
- 7.0.4
- 7.1.0
Present in every tracked release (6.7.7 to 7.1.0), and compiles on PHP 7.4 through 8.6-dev.
Parameters
$optionsarray- Array or string of arguments for upgrading/installing a package.
$packagestringdefault: emptyThe full path or URI of the package to install.$destinationstringdefault: emptyThe full path to the destination folder.$clear_destinationbooldefault: falseWhether to delete any files already in the destination folder.$clear_workingbooldefault: trueWhether to delete the files from the working directory after copying them to the destination.$abort_if_destination_existsbooldefault: trueWhether to abort the installation if the destination folder already exists. When true,$clear_destinationshould be false.$is_multibooldefault: falseWhether this run is one of multiple upgrade/installation actions being performed in bulk. When true, the skin WP_Upgrader::header() and WP_Upgrader::footer() aren't called.$hook_extraarrayExtra arguments to pass to the filter hooks called by WP_Upgrader::run().
Return value
array|false|WP_Error- The result from self::install_package() on success, otherwise a WP_Error, or false if unable to connect to the filesystem.
Performance profile
How much work a call to WP_Upgrader::run() does, and what it touches: the algorithmic scaling, the Zend instruction count per call across PHP versions, the hooks it hands control to, and the core code that calls it. Measured from the compiled opcodes, not a stopwatch, so every number is identical on any machine running the same PHP version, and every function in core is ranked by cost.
- Cost class
- Expensive
- Scaling
- Constant
- Instructions
- 26–188
- Plugin surface
- 3 hooks
- Called by
- 0
Reaches an outbound HTTP request via wp_remote_post().
No loop in the body: the same number of instructions runs whatever you pass in.
Executed per call on PHP 8.5, depending on the branch taken. The body compiles to 237.
Third-party callbacks on 'upgrader_package_options', 'upgrader_install_package_result', 'upgrader_process_complete' run inside this call, and their cost is not bounded by anything here.
Nothing in core calls this; the cost is only what you spend yourself.
What it touches
- hookthird-party callbacks
apply_filters()called directly - transienttransient
get_site_transient()one call below WP_Upgrader::run() - optionnetwork option
get_site_option()one call below WP_Upgrader::run() - httpoutbound HTTP request
wp_remote_post()one call below WP_Upgrader::run()
Further down the call graph this can also reach cache, serialize and query. Those are the worst case, several calls deep and usually down an error path, not what a normal call pays.
What one call costs · 104 distinct outcomes
One number would be a lie: the work depends on which branch runs. These are every distinct cost WP_Upgrader::run() can have, taken from its control-flow graph on PHP 8.5.
| When | Instructions | Calls it makes |
|---|---|---|
$options | 26 | wp_parse_args(), apply_filters() |
| always | 29 | wp_parse_args(), apply_filters(), ->footer() |
| always | 29 | wp_parse_args(), apply_filters(), ->header() |
!$options | 32 | wp_parse_args(), apply_filters(), ->header(), ->footer() |
$options && is_wp_error() | 40 | wp_parse_args(), apply_filters(), ->before(), is_wp_error(), ->error(), ->after() |
is_wp_error() | 43 | wp_parse_args(), apply_filters(), ->before(), is_wp_error(), ->error(), ->after(), ->footer() |
is_wp_error() | 43 | wp_parse_args(), apply_filters(), ->header(), ->before(), is_wp_error(), ->error(), ->after() |
!$options && is_wp_error() | 46 | wp_parse_args(), apply_filters(), ->header(), ->before(), is_wp_error(), ->error(), ->after(), ->footer() |
$options | 58 | wp_parse_args(), apply_filters(), ->before(), is_wp_error(), ->download_package(), is_wp_error(), is_wp_error(), ->error(), ->after() |
| always | 61 | wp_parse_args(), apply_filters(), ->before(), is_wp_error(), ->download_package(), is_wp_error(), is_wp_error(), ->error(), ->after(), ->footer() |
| always | 61 | wp_parse_args(), apply_filters(), ->header(), ->before(), is_wp_error(), ->download_package(), is_wp_error(), is_wp_error(), ->error(), ->after() |
$options && !->get_error_data() | 62 | wp_parse_args(), apply_filters(), ->before(), is_wp_error(), ->download_package(), is_wp_error(), ->get_error_data(), is_wp_error(), ->error(), ->after() |
92 further outcomes, up to 188 instructions
!$options | 64 | wp_parse_args(), apply_filters(), ->header(), ->before(), is_wp_error(), ->download_package(), is_wp_error(), is_wp_error(), ->error(), ->after(), ->footer() |
!->get_error_data() | 65 | wp_parse_args(), apply_filters(), ->before(), is_wp_error(), ->download_package(), is_wp_error(), ->get_error_data(), is_wp_error(), ->error(), ->after(), ->footer() |
!->get_error_data() | 65 | wp_parse_args(), apply_filters(), ->header(), ->before(), is_wp_error(), ->download_package(), is_wp_error(), ->get_error_data(), is_wp_error(), ->error(), ->after() |
!$options && !->get_error_data() | 68 | wp_parse_args(), apply_filters(), ->header(), ->before(), is_wp_error(), ->download_package(), is_wp_error(), ->get_error_data(), is_wp_error(), ->error(), ->after(), ->footer() |
$options | 69 | wp_parse_args(), apply_filters(), ->before(), is_wp_error(), ->download_package(), is_wp_error(), is_wp_error(), ->unpack_package(), is_wp_error(), ->error(), ->after() |
| always | 72 | wp_parse_args(), apply_filters(), ->before(), is_wp_error(), ->download_package(), is_wp_error(), is_wp_error(), ->unpack_package(), is_wp_error(), ->error(), ->after(), ->footer() |
$options && ->get_error_data() | 72 | wp_parse_args(), apply_filters(), ->before(), is_wp_error(), ->download_package(), is_wp_error(), ->get_error_data(), ->get_error_code(), ->get_error_data(), is_wp_error(), ->error(), ->after() |
| always | 72 | wp_parse_args(), apply_filters(), ->header(), ->before(), is_wp_error(), ->download_package(), is_wp_error(), is_wp_error(), ->unpack_package(), is_wp_error(), ->error(), ->after() |
$options && !->get_error_data() | 73 | wp_parse_args(), apply_filters(), ->before(), is_wp_error(), ->download_package(), is_wp_error(), ->get_error_data(), is_wp_error(), ->unpack_package(), is_wp_error(), ->error(), ->after() |
->get_error_data() | 75 | wp_parse_args(), apply_filters(), ->before(), is_wp_error(), ->download_package(), is_wp_error(), ->get_error_data(), ->get_error_code(), ->get_error_data(), is_wp_error(), ->error(), ->after(), ->footer() |
!$options | 75 | wp_parse_args(), apply_filters(), ->header(), ->before(), is_wp_error(), ->download_package(), is_wp_error(), is_wp_error(), ->unpack_package(), is_wp_error(), ->error(), ->after(), ->footer() |
->get_error_data() | 75 | wp_parse_args(), apply_filters(), ->header(), ->before(), is_wp_error(), ->download_package(), is_wp_error(), ->get_error_data(), ->get_error_code(), ->get_error_data(), is_wp_error(), ->error(), ->after() |
!->get_error_data() | 76 | wp_parse_args(), apply_filters(), ->before(), is_wp_error(), ->download_package(), is_wp_error(), ->get_error_data(), is_wp_error(), ->unpack_package(), is_wp_error(), ->error(), ->after(), ->footer() |
!->get_error_data() | 76 | wp_parse_args(), apply_filters(), ->header(), ->before(), is_wp_error(), ->download_package(), is_wp_error(), ->get_error_data(), is_wp_error(), ->unpack_package(), is_wp_error(), ->error(), ->after() |
!$options && ->get_error_data() | 78 | wp_parse_args(), apply_filters(), ->header(), ->before(), is_wp_error(), ->download_package(), is_wp_error(), ->get_error_data(), ->get_error_code(), ->get_error_data(), is_wp_error(), ->error(), ->after(), ->footer() |
!$options && !->get_error_data() | 79 | wp_parse_args(), apply_filters(), ->header(), ->before(), is_wp_error(), ->download_package(), is_wp_error(), ->get_error_data(), is_wp_error(), ->unpack_package(), is_wp_error(), ->error(), ->after(), ->footer() |
$options && ->get_error_data() | 83 | wp_parse_args(), apply_filters(), ->before(), is_wp_error(), ->download_package(), is_wp_error(), ->get_error_data(), ->get_error_code(), ->get_error_data(), is_wp_error(), ->unpack_package(), is_wp_error(), ->error(), ->after() |
$options && ->get_error_data() | 85–87 | wp_parse_args(), apply_filters(), ->before(), is_wp_error(), ->download_package(), is_wp_error(), ->get_error_data(), ->get_error_code(), ->get_error_message(), ->feedback(), ->get_error_code(), ->get_error_data(), signature_failure_code(), ->get_error_data(), is_wp_error(), ->error(), ->after() |
->get_error_data() | 86 | wp_parse_args(), apply_filters(), ->before(), is_wp_error(), ->download_package(), is_wp_error(), ->get_error_data(), ->get_error_code(), ->get_error_data(), is_wp_error(), ->unpack_package(), is_wp_error(), ->error(), ->after(), ->footer() |
->get_error_data() | 86 | wp_parse_args(), apply_filters(), ->header(), ->before(), is_wp_error(), ->download_package(), is_wp_error(), ->get_error_data(), ->get_error_code(), ->get_error_data(), is_wp_error(), ->unpack_package(), is_wp_error(), ->error(), ->after() |
->get_error_data() | 88–90 | wp_parse_args(), apply_filters(), ->before(), is_wp_error(), ->download_package(), is_wp_error(), ->get_error_data(), ->get_error_code(), ->get_error_message(), ->feedback(), ->get_error_code(), ->get_error_data(), signature_failure_code(), ->get_error_data(), is_wp_error(), ->error(), ->after(), ->footer() |
->get_error_data() | 88–90 | wp_parse_args(), apply_filters(), ->header(), ->before(), is_wp_error(), ->download_package(), is_wp_error(), ->get_error_data(), ->get_error_code(), ->get_error_message(), ->feedback(), ->get_error_code(), ->get_error_data(), signature_failure_code(), ->get_error_data(), is_wp_error(), ->error(), ->after() |
!$options && ->get_error_data() | 89 | wp_parse_args(), apply_filters(), ->header(), ->before(), is_wp_error(), ->download_package(), is_wp_error(), ->get_error_data(), ->get_error_code(), ->get_error_data(), is_wp_error(), ->unpack_package(), is_wp_error(), ->error(), ->after(), ->footer() |
!$options && ->get_error_data() | 91–93 | wp_parse_args(), apply_filters(), ->header(), ->before(), is_wp_error(), ->download_package(), is_wp_error(), ->get_error_data(), ->get_error_code(), ->get_error_message(), ->feedback(), ->get_error_code(), ->get_error_data(), signature_failure_code(), ->get_error_data(), is_wp_error(), ->error(), ->after(), ->footer() |
$options && ->get_error_data() | 96–98 | wp_parse_args(), apply_filters(), ->before(), is_wp_error(), ->download_package(), is_wp_error(), ->get_error_data(), ->get_error_code(), ->get_error_message(), ->feedback(), ->get_error_code(), ->get_error_data(), signature_failure_code(), ->get_error_data(), is_wp_error(), ->unpack_package(), is_wp_error(), ->error(), ->after() |
->get_error_data() | 99–101 | wp_parse_args(), apply_filters(), ->before(), is_wp_error(), ->download_package(), is_wp_error(), ->get_error_data(), ->get_error_code(), ->get_error_message(), ->feedback(), ->get_error_code(), ->get_error_data(), signature_failure_code(), ->get_error_data(), is_wp_error(), ->unpack_package(), is_wp_error(), ->error(), ->after(), ->footer() |
->get_error_data() | 99–101 | wp_parse_args(), apply_filters(), ->header(), ->before(), is_wp_error(), ->download_package(), is_wp_error(), ->get_error_data(), ->get_error_code(), ->get_error_message(), ->feedback(), ->get_error_code(), ->get_error_data(), signature_failure_code(), ->get_error_data(), is_wp_error(), ->unpack_package(), is_wp_error(), ->error(), ->after() |
!$options && ->get_error_data() | 102–104 | wp_parse_args(), apply_filters(), ->header(), ->before(), is_wp_error(), ->download_package(), is_wp_error(), ->get_error_data(), ->get_error_code(), ->get_error_message(), ->feedback(), ->get_error_code(), ->get_error_data(), signature_failure_code(), ->get_error_data(), is_wp_error(), ->unpack_package(), is_wp_error(), ->error(), ->after(), ->footer() |
$options && !is_wp_error() | 103–112 | wp_parse_args(), apply_filters(), ->before(), is_wp_error(), ->download_package(), is_wp_error(), is_wp_error(), ->unpack_package(), is_wp_error(), source(), apply_filters(), ->set_result(), is_wp_error(), ->feedback(), ->after() |
!is_wp_error() | 106–115 | wp_parse_args(), apply_filters(), ->header(), ->before(), is_wp_error(), ->download_package(), is_wp_error(), is_wp_error(), ->unpack_package(), is_wp_error(), source(), apply_filters(), ->set_result(), is_wp_error(), ->feedback(), ->after() |
$options && !->get_error_data() | 107–116 | wp_parse_args(), apply_filters(), ->before(), is_wp_error(), ->download_package(), is_wp_error(), ->get_error_data(), is_wp_error(), ->unpack_package(), is_wp_error(), source(), apply_filters(), ->set_result(), is_wp_error(), ->feedback(), ->after() |
!->get_error_data() | 110–119 | wp_parse_args(), apply_filters(), ->header(), ->before(), is_wp_error(), ->download_package(), is_wp_error(), ->get_error_data(), is_wp_error(), ->unpack_package(), is_wp_error(), source(), apply_filters(), ->set_result(), is_wp_error(), ->feedback(), ->after() |
!is_wp_error() | 114–123 | wp_parse_args(), apply_filters(), ->before(), is_wp_error(), ->download_package(), is_wp_error(), is_wp_error(), ->unpack_package(), is_wp_error(), source(), apply_filters(), ->set_result(), is_wp_error(), ->feedback(), ->after(), do_action(), ->footer() |
$options && !method_exists() | 117–140 | wp_parse_args(), apply_filters(), ->before(), is_wp_error(), ->download_package(), is_wp_error(), is_wp_error(), ->unpack_package(), is_wp_error(), source(), apply_filters(), ->set_result(), is_wp_error(), ->error(), method_exists(), ->feedback(), ->after() |
$options && method_exists() && ->hide_process_failed() | 117–140 | wp_parse_args(), apply_filters(), ->before(), is_wp_error(), ->download_package(), is_wp_error(), is_wp_error(), ->unpack_package(), is_wp_error(), source(), apply_filters(), ->set_result(), is_wp_error(), ->error(), method_exists(), ->hide_process_failed(), ->after() |
$options && ->get_error_data() | 117–126 | wp_parse_args(), apply_filters(), ->before(), is_wp_error(), ->download_package(), is_wp_error(), ->get_error_data(), ->get_error_code(), ->get_error_data(), is_wp_error(), ->unpack_package(), is_wp_error(), source(), apply_filters(), ->set_result(), is_wp_error(), ->feedback(), ->after() |
!$options && !is_wp_error() | 117–126 | wp_parse_args(), apply_filters(), ->header(), ->before(), is_wp_error(), ->download_package(), is_wp_error(), is_wp_error(), ->unpack_package(), is_wp_error(), source(), apply_filters(), ->set_result(), is_wp_error(), ->feedback(), ->after(), do_action(), ->footer() |
!->get_error_data() | 118–127 | wp_parse_args(), apply_filters(), ->before(), is_wp_error(), ->download_package(), is_wp_error(), ->get_error_data(), is_wp_error(), ->unpack_package(), is_wp_error(), source(), apply_filters(), ->set_result(), is_wp_error(), ->feedback(), ->after(), do_action(), ->footer() |
!method_exists() | 120–143 | wp_parse_args(), apply_filters(), ->header(), ->before(), is_wp_error(), ->download_package(), is_wp_error(), is_wp_error(), ->unpack_package(), is_wp_error(), source(), apply_filters(), ->set_result(), is_wp_error(), ->error(), method_exists(), ->feedback(), ->after() |
method_exists() && ->hide_process_failed() | 120–143 | wp_parse_args(), apply_filters(), ->header(), ->before(), is_wp_error(), ->download_package(), is_wp_error(), is_wp_error(), ->unpack_package(), is_wp_error(), source(), apply_filters(), ->set_result(), is_wp_error(), ->error(), method_exists(), ->hide_process_failed(), ->after() |
->get_error_data() | 120–129 | wp_parse_args(), apply_filters(), ->header(), ->before(), is_wp_error(), ->download_package(), is_wp_error(), ->get_error_data(), ->get_error_code(), ->get_error_data(), is_wp_error(), ->unpack_package(), is_wp_error(), source(), apply_filters(), ->set_result(), is_wp_error(), ->feedback(), ->after() |
$options && !->get_error_data() && !method_exists() | 121–144 | wp_parse_args(), apply_filters(), ->before(), is_wp_error(), ->download_package(), is_wp_error(), ->get_error_data(), is_wp_error(), ->unpack_package(), is_wp_error(), source(), apply_filters(), ->set_result(), is_wp_error(), ->error(), method_exists(), ->feedback(), ->after() |
$options && !->get_error_data() && method_exists() && ->hide_process_failed() | 121–144 | wp_parse_args(), apply_filters(), ->before(), is_wp_error(), ->download_package(), is_wp_error(), ->get_error_data(), is_wp_error(), ->unpack_package(), is_wp_error(), source(), apply_filters(), ->set_result(), is_wp_error(), ->error(), method_exists(), ->hide_process_failed(), ->after() |
!$options && !->get_error_data() | 121–130 | wp_parse_args(), apply_filters(), ->header(), ->before(), is_wp_error(), ->download_package(), is_wp_error(), ->get_error_data(), is_wp_error(), ->unpack_package(), is_wp_error(), source(), apply_filters(), ->set_result(), is_wp_error(), ->feedback(), ->after(), do_action(), ->footer() |
$options && method_exists() && !->hide_process_failed() | 122–145 | wp_parse_args(), apply_filters(), ->before(), is_wp_error(), ->download_package(), is_wp_error(), is_wp_error(), ->unpack_package(), is_wp_error(), source(), apply_filters(), ->set_result(), is_wp_error(), ->error(), method_exists(), ->hide_process_failed(), ->feedback(), ->after() |
!->get_error_data() && !method_exists() | 124–147 | wp_parse_args(), apply_filters(), ->header(), ->before(), is_wp_error(), ->download_package(), is_wp_error(), ->get_error_data(), is_wp_error(), ->unpack_package(), is_wp_error(), source(), apply_filters(), ->set_result(), is_wp_error(), ->error(), method_exists(), ->feedback(), ->after() |
!->get_error_data() && method_exists() && ->hide_process_failed() | 124–147 | wp_parse_args(), apply_filters(), ->header(), ->before(), is_wp_error(), ->download_package(), is_wp_error(), ->get_error_data(), is_wp_error(), ->unpack_package(), is_wp_error(), source(), apply_filters(), ->set_result(), is_wp_error(), ->error(), method_exists(), ->hide_process_failed(), ->after() |
method_exists() && !->hide_process_failed() | 125–148 | wp_parse_args(), apply_filters(), ->header(), ->before(), is_wp_error(), ->download_package(), is_wp_error(), is_wp_error(), ->unpack_package(), is_wp_error(), source(), apply_filters(), ->set_result(), is_wp_error(), ->error(), method_exists(), ->hide_process_failed(), ->feedback(), ->after() |
$options && !->get_error_data() && method_exists() && !->hide_process_failed() | 126–149 | wp_parse_args(), apply_filters(), ->before(), is_wp_error(), ->download_package(), is_wp_error(), ->get_error_data(), is_wp_error(), ->unpack_package(), is_wp_error(), source(), apply_filters(), ->set_result(), is_wp_error(), ->error(), method_exists(), ->hide_process_failed(), ->feedback(), ->after() |
!method_exists() | 128–151 | wp_parse_args(), apply_filters(), ->before(), is_wp_error(), ->download_package(), is_wp_error(), is_wp_error(), ->unpack_package(), is_wp_error(), source(), apply_filters(), ->set_result(), is_wp_error(), ->error(), method_exists(), ->feedback(), ->after(), do_action(), ->footer() |
method_exists() && ->hide_process_failed() | 128–151 | wp_parse_args(), apply_filters(), ->before(), is_wp_error(), ->download_package(), is_wp_error(), is_wp_error(), ->unpack_package(), is_wp_error(), source(), apply_filters(), ->set_result(), is_wp_error(), ->error(), method_exists(), ->hide_process_failed(), ->after(), do_action(), ->footer() |
->get_error_data() | 128–137 | wp_parse_args(), apply_filters(), ->before(), is_wp_error(), ->download_package(), is_wp_error(), ->get_error_data(), ->get_error_code(), ->get_error_data(), is_wp_error(), ->unpack_package(), is_wp_error(), source(), apply_filters(), ->set_result(), is_wp_error(), ->feedback(), ->after(), do_action(), ->footer() |
!->get_error_data() && method_exists() && !->hide_process_failed() | 129–152 | wp_parse_args(), apply_filters(), ->header(), ->before(), is_wp_error(), ->download_package(), is_wp_error(), ->get_error_data(), is_wp_error(), ->unpack_package(), is_wp_error(), source(), apply_filters(), ->set_result(), is_wp_error(), ->error(), method_exists(), ->hide_process_failed(), ->feedback(), ->after() |
$options && ->get_error_data() | 130–141 | wp_parse_args(), apply_filters(), ->before(), is_wp_error(), ->download_package(), is_wp_error(), ->get_error_data(), ->get_error_code(), ->get_error_message(), ->feedback(), ->get_error_code(), ->get_error_data(), signature_failure_code(), ->get_error_data(), is_wp_error(), ->unpack_package(), is_wp_error(), source(), apply_filters(), ->set_result(), is_wp_error(), ->feedback(), ->after() |
$options && ->get_error_data() && !method_exists() | 131–154 | wp_parse_args(), apply_filters(), ->before(), is_wp_error(), ->download_package(), is_wp_error(), ->get_error_data(), ->get_error_code(), ->get_error_data(), is_wp_error(), ->unpack_package(), is_wp_error(), source(), apply_filters(), ->set_result(), is_wp_error(), ->error(), method_exists(), ->feedback(), ->after() |
$options && ->get_error_data() && method_exists() && ->hide_process_failed() | 131–154 | wp_parse_args(), apply_filters(), ->before(), is_wp_error(), ->download_package(), is_wp_error(), ->get_error_data(), ->get_error_code(), ->get_error_data(), is_wp_error(), ->unpack_package(), is_wp_error(), source(), apply_filters(), ->set_result(), is_wp_error(), ->error(), method_exists(), ->hide_process_failed(), ->after() |
!$options && !method_exists() | 131–154 | wp_parse_args(), apply_filters(), ->header(), ->before(), is_wp_error(), ->download_package(), is_wp_error(), is_wp_error(), ->unpack_package(), is_wp_error(), source(), apply_filters(), ->set_result(), is_wp_error(), ->error(), method_exists(), ->feedback(), ->after(), do_action(), ->footer() |
!$options && method_exists() && ->hide_process_failed() | 131–154 | wp_parse_args(), apply_filters(), ->header(), ->before(), is_wp_error(), ->download_package(), is_wp_error(), is_wp_error(), ->unpack_package(), is_wp_error(), source(), apply_filters(), ->set_result(), is_wp_error(), ->error(), method_exists(), ->hide_process_failed(), ->after(), do_action(), ->footer() |
!$options && ->get_error_data() | 131–140 | wp_parse_args(), apply_filters(), ->header(), ->before(), is_wp_error(), ->download_package(), is_wp_error(), ->get_error_data(), ->get_error_code(), ->get_error_data(), is_wp_error(), ->unpack_package(), is_wp_error(), source(), apply_filters(), ->set_result(), is_wp_error(), ->feedback(), ->after(), do_action(), ->footer() |
!->get_error_data() && !method_exists() | 132–155 | wp_parse_args(), apply_filters(), ->before(), is_wp_error(), ->download_package(), is_wp_error(), ->get_error_data(), is_wp_error(), ->unpack_package(), is_wp_error(), source(), apply_filters(), ->set_result(), is_wp_error(), ->error(), method_exists(), ->feedback(), ->after(), do_action(), ->footer() |
!->get_error_data() && method_exists() && ->hide_process_failed() | 132–155 | wp_parse_args(), apply_filters(), ->before(), is_wp_error(), ->download_package(), is_wp_error(), ->get_error_data(), is_wp_error(), ->unpack_package(), is_wp_error(), source(), apply_filters(), ->set_result(), is_wp_error(), ->error(), method_exists(), ->hide_process_failed(), ->after(), do_action(), ->footer() |
method_exists() && !->hide_process_failed() | 133–156 | wp_parse_args(), apply_filters(), ->before(), is_wp_error(), ->download_package(), is_wp_error(), is_wp_error(), ->unpack_package(), is_wp_error(), source(), apply_filters(), ->set_result(), is_wp_error(), ->error(), method_exists(), ->hide_process_failed(), ->feedback(), ->after(), do_action(), ->footer() |
->get_error_data() | 133–144 | wp_parse_args(), apply_filters(), ->header(), ->before(), is_wp_error(), ->download_package(), is_wp_error(), ->get_error_data(), ->get_error_code(), ->get_error_message(), ->feedback(), ->get_error_code(), ->get_error_data(), signature_failure_code(), ->get_error_data(), is_wp_error(), ->unpack_package(), is_wp_error(), source(), apply_filters(), ->set_result(), is_wp_error(), ->feedback(), ->after() |
->get_error_data() && !method_exists() | 134–157 | wp_parse_args(), apply_filters(), ->header(), ->before(), is_wp_error(), ->download_package(), is_wp_error(), ->get_error_data(), ->get_error_code(), ->get_error_data(), is_wp_error(), ->unpack_package(), is_wp_error(), source(), apply_filters(), ->set_result(), is_wp_error(), ->error(), method_exists(), ->feedback(), ->after() |
->get_error_data() && method_exists() && ->hide_process_failed() | 134–157 | wp_parse_args(), apply_filters(), ->header(), ->before(), is_wp_error(), ->download_package(), is_wp_error(), ->get_error_data(), ->get_error_code(), ->get_error_data(), is_wp_error(), ->unpack_package(), is_wp_error(), source(), apply_filters(), ->set_result(), is_wp_error(), ->error(), method_exists(), ->hide_process_failed(), ->after() |
!$options && !->get_error_data() && !method_exists() | 135–158 | wp_parse_args(), apply_filters(), ->header(), ->before(), is_wp_error(), ->download_package(), is_wp_error(), ->get_error_data(), is_wp_error(), ->unpack_package(), is_wp_error(), source(), apply_filters(), ->set_result(), is_wp_error(), ->error(), method_exists(), ->feedback(), ->after(), do_action(), ->footer() |
!$options && !->get_error_data() && method_exists() && ->hide_process_failed() | 135–158 | wp_parse_args(), apply_filters(), ->header(), ->before(), is_wp_error(), ->download_package(), is_wp_error(), ->get_error_data(), is_wp_error(), ->unpack_package(), is_wp_error(), source(), apply_filters(), ->set_result(), is_wp_error(), ->error(), method_exists(), ->hide_process_failed(), ->after(), do_action(), ->footer() |
$options && ->get_error_data() && method_exists() && !->hide_process_failed() | 136–159 | wp_parse_args(), apply_filters(), ->before(), is_wp_error(), ->download_package(), is_wp_error(), ->get_error_data(), ->get_error_code(), ->get_error_data(), is_wp_error(), ->unpack_package(), is_wp_error(), source(), apply_filters(), ->set_result(), is_wp_error(), ->error(), method_exists(), ->hide_process_failed(), ->feedback(), ->after() |
!$options && method_exists() && !->hide_process_failed() | 136–159 | wp_parse_args(), apply_filters(), ->header(), ->before(), is_wp_error(), ->download_package(), is_wp_error(), is_wp_error(), ->unpack_package(), is_wp_error(), source(), apply_filters(), ->set_result(), is_wp_error(), ->error(), method_exists(), ->hide_process_failed(), ->feedback(), ->after(), do_action(), ->footer() |
!->get_error_data() && method_exists() && !->hide_process_failed() | 137–160 | wp_parse_args(), apply_filters(), ->before(), is_wp_error(), ->download_package(), is_wp_error(), ->get_error_data(), is_wp_error(), ->unpack_package(), is_wp_error(), source(), apply_filters(), ->set_result(), is_wp_error(), ->error(), method_exists(), ->hide_process_failed(), ->feedback(), ->after(), do_action(), ->footer() |
->get_error_data() && method_exists() && !->hide_process_failed() | 139–162 | wp_parse_args(), apply_filters(), ->header(), ->before(), is_wp_error(), ->download_package(), is_wp_error(), ->get_error_data(), ->get_error_code(), ->get_error_data(), is_wp_error(), ->unpack_package(), is_wp_error(), source(), apply_filters(), ->set_result(), is_wp_error(), ->error(), method_exists(), ->hide_process_failed(), ->feedback(), ->after() |
!$options && !->get_error_data() && method_exists() && !->hide_process_failed() | 140–163 | wp_parse_args(), apply_filters(), ->header(), ->before(), is_wp_error(), ->download_package(), is_wp_error(), ->get_error_data(), is_wp_error(), ->unpack_package(), is_wp_error(), source(), apply_filters(), ->set_result(), is_wp_error(), ->error(), method_exists(), ->hide_process_failed(), ->feedback(), ->after(), do_action(), ->footer() |
->get_error_data() | 141–152 | wp_parse_args(), apply_filters(), ->before(), is_wp_error(), ->download_package(), is_wp_error(), ->get_error_data(), ->get_error_code(), ->get_error_message(), ->feedback(), ->get_error_code(), ->get_error_data(), signature_failure_code(), ->get_error_data(), is_wp_error(), ->unpack_package(), is_wp_error(), source(), apply_filters(), ->set_result(), is_wp_error(), ->feedback(), ->after(), do_action(), ->footer() |
->get_error_data() && !method_exists() | 142–165 | wp_parse_args(), apply_filters(), ->before(), is_wp_error(), ->download_package(), is_wp_error(), ->get_error_data(), ->get_error_code(), ->get_error_data(), is_wp_error(), ->unpack_package(), is_wp_error(), source(), apply_filters(), ->set_result(), is_wp_error(), ->error(), method_exists(), ->feedback(), ->after(), do_action(), ->footer() |
->get_error_data() && method_exists() && ->hide_process_failed() | 142–165 | wp_parse_args(), apply_filters(), ->before(), is_wp_error(), ->download_package(), is_wp_error(), ->get_error_data(), ->get_error_code(), ->get_error_data(), is_wp_error(), ->unpack_package(), is_wp_error(), source(), apply_filters(), ->set_result(), is_wp_error(), ->error(), method_exists(), ->hide_process_failed(), ->after(), do_action(), ->footer() |
$options && ->get_error_data() && !method_exists() | 144–169 | wp_parse_args(), apply_filters(), ->before(), is_wp_error(), ->download_package(), is_wp_error(), ->get_error_data(), ->get_error_code(), ->get_error_message(), ->feedback(), ->get_error_code(), ->get_error_data(), signature_failure_code(), ->get_error_data(), is_wp_error(), ->unpack_package(), is_wp_error(), source(), apply_filters(), ->set_result(), is_wp_error(), ->error(), method_exists(), ->feedback(), ->after() |
$options && ->get_error_data() && method_exists() && ->hide_process_failed() | 144–169 | wp_parse_args(), apply_filters(), ->before(), is_wp_error(), ->download_package(), is_wp_error(), ->get_error_data(), ->get_error_code(), ->get_error_message(), ->feedback(), ->get_error_code(), ->get_error_data(), signature_failure_code(), ->get_error_data(), is_wp_error(), ->unpack_package(), is_wp_error(), source(), apply_filters(), ->set_result(), is_wp_error(), ->error(), method_exists(), ->hide_process_failed(), ->after() |
!$options && ->get_error_data() | 144–155 | wp_parse_args(), apply_filters(), ->header(), ->before(), is_wp_error(), ->download_package(), is_wp_error(), ->get_error_data(), ->get_error_code(), ->get_error_message(), ->feedback(), ->get_error_code(), ->get_error_data(), signature_failure_code(), ->get_error_data(), is_wp_error(), ->unpack_package(), is_wp_error(), source(), apply_filters(), ->set_result(), is_wp_error(), ->feedback(), ->after(), do_action(), ->footer() |
!$options && ->get_error_data() && !method_exists() | 145–168 | wp_parse_args(), apply_filters(), ->header(), ->before(), is_wp_error(), ->download_package(), is_wp_error(), ->get_error_data(), ->get_error_code(), ->get_error_data(), is_wp_error(), ->unpack_package(), is_wp_error(), source(), apply_filters(), ->set_result(), is_wp_error(), ->error(), method_exists(), ->feedback(), ->after(), do_action(), ->footer() |
!$options && ->get_error_data() && method_exists() && ->hide_process_failed() | 145–168 | wp_parse_args(), apply_filters(), ->header(), ->before(), is_wp_error(), ->download_package(), is_wp_error(), ->get_error_data(), ->get_error_code(), ->get_error_data(), is_wp_error(), ->unpack_package(), is_wp_error(), source(), apply_filters(), ->set_result(), is_wp_error(), ->error(), method_exists(), ->hide_process_failed(), ->after(), do_action(), ->footer() |
->get_error_data() && method_exists() && !->hide_process_failed() | 147–170 | wp_parse_args(), apply_filters(), ->before(), is_wp_error(), ->download_package(), is_wp_error(), ->get_error_data(), ->get_error_code(), ->get_error_data(), is_wp_error(), ->unpack_package(), is_wp_error(), source(), apply_filters(), ->set_result(), is_wp_error(), ->error(), method_exists(), ->hide_process_failed(), ->feedback(), ->after(), do_action(), ->footer() |
->get_error_data() && !method_exists() | 147–172 | wp_parse_args(), apply_filters(), ->header(), ->before(), is_wp_error(), ->download_package(), is_wp_error(), ->get_error_data(), ->get_error_code(), ->get_error_message(), ->feedback(), ->get_error_code(), ->get_error_data(), signature_failure_code(), ->get_error_data(), is_wp_error(), ->unpack_package(), is_wp_error(), source(), apply_filters(), ->set_result(), is_wp_error(), ->error(), method_exists(), ->feedback(), ->after() |
->get_error_data() && method_exists() && ->hide_process_failed() | 147–172 | wp_parse_args(), apply_filters(), ->header(), ->before(), is_wp_error(), ->download_package(), is_wp_error(), ->get_error_data(), ->get_error_code(), ->get_error_message(), ->feedback(), ->get_error_code(), ->get_error_data(), signature_failure_code(), ->get_error_data(), is_wp_error(), ->unpack_package(), is_wp_error(), source(), apply_filters(), ->set_result(), is_wp_error(), ->error(), method_exists(), ->hide_process_failed(), ->after() |
$options && ->get_error_data() && method_exists() && !->hide_process_failed() | 149–174 | wp_parse_args(), apply_filters(), ->before(), is_wp_error(), ->download_package(), is_wp_error(), ->get_error_data(), ->get_error_code(), ->get_error_message(), ->feedback(), ->get_error_code(), ->get_error_data(), signature_failure_code(), ->get_error_data(), is_wp_error(), ->unpack_package(), is_wp_error(), source(), apply_filters(), ->set_result(), is_wp_error(), ->error(), method_exists(), ->hide_process_failed(), ->feedback(), ->after() |
!$options && ->get_error_data() && method_exists() && !->hide_process_failed() | 150–173 | wp_parse_args(), apply_filters(), ->header(), ->before(), is_wp_error(), ->download_package(), is_wp_error(), ->get_error_data(), ->get_error_code(), ->get_error_data(), is_wp_error(), ->unpack_package(), is_wp_error(), source(), apply_filters(), ->set_result(), is_wp_error(), ->error(), method_exists(), ->hide_process_failed(), ->feedback(), ->after(), do_action(), ->footer() |
->get_error_data() && method_exists() && !->hide_process_failed() | 152–177 | wp_parse_args(), apply_filters(), ->header(), ->before(), is_wp_error(), ->download_package(), is_wp_error(), ->get_error_data(), ->get_error_code(), ->get_error_message(), ->feedback(), ->get_error_code(), ->get_error_data(), signature_failure_code(), ->get_error_data(), is_wp_error(), ->unpack_package(), is_wp_error(), source(), apply_filters(), ->set_result(), is_wp_error(), ->error(), method_exists(), ->hide_process_failed(), ->feedback(), ->after() |
->get_error_data() && !method_exists() | 155–180 | wp_parse_args(), apply_filters(), ->before(), is_wp_error(), ->download_package(), is_wp_error(), ->get_error_data(), ->get_error_code(), ->get_error_message(), ->feedback(), ->get_error_code(), ->get_error_data(), signature_failure_code(), ->get_error_data(), is_wp_error(), ->unpack_package(), is_wp_error(), source(), apply_filters(), ->set_result(), is_wp_error(), ->error(), method_exists(), ->feedback(), ->after(), do_action(), ->footer() |
->get_error_data() && method_exists() && ->hide_process_failed() | 155–180 | wp_parse_args(), apply_filters(), ->before(), is_wp_error(), ->download_package(), is_wp_error(), ->get_error_data(), ->get_error_code(), ->get_error_message(), ->feedback(), ->get_error_code(), ->get_error_data(), signature_failure_code(), ->get_error_data(), is_wp_error(), ->unpack_package(), is_wp_error(), source(), apply_filters(), ->set_result(), is_wp_error(), ->error(), method_exists(), ->hide_process_failed(), ->after(), do_action(), ->footer() |
!$options && ->get_error_data() && !method_exists() | 158–183 | wp_parse_args(), apply_filters(), ->header(), ->before(), is_wp_error(), ->download_package(), is_wp_error(), ->get_error_data(), ->get_error_code(), ->get_error_message(), ->feedback(), ->get_error_code(), ->get_error_data(), signature_failure_code(), ->get_error_data(), is_wp_error(), ->unpack_package(), is_wp_error(), source(), apply_filters(), ->set_result(), is_wp_error(), ->error(), method_exists(), ->feedback(), ->after(), do_action(), ->footer() |
!$options && ->get_error_data() && method_exists() && ->hide_process_failed() | 158–183 | wp_parse_args(), apply_filters(), ->header(), ->before(), is_wp_error(), ->download_package(), is_wp_error(), ->get_error_data(), ->get_error_code(), ->get_error_message(), ->feedback(), ->get_error_code(), ->get_error_data(), signature_failure_code(), ->get_error_data(), is_wp_error(), ->unpack_package(), is_wp_error(), source(), apply_filters(), ->set_result(), is_wp_error(), ->error(), method_exists(), ->hide_process_failed(), ->after(), do_action(), ->footer() |
->get_error_data() && method_exists() && !->hide_process_failed() | 160–185 | wp_parse_args(), apply_filters(), ->before(), is_wp_error(), ->download_package(), is_wp_error(), ->get_error_data(), ->get_error_code(), ->get_error_message(), ->feedback(), ->get_error_code(), ->get_error_data(), signature_failure_code(), ->get_error_data(), is_wp_error(), ->unpack_package(), is_wp_error(), source(), apply_filters(), ->set_result(), is_wp_error(), ->error(), method_exists(), ->hide_process_failed(), ->feedback(), ->after(), do_action(), ->footer() |
!$options && ->get_error_data() && method_exists() && !->hide_process_failed() | 163–188 | wp_parse_args(), apply_filters(), ->header(), ->before(), is_wp_error(), ->download_package(), is_wp_error(), ->get_error_data(), ->get_error_code(), ->get_error_message(), ->feedback(), ->get_error_code(), ->get_error_data(), signature_failure_code(), ->get_error_data(), is_wp_error(), ->unpack_package(), is_wp_error(), source(), apply_filters(), ->set_result(), is_wp_error(), ->error(), method_exists(), ->hide_process_failed(), ->feedback(), ->after(), do_action(), ->footer() |
Across PHP versions
Compiles the same on PHP 7.4, 8.1, 8.2, 8.3, 8.4, 8.5 and 8.6-dev: 237 instructions, 26–188 executed per call, 19 branches. The work does not change between versions.
An instruction is not a fixed amount of time, so a matching count is not necessarily the same speed; what it rules out is a difference in the work itself.
Hooks and filters fired · 3
3 hooks fire while WP_Upgrader::run() runs, in this order:
- apply_filters( upgrader_package_options )filterline 818 (+44 into the body)
Filters the package options before running an update.
- apply_filters( upgrader_install_package_result )filterline 917 (+143 into the body)
Filters the result of WP_Upgrader::install_package().
- do_action( upgrader_process_complete )actionline 988 (+214 into the body)
Fires when the upgrader process is complete.
Uses · 10
- wp_parse_args()Merges user defined arguments into defaults array.
- apply_filters()Calls the callback functions that have been added to a filter hook.
- is_wp_error()Checks whether the given variable is a WordPress Error.
- wp_version_check()Checks WordPress version against the newest version.
- add_action()Adds a callback function to an action hook.
- do_action()Calls the callback functions that have been added to an action hook.
- WP_Upgrader::fs_connect()Connects to the filesystem.
- WP_Upgrader::download_package()Downloads a package for a WordPress core, plugin, theme, or translation upgrade.
- WP_Upgrader::unpack_package()Unpacks a compressed package file.
- WP_Upgrader::install_package()Install a package.
Changelog
Introduced in 2.8.0. Unchanged from 6.7.7 through 7.1.0.
Signature, return type and hooks compared across 5 parsed releases.
About this page
- Parsed data
- Generated from the wordpress-develop 7.1.0 tag, from
src/wp-admin/includes/class-wp-upgrader.php, and regenerated for each WordPress release so it tracks the code rather than a snapshot of it. - Corrections
- Something wrong on this page? Report it and it gets fixed in the next regeneration.