wppaste
WordPress

WP_Upgrader::run( array $options ): array|false|WP_Error

Since
2.8.0
Source
wp-admin/includes/class-wp-upgrader.php:774
Runs an upgrade/installation.

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: empty

    The full path or URI of the package to install.
  • $destinationstringdefault: empty

    The full path to the destination folder.
  • $clear_destinationbooldefault: false

    Whether to delete any files already in the destination folder.
  • $clear_workingbooldefault: true

    Whether to delete the files from the working directory after copying them to the destination.
  • $abort_if_destination_existsbooldefault: true

    Whether to abort the installation if the destination folder already exists. When true, $clear_destination should be false.
  • $is_multibooldefault: false

    Whether 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_extraarray

    Extra 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

Reaches an outbound HTTP request via wp_remote_post().

Scaling
Constant

No loop in the body: the same number of instructions runs whatever you pass in.

Instructions
26–188

Executed per call on PHP 8.5, depending on the branch taken. The body compiles to 237.

Plugin surface
3 hooks

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.

Called by
0

Nothing in core calls this; the cost is only what you spend yourself.

What it touches

  • hookthird-party callbacksapply_filters()called directly
  • transienttransientget_site_transient()one call below WP_Upgrader::run()
  • optionnetwork optionget_site_option()one call below WP_Upgrader::run()
  • httpoutbound HTTP requestwp_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.

WhenInstructionsCalls it makes
$options26wp_parse_args(), apply_filters()
always29wp_parse_args(), apply_filters(), ->footer()
always29wp_parse_args(), apply_filters(), ->header()
!$options32wp_parse_args(), apply_filters(), ->header(), ->footer()
$options && is_wp_error()40wp_parse_args(), apply_filters(), ->before(), is_wp_error(), ->error(), ->after()
is_wp_error()43wp_parse_args(), apply_filters(), ->before(), is_wp_error(), ->error(), ->after(), ->footer()
is_wp_error()43wp_parse_args(), apply_filters(), ->header(), ->before(), is_wp_error(), ->error(), ->after()
!$options && is_wp_error()46wp_parse_args(), apply_filters(), ->header(), ->before(), is_wp_error(), ->error(), ->after(), ->footer()
$options58wp_parse_args(), apply_filters(), ->before(), is_wp_error(), ->download_package(), is_wp_error(), is_wp_error(), ->error(), ->after()
always61wp_parse_args(), apply_filters(), ->before(), is_wp_error(), ->download_package(), is_wp_error(), is_wp_error(), ->error(), ->after(), ->footer()
always61wp_parse_args(), apply_filters(), ->header(), ->before(), is_wp_error(), ->download_package(), is_wp_error(), is_wp_error(), ->error(), ->after()
$options && !->get_error_data()62wp_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
!$options64wp_parse_args(), apply_filters(), ->header(), ->before(), is_wp_error(), ->download_package(), is_wp_error(), is_wp_error(), ->error(), ->after(), ->footer()
!->get_error_data()65wp_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()65wp_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()68wp_parse_args(), apply_filters(), ->header(), ->before(), is_wp_error(), ->download_package(), is_wp_error(), ->get_error_data(), is_wp_error(), ->error(), ->after(), ->footer()
$options69wp_parse_args(), apply_filters(), ->before(), is_wp_error(), ->download_package(), is_wp_error(), is_wp_error(), ->unpack_package(), is_wp_error(), ->error(), ->after()
always72wp_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()72wp_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()
always72wp_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()73wp_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()75wp_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()
!$options75wp_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()75wp_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()76wp_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()76wp_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()78wp_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()79wp_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()83wp_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–87wp_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()86wp_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()86wp_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–90wp_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–90wp_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()89wp_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–93wp_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–98wp_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–101wp_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–101wp_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–104wp_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–112wp_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–115wp_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–116wp_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–119wp_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–123wp_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–140wp_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–140wp_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–126wp_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–126wp_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–127wp_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–143wp_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–143wp_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–129wp_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–144wp_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–144wp_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–130wp_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–145wp_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–147wp_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–147wp_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–148wp_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–149wp_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–151wp_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–151wp_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–137wp_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–152wp_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–141wp_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–154wp_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–154wp_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–154wp_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–154wp_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–140wp_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–155wp_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–155wp_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–156wp_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–144wp_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–157wp_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–157wp_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–158wp_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–158wp_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–159wp_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–159wp_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–160wp_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–162wp_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–163wp_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–152wp_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–165wp_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–165wp_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–169wp_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–169wp_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–155wp_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–168wp_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–168wp_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–170wp_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–172wp_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–172wp_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–174wp_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–173wp_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–177wp_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–180wp_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–180wp_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–183wp_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–183wp_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–185wp_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–188wp_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:

  1. apply_filters( upgrader_package_options )filterline 818 (+44 into the body)

    Filters the package options before running an update.

  2. apply_filters( upgrader_install_package_result )filterline 917 (+143 into the body)

    Filters the result of WP_Upgrader::install_package().

  3. do_action( upgrader_process_complete )actionline 988 (+214 into the body)

    Fires when the upgrader process is complete.

Uses · 10

Changelog

Introduced in 2.8.0. Unchanged from 6.7.7 through 7.1.0.

  1. 6.7.7
  2. 6.8.8
  3. 6.9.7
  4. 7.0.4
  5. 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.