wppaste
WordPress

Plugin_Installer_Skin::after()

Since
2.8.0
Source
wp-admin/includes/class-plugin-installer-skin.php:94
Performs an action following a plugin install.

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.

Performance profile

How much work a call to Plugin_Installer_Skin::after() 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
Moderate

Reads stored settings via get_option(), cached per request but not free on a cold cache.

Scaling
Constant

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

Instructions
4–131

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

Plugin surface
1 hook

Third-party callbacks on 'install_plugin_complete_actions' 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
  • optionoption read or writeget_option()one call below Plugin_Installer_Skin::after()

Further down the call graph this can also reach cache, serialize, query and transient. Those are the worst case, several calls deep and usually down an error path, not what a normal call pays.

What one call costs · 97 distinct outcomes

One number would be a lie: the work depends on which branch runs. These are every distinct cost Plugin_Installer_Skin::after() can have, taken from its control-flow graph on PHP 8.5.

WhenInstructionsCalls it makes
->do_overwrite()4->do_overwrite()
!->do_overwrite() && !isset($value) && !is_multisite() && $from === "import" && empty($install_actions)71–73->do_overwrite(), ->plugin_info(), urlencode(), wp_nonce_url(), __(), is_multisite(), admin_url(), __(), apply_filters()
!->do_overwrite() && !isset($value) && $from !== "import" && !is_multisite() && empty($install_actions)74–81->do_overwrite(), ->plugin_info(), urlencode(), wp_nonce_url(), __(), is_multisite(), self_admin_url(), __(), apply_filters()
!->do_overwrite() && !isset($value) && is_multisite() && !current_user_can() && $from === "import" && empty($install_actions)75–77->do_overwrite(), ->plugin_info(), urlencode(), wp_nonce_url(), __(), is_multisite(), current_user_can(), admin_url(), __(), apply_filters()
!->do_overwrite() && !isset($value) && !is_multisite() && $from === "import" && !empty($install_actions)76–78->do_overwrite(), ->plugin_info(), urlencode(), wp_nonce_url(), __(), is_multisite(), admin_url(), __(), apply_filters(), ->feedback()
!->do_overwrite() && !isset($value) && !is_multisite() && $from === "import" && is_wp_error() && empty($install_actions)77–79->do_overwrite(), ->plugin_info(), urlencode(), wp_nonce_url(), __(), is_multisite(), admin_url(), __(), is_wp_error(), apply_filters()
!->do_overwrite() && !isset($value) && $from !== "import" && is_multisite() && !current_user_can() && empty($install_actions)78–85->do_overwrite(), ->plugin_info(), urlencode(), wp_nonce_url(), __(), is_multisite(), current_user_can(), self_admin_url(), __(), apply_filters()
!->do_overwrite() && isset($value) && !is_multisite() && $from === "import" && empty($install_actions)78–80->do_overwrite(), ->plugin_info(), wp_unslash(), urlencode(), wp_nonce_url(), __(), is_multisite(), admin_url(), __(), apply_filters()
!->do_overwrite() && !isset($value) && $from !== "import" && !is_multisite() && !empty($install_actions)79–86->do_overwrite(), ->plugin_info(), urlencode(), wp_nonce_url(), __(), is_multisite(), self_admin_url(), __(), apply_filters(), ->feedback()
!->do_overwrite() && !isset($value) && $from !== "import" && !is_multisite() && is_wp_error() && empty($install_actions)80–87->do_overwrite(), ->plugin_info(), urlencode(), wp_nonce_url(), __(), is_multisite(), self_admin_url(), __(), is_wp_error(), apply_filters()
!->do_overwrite() && !isset($value) && !is_multisite() && $from === "import" && !is_wp_error() && !current_user_can() && empty($install_actions)80–82->do_overwrite(), ->plugin_info(), urlencode(), wp_nonce_url(), __(), is_multisite(), admin_url(), __(), is_wp_error(), current_user_can(), apply_filters()
!->do_overwrite() && !isset($value) && is_multisite() && !current_user_can() && $from === "import" && !empty($install_actions)80–82->do_overwrite(), ->plugin_info(), urlencode(), wp_nonce_url(), __(), is_multisite(), current_user_can(), admin_url(), __(), apply_filters(), ->feedback()
85 further outcomes, up to 131 instructions
!->do_overwrite() && isset($value) && $from !== "import" && !is_multisite() && empty($install_actions)81–88->do_overwrite(), ->plugin_info(), wp_unslash(), urlencode(), wp_nonce_url(), __(), is_multisite(), self_admin_url(), __(), apply_filters()
!->do_overwrite() && !isset($value) && is_multisite() && !current_user_can() && $from === "import" && is_wp_error() && empty($install_actions)81–83->do_overwrite(), ->plugin_info(), urlencode(), wp_nonce_url(), __(), is_multisite(), current_user_can(), admin_url(), __(), is_wp_error(), apply_filters()
!->do_overwrite() && !isset($value) && !is_multisite() && $from === "import" && is_wp_error() && !empty($install_actions)82–84->do_overwrite(), ->plugin_info(), urlencode(), wp_nonce_url(), __(), is_multisite(), admin_url(), __(), is_wp_error(), apply_filters(), ->feedback()
!->do_overwrite() && isset($value) && is_multisite() && !current_user_can() && $from === "import" && empty($install_actions)82–84->do_overwrite(), ->plugin_info(), wp_unslash(), urlencode(), wp_nonce_url(), __(), is_multisite(), current_user_can(), admin_url(), __(), apply_filters()
!->do_overwrite() && !isset($value) && $from !== "import" && !is_multisite() && !is_wp_error() && !current_user_can() && empty($install_actions)83–90->do_overwrite(), ->plugin_info(), urlencode(), wp_nonce_url(), __(), is_multisite(), self_admin_url(), __(), is_wp_error(), current_user_can(), apply_filters()
!->do_overwrite() && !isset($value) && $from !== "import" && is_multisite() && !current_user_can() && !empty($install_actions)83–90->do_overwrite(), ->plugin_info(), urlencode(), wp_nonce_url(), __(), is_multisite(), current_user_can(), self_admin_url(), __(), apply_filters(), ->feedback()
!->do_overwrite() && isset($value) && !is_multisite() && $from === "import" && !empty($install_actions)83–85->do_overwrite(), ->plugin_info(), wp_unslash(), urlencode(), wp_nonce_url(), __(), is_multisite(), admin_url(), __(), apply_filters(), ->feedback()
!->do_overwrite() && !isset($value) && !is_multisite() && $from === "import" && !is_wp_error() && current_user_can() && empty($install_actions)83–86->do_overwrite(), ->plugin_info(), urlencode(), wp_nonce_url(), __(), is_multisite(), admin_url(), __(), is_wp_error(), current_user_can(), is_plugin_active(), apply_filters()
!->do_overwrite() && !isset($value) && $from !== "import" && is_multisite() && !current_user_can() && is_wp_error() && empty($install_actions)84–91->do_overwrite(), ->plugin_info(), urlencode(), wp_nonce_url(), __(), is_multisite(), current_user_can(), self_admin_url(), __(), is_wp_error(), apply_filters()
!->do_overwrite() && isset($value) && !is_multisite() && $from === "import" && is_wp_error() && empty($install_actions)84–86->do_overwrite(), ->plugin_info(), wp_unslash(), urlencode(), wp_nonce_url(), __(), is_multisite(), admin_url(), __(), is_wp_error(), apply_filters()
!->do_overwrite() && !isset($value) && is_multisite() && !current_user_can() && $from === "import" && !is_wp_error() && empty($install_actions)84–86->do_overwrite(), ->plugin_info(), urlencode(), wp_nonce_url(), __(), is_multisite(), current_user_can(), admin_url(), __(), is_wp_error(), current_user_can(), apply_filters()
!->do_overwrite() && !isset($value) && $from !== "import" && !is_multisite() && is_wp_error() && !empty($install_actions)85–92->do_overwrite(), ->plugin_info(), urlencode(), wp_nonce_url(), __(), is_multisite(), self_admin_url(), __(), is_wp_error(), apply_filters(), ->feedback()
!->do_overwrite() && isset($value) && $from !== "import" && is_multisite() && !current_user_can() && empty($install_actions)85–92->do_overwrite(), ->plugin_info(), wp_unslash(), urlencode(), wp_nonce_url(), __(), is_multisite(), current_user_can(), self_admin_url(), __(), apply_filters()
!->do_overwrite() && !isset($value) && !is_multisite() && $from === "import" && !is_wp_error() && !current_user_can() && !empty($install_actions)85–87->do_overwrite(), ->plugin_info(), urlencode(), wp_nonce_url(), __(), is_multisite(), admin_url(), __(), is_wp_error(), current_user_can(), apply_filters(), ->feedback()
!->do_overwrite() && isset($value) && $from !== "import" && !is_multisite() && !empty($install_actions)86–93->do_overwrite(), ->plugin_info(), wp_unslash(), urlencode(), wp_nonce_url(), __(), is_multisite(), self_admin_url(), __(), apply_filters(), ->feedback()
!->do_overwrite() && !isset($value) && $from !== "import" && !is_multisite() && !is_wp_error() && current_user_can() && empty($install_actions)86–94->do_overwrite(), ->plugin_info(), urlencode(), wp_nonce_url(), __(), is_multisite(), self_admin_url(), __(), is_wp_error(), current_user_can(), is_plugin_active(), apply_filters()
!->do_overwrite() && !isset($value) && is_multisite() && !current_user_can() && $from === "import" && is_wp_error() && !empty($install_actions)86–88->do_overwrite(), ->plugin_info(), urlencode(), wp_nonce_url(), __(), is_multisite(), current_user_can(), admin_url(), __(), is_wp_error(), apply_filters(), ->feedback()
!->do_overwrite() && isset($value) && $from !== "import" && !is_multisite() && is_wp_error() && empty($install_actions)87–94->do_overwrite(), ->plugin_info(), wp_unslash(), urlencode(), wp_nonce_url(), __(), is_multisite(), self_admin_url(), __(), is_wp_error(), apply_filters()
!->do_overwrite() && !isset($value) && $from !== "import" && is_multisite() && !current_user_can() && !is_wp_error() && empty($install_actions)87–94->do_overwrite(), ->plugin_info(), urlencode(), wp_nonce_url(), __(), is_multisite(), current_user_can(), self_admin_url(), __(), is_wp_error(), current_user_can(), apply_filters()
!->do_overwrite() && isset($value) && !is_multisite() && $from === "import" && !is_wp_error() && !current_user_can() && empty($install_actions)87–89->do_overwrite(), ->plugin_info(), wp_unslash(), urlencode(), wp_nonce_url(), __(), is_multisite(), admin_url(), __(), is_wp_error(), current_user_can(), apply_filters()
!->do_overwrite() && isset($value) && is_multisite() && !current_user_can() && $from === "import" && !empty($install_actions)87–89->do_overwrite(), ->plugin_info(), wp_unslash(), urlencode(), wp_nonce_url(), __(), is_multisite(), current_user_can(), admin_url(), __(), apply_filters(), ->feedback()
!->do_overwrite() && !isset($value) && is_multisite() && $from === "import" && !is_wp_error() && empty($install_actions)87–90->do_overwrite(), ->plugin_info(), urlencode(), wp_nonce_url(), __(), is_multisite(), current_user_can(), admin_url(), __(), is_wp_error(), current_user_can(), is_plugin_active(), apply_filters()
!->do_overwrite() && !isset($value) && $from !== "import" && !is_multisite() && !is_wp_error() && !current_user_can() && !empty($install_actions)88–95->do_overwrite(), ->plugin_info(), urlencode(), wp_nonce_url(), __(), is_multisite(), self_admin_url(), __(), is_wp_error(), current_user_can(), apply_filters(), ->feedback()
!->do_overwrite() && isset($value) && is_multisite() && !current_user_can() && $from === "import" && is_wp_error() && empty($install_actions)88–90->do_overwrite(), ->plugin_info(), wp_unslash(), urlencode(), wp_nonce_url(), __(), is_multisite(), current_user_can(), admin_url(), __(), is_wp_error(), apply_filters()
!->do_overwrite() && !isset($value) && !is_multisite() && $from === "import" && !is_wp_error() && current_user_can() && !empty($install_actions)88–91->do_overwrite(), ->plugin_info(), urlencode(), wp_nonce_url(), __(), is_multisite(), admin_url(), __(), is_wp_error(), current_user_can(), is_plugin_active(), apply_filters(), ->feedback()
!->do_overwrite() && !isset($value) && $from !== "import" && is_multisite() && !current_user_can() && is_wp_error() && !empty($install_actions)89–96->do_overwrite(), ->plugin_info(), urlencode(), wp_nonce_url(), __(), is_multisite(), current_user_can(), self_admin_url(), __(), is_wp_error(), apply_filters(), ->feedback()
!->do_overwrite() && isset($value) && !is_multisite() && $from === "import" && is_wp_error() && !empty($install_actions)89–91->do_overwrite(), ->plugin_info(), wp_unslash(), urlencode(), wp_nonce_url(), __(), is_multisite(), admin_url(), __(), is_wp_error(), apply_filters(), ->feedback()
!->do_overwrite() && !isset($value) && is_multisite() && !current_user_can() && $from === "import" && !is_wp_error() && !empty($install_actions)89–91->do_overwrite(), ->plugin_info(), urlencode(), wp_nonce_url(), __(), is_multisite(), current_user_can(), admin_url(), __(), is_wp_error(), current_user_can(), apply_filters(), ->feedback()
!->do_overwrite() && isset($value) && $from !== "import" && !is_multisite() && !is_wp_error() && !current_user_can() && empty($install_actions)90–97->do_overwrite(), ->plugin_info(), wp_unslash(), urlencode(), wp_nonce_url(), __(), is_multisite(), self_admin_url(), __(), is_wp_error(), current_user_can(), apply_filters()
!->do_overwrite() && isset($value) && $from !== "import" && is_multisite() && !current_user_can() && !empty($install_actions)90–97->do_overwrite(), ->plugin_info(), wp_unslash(), urlencode(), wp_nonce_url(), __(), is_multisite(), current_user_can(), self_admin_url(), __(), apply_filters(), ->feedback()
!->do_overwrite() && !isset($value) && $from !== "import" && is_multisite() && !is_wp_error() && empty($install_actions)90–98->do_overwrite(), ->plugin_info(), urlencode(), wp_nonce_url(), __(), is_multisite(), current_user_can(), self_admin_url(), __(), is_wp_error(), current_user_can(), is_plugin_active(), apply_filters()
!->do_overwrite() && isset($value) && !is_multisite() && $from === "import" && !is_wp_error() && current_user_can() && empty($install_actions)90–93->do_overwrite(), ->plugin_info(), wp_unslash(), urlencode(), wp_nonce_url(), __(), is_multisite(), admin_url(), __(), is_wp_error(), current_user_can(), is_plugin_active(), apply_filters()
!->do_overwrite() && isset($value) && $from !== "import" && is_multisite() && !current_user_can() && is_wp_error() && empty($install_actions)91–98->do_overwrite(), ->plugin_info(), wp_unslash(), urlencode(), wp_nonce_url(), __(), is_multisite(), current_user_can(), self_admin_url(), __(), is_wp_error(), apply_filters()
!->do_overwrite() && !isset($value) && $from !== "import" && !is_multisite() && !is_wp_error() && current_user_can() && !empty($install_actions)91–99->do_overwrite(), ->plugin_info(), urlencode(), wp_nonce_url(), __(), is_multisite(), self_admin_url(), __(), is_wp_error(), current_user_can(), is_plugin_active(), apply_filters(), ->feedback()
!->do_overwrite() && isset($value) && is_multisite() && !current_user_can() && $from === "import" && !is_wp_error() && empty($install_actions)91–93->do_overwrite(), ->plugin_info(), wp_unslash(), urlencode(), wp_nonce_url(), __(), is_multisite(), current_user_can(), admin_url(), __(), is_wp_error(), current_user_can(), apply_filters()
!->do_overwrite() && isset($value) && $from !== "import" && !is_multisite() && is_wp_error() && !empty($install_actions)92–99->do_overwrite(), ->plugin_info(), wp_unslash(), urlencode(), wp_nonce_url(), __(), is_multisite(), self_admin_url(), __(), is_wp_error(), apply_filters(), ->feedback()
!->do_overwrite() && !isset($value) && $from !== "import" && is_multisite() && !current_user_can() && !is_wp_error() && !empty($install_actions)92–99->do_overwrite(), ->plugin_info(), urlencode(), wp_nonce_url(), __(), is_multisite(), current_user_can(), self_admin_url(), __(), is_wp_error(), current_user_can(), apply_filters(), ->feedback()
!->do_overwrite() && isset($value) && !is_multisite() && $from === "import" && !is_wp_error() && !current_user_can() && !empty($install_actions)92–94->do_overwrite(), ->plugin_info(), wp_unslash(), urlencode(), wp_nonce_url(), __(), is_multisite(), admin_url(), __(), is_wp_error(), current_user_can(), apply_filters(), ->feedback()
!->do_overwrite() && !isset($value) && is_multisite() && $from === "import" && !is_wp_error() && !empty($install_actions)92–95->do_overwrite(), ->plugin_info(), urlencode(), wp_nonce_url(), __(), is_multisite(), current_user_can(), admin_url(), __(), is_wp_error(), current_user_can(), is_plugin_active(), apply_filters(), ->feedback()
!->do_overwrite() && isset($value) && $from !== "import" && !is_multisite() && !is_wp_error() && current_user_can() && empty($install_actions)93–101->do_overwrite(), ->plugin_info(), wp_unslash(), urlencode(), wp_nonce_url(), __(), is_multisite(), self_admin_url(), __(), is_wp_error(), current_user_can(), is_plugin_active(), apply_filters()
!->do_overwrite() && isset($value) && is_multisite() && !current_user_can() && $from === "import" && is_wp_error() && !empty($install_actions)93–95->do_overwrite(), ->plugin_info(), wp_unslash(), urlencode(), wp_nonce_url(), __(), is_multisite(), current_user_can(), admin_url(), __(), is_wp_error(), apply_filters(), ->feedback()
!->do_overwrite() && isset($value) && $from !== "import" && is_multisite() && !current_user_can() && !is_wp_error() && empty($install_actions)94–101->do_overwrite(), ->plugin_info(), wp_unslash(), urlencode(), wp_nonce_url(), __(), is_multisite(), current_user_can(), self_admin_url(), __(), is_wp_error(), current_user_can(), apply_filters()
!->do_overwrite() && isset($value) && is_multisite() && $from === "import" && !is_wp_error() && empty($install_actions)94–97->do_overwrite(), ->plugin_info(), wp_unslash(), urlencode(), wp_nonce_url(), __(), is_multisite(), current_user_can(), admin_url(), __(), is_wp_error(), current_user_can(), is_plugin_active(), apply_filters()
!->do_overwrite() && isset($value) && $from !== "import" && !is_multisite() && !is_wp_error() && !current_user_can() && !empty($install_actions)95–102->do_overwrite(), ->plugin_info(), wp_unslash(), urlencode(), wp_nonce_url(), __(), is_multisite(), self_admin_url(), __(), is_wp_error(), current_user_can(), apply_filters(), ->feedback()
!->do_overwrite() && !isset($value) && $from !== "import" && is_multisite() && !is_wp_error() && !empty($install_actions)95–103->do_overwrite(), ->plugin_info(), urlencode(), wp_nonce_url(), __(), is_multisite(), current_user_can(), self_admin_url(), __(), is_wp_error(), current_user_can(), is_plugin_active(), apply_filters(), ->feedback()
!->do_overwrite() && isset($value) && !is_multisite() && $from === "import" && !is_wp_error() && current_user_can() && !empty($install_actions)95–98->do_overwrite(), ->plugin_info(), wp_unslash(), urlencode(), wp_nonce_url(), __(), is_multisite(), admin_url(), __(), is_wp_error(), current_user_can(), is_plugin_active(), apply_filters(), ->feedback()
!->do_overwrite() && !isset($value) && is_multisite() && current_user_can() && $from === "import" && empty($install_actions)96–98->do_overwrite(), ->plugin_info(), urlencode(), wp_nonce_url(), __(), is_multisite(), current_user_can(), urlencode(), wp_nonce_url(), _x(), admin_url(), __(), apply_filters()
!->do_overwrite() && isset($value) && $from !== "import" && is_multisite() && !current_user_can() && is_wp_error() && !empty($install_actions)96–103->do_overwrite(), ->plugin_info(), wp_unslash(), urlencode(), wp_nonce_url(), __(), is_multisite(), current_user_can(), self_admin_url(), __(), is_wp_error(), apply_filters(), ->feedback()
!->do_overwrite() && isset($value) && is_multisite() && !current_user_can() && $from === "import" && !is_wp_error() && !empty($install_actions)96–98->do_overwrite(), ->plugin_info(), wp_unslash(), urlencode(), wp_nonce_url(), __(), is_multisite(), current_user_can(), admin_url(), __(), is_wp_error(), current_user_can(), apply_filters(), ->feedback()
!->do_overwrite() && isset($value) && $from !== "import" && is_multisite() && !is_wp_error() && empty($install_actions)97–105->do_overwrite(), ->plugin_info(), wp_unslash(), urlencode(), wp_nonce_url(), __(), is_multisite(), current_user_can(), self_admin_url(), __(), is_wp_error(), current_user_can(), is_plugin_active(), apply_filters()
!->do_overwrite() && isset($value) && $from !== "import" && !is_multisite() && !is_wp_error() && current_user_can() && !empty($install_actions)98–106->do_overwrite(), ->plugin_info(), wp_unslash(), urlencode(), wp_nonce_url(), __(), is_multisite(), self_admin_url(), __(), is_wp_error(), current_user_can(), is_plugin_active(), apply_filters(), ->feedback()
!->do_overwrite() && !isset($value) && $from !== "import" && is_multisite() && current_user_can() && empty($install_actions)99–106->do_overwrite(), ->plugin_info(), urlencode(), wp_nonce_url(), __(), is_multisite(), current_user_can(), urlencode(), wp_nonce_url(), _x(), self_admin_url(), __(), apply_filters()
!->do_overwrite() && isset($value) && $from !== "import" && is_multisite() && !current_user_can() && !is_wp_error() && !empty($install_actions)99–106->do_overwrite(), ->plugin_info(), wp_unslash(), urlencode(), wp_nonce_url(), __(), is_multisite(), current_user_can(), self_admin_url(), __(), is_wp_error(), current_user_can(), apply_filters(), ->feedback()
!->do_overwrite() && isset($value) && is_multisite() && $from === "import" && !is_wp_error() && !empty($install_actions)99–102->do_overwrite(), ->plugin_info(), wp_unslash(), urlencode(), wp_nonce_url(), __(), is_multisite(), current_user_can(), admin_url(), __(), is_wp_error(), current_user_can(), is_plugin_active(), apply_filters(), ->feedback()
!->do_overwrite() && !isset($value) && is_multisite() && current_user_can() && $from === "import" && !empty($install_actions)101–103->do_overwrite(), ->plugin_info(), urlencode(), wp_nonce_url(), __(), is_multisite(), current_user_can(), urlencode(), wp_nonce_url(), _x(), admin_url(), __(), apply_filters(), ->feedback()
!->do_overwrite() && !isset($value) && is_multisite() && current_user_can() && $from === "import" && is_wp_error() && empty($install_actions)102–104->do_overwrite(), ->plugin_info(), urlencode(), wp_nonce_url(), __(), is_multisite(), current_user_can(), urlencode(), wp_nonce_url(), _x(), admin_url(), __(), is_wp_error(), apply_filters()
!->do_overwrite() && isset($value) && $from !== "import" && is_multisite() && !is_wp_error() && !empty($install_actions)102–110->do_overwrite(), ->plugin_info(), wp_unslash(), urlencode(), wp_nonce_url(), __(), is_multisite(), current_user_can(), self_admin_url(), __(), is_wp_error(), current_user_can(), is_plugin_active(), apply_filters(), ->feedback()
!->do_overwrite() && isset($value) && is_multisite() && current_user_can() && $from === "import" && empty($install_actions)103–105->do_overwrite(), ->plugin_info(), wp_unslash(), urlencode(), wp_nonce_url(), __(), is_multisite(), current_user_can(), urlencode(), wp_nonce_url(), _x(), admin_url(), __(), apply_filters()
!->do_overwrite() && !isset($value) && $from !== "import" && is_multisite() && current_user_can() && !empty($install_actions)104–111->do_overwrite(), ->plugin_info(), urlencode(), wp_nonce_url(), __(), is_multisite(), current_user_can(), urlencode(), wp_nonce_url(), _x(), self_admin_url(), __(), apply_filters(), ->feedback()
!->do_overwrite() && !isset($value) && $from !== "import" && is_multisite() && current_user_can() && is_wp_error() && empty($install_actions)105–112->do_overwrite(), ->plugin_info(), urlencode(), wp_nonce_url(), __(), is_multisite(), current_user_can(), urlencode(), wp_nonce_url(), _x(), self_admin_url(), __(), is_wp_error(), apply_filters()
!->do_overwrite() && !isset($value) && is_multisite() && $from === "import" && !is_wp_error() && empty($install_actions)105–107->do_overwrite(), ->plugin_info(), urlencode(), wp_nonce_url(), __(), is_multisite(), current_user_can(), urlencode(), wp_nonce_url(), _x(), admin_url(), __(), is_wp_error(), current_user_can(), apply_filters()
!->do_overwrite() && isset($value) && $from !== "import" && is_multisite() && current_user_can() && empty($install_actions)106–113->do_overwrite(), ->plugin_info(), wp_unslash(), urlencode(), wp_nonce_url(), __(), is_multisite(), current_user_can(), urlencode(), wp_nonce_url(), _x(), self_admin_url(), __(), apply_filters()
!->do_overwrite() && !isset($value) && is_multisite() && current_user_can() && $from === "import" && is_wp_error() && !empty($install_actions)107–109->do_overwrite(), ->plugin_info(), urlencode(), wp_nonce_url(), __(), is_multisite(), current_user_can(), urlencode(), wp_nonce_url(), _x(), admin_url(), __(), is_wp_error(), apply_filters(), ->feedback()
!->do_overwrite() && !isset($value) && $from !== "import" && is_multisite() && !is_wp_error() && empty($install_actions)108–115->do_overwrite(), ->plugin_info(), urlencode(), wp_nonce_url(), __(), is_multisite(), current_user_can(), urlencode(), wp_nonce_url(), _x(), self_admin_url(), __(), is_wp_error(), current_user_can(), apply_filters()
!->do_overwrite() && isset($value) && is_multisite() && current_user_can() && $from === "import" && !empty($install_actions)108–110->do_overwrite(), ->plugin_info(), wp_unslash(), urlencode(), wp_nonce_url(), __(), is_multisite(), current_user_can(), urlencode(), wp_nonce_url(), _x(), admin_url(), __(), apply_filters(), ->feedback()
!->do_overwrite() && !isset($value) && is_multisite() && current_user_can() && $from === "import" && !is_wp_error() && empty($install_actions)108–111->do_overwrite(), ->plugin_info(), urlencode(), wp_nonce_url(), __(), is_multisite(), current_user_can(), urlencode(), wp_nonce_url(), _x(), admin_url(), __(), is_wp_error(), current_user_can(), is_plugin_active(), apply_filters()
!->do_overwrite() && isset($value) && is_multisite() && current_user_can() && $from === "import" && is_wp_error() && empty($install_actions)109–111->do_overwrite(), ->plugin_info(), wp_unslash(), urlencode(), wp_nonce_url(), __(), is_multisite(), current_user_can(), urlencode(), wp_nonce_url(), _x(), admin_url(), __(), is_wp_error(), apply_filters()
!->do_overwrite() && !isset($value) && $from !== "import" && is_multisite() && current_user_can() && is_wp_error() && !empty($install_actions)110–117->do_overwrite(), ->plugin_info(), urlencode(), wp_nonce_url(), __(), is_multisite(), current_user_can(), urlencode(), wp_nonce_url(), _x(), self_admin_url(), __(), is_wp_error(), apply_filters(), ->feedback()
!->do_overwrite() && !isset($value) && is_multisite() && $from === "import" && !is_wp_error() && !empty($install_actions)110–112->do_overwrite(), ->plugin_info(), urlencode(), wp_nonce_url(), __(), is_multisite(), current_user_can(), urlencode(), wp_nonce_url(), _x(), admin_url(), __(), is_wp_error(), current_user_can(), apply_filters(), ->feedback()
!->do_overwrite() && isset($value) && $from !== "import" && is_multisite() && current_user_can() && !empty($install_actions)111–118->do_overwrite(), ->plugin_info(), wp_unslash(), urlencode(), wp_nonce_url(), __(), is_multisite(), current_user_can(), urlencode(), wp_nonce_url(), _x(), self_admin_url(), __(), apply_filters(), ->feedback()
!->do_overwrite() && !isset($value) && $from !== "import" && is_multisite() && current_user_can() && !is_wp_error() && empty($install_actions)111–119->do_overwrite(), ->plugin_info(), urlencode(), wp_nonce_url(), __(), is_multisite(), current_user_can(), urlencode(), wp_nonce_url(), _x(), self_admin_url(), __(), is_wp_error(), current_user_can(), is_plugin_active(), apply_filters()
!->do_overwrite() && isset($value) && $from !== "import" && is_multisite() && current_user_can() && is_wp_error() && empty($install_actions)112–119->do_overwrite(), ->plugin_info(), wp_unslash(), urlencode(), wp_nonce_url(), __(), is_multisite(), current_user_can(), urlencode(), wp_nonce_url(), _x(), self_admin_url(), __(), is_wp_error(), apply_filters()
!->do_overwrite() && isset($value) && is_multisite() && $from === "import" && !is_wp_error() && empty($install_actions)112–114->do_overwrite(), ->plugin_info(), wp_unslash(), urlencode(), wp_nonce_url(), __(), is_multisite(), current_user_can(), urlencode(), wp_nonce_url(), _x(), admin_url(), __(), is_wp_error(), current_user_can(), apply_filters()
!->do_overwrite() && !isset($value) && $from !== "import" && is_multisite() && !is_wp_error() && !empty($install_actions)113–120->do_overwrite(), ->plugin_info(), urlencode(), wp_nonce_url(), __(), is_multisite(), current_user_can(), urlencode(), wp_nonce_url(), _x(), self_admin_url(), __(), is_wp_error(), current_user_can(), apply_filters(), ->feedback()
!->do_overwrite() && !isset($value) && is_multisite() && current_user_can() && $from === "import" && !is_wp_error() && !empty($install_actions)113–116->do_overwrite(), ->plugin_info(), urlencode(), wp_nonce_url(), __(), is_multisite(), current_user_can(), urlencode(), wp_nonce_url(), _x(), admin_url(), __(), is_wp_error(), current_user_can(), is_plugin_active(), apply_filters(), ->feedback()
!->do_overwrite() && isset($value) && is_multisite() && current_user_can() && $from === "import" && is_wp_error() && !empty($install_actions)114–116->do_overwrite(), ->plugin_info(), wp_unslash(), urlencode(), wp_nonce_url(), __(), is_multisite(), current_user_can(), urlencode(), wp_nonce_url(), _x(), admin_url(), __(), is_wp_error(), apply_filters(), ->feedback()
!->do_overwrite() && isset($value) && $from !== "import" && is_multisite() && !is_wp_error() && empty($install_actions)115–122->do_overwrite(), ->plugin_info(), wp_unslash(), urlencode(), wp_nonce_url(), __(), is_multisite(), current_user_can(), urlencode(), wp_nonce_url(), _x(), self_admin_url(), __(), is_wp_error(), current_user_can(), apply_filters()
!->do_overwrite() && isset($value) && is_multisite() && current_user_can() && $from === "import" && !is_wp_error() && empty($install_actions)115–118->do_overwrite(), ->plugin_info(), wp_unslash(), urlencode(), wp_nonce_url(), __(), is_multisite(), current_user_can(), urlencode(), wp_nonce_url(), _x(), admin_url(), __(), is_wp_error(), current_user_can(), is_plugin_active(), apply_filters()
!->do_overwrite() && !isset($value) && $from !== "import" && is_multisite() && current_user_can() && !is_wp_error() && !empty($install_actions)116–124->do_overwrite(), ->plugin_info(), urlencode(), wp_nonce_url(), __(), is_multisite(), current_user_can(), urlencode(), wp_nonce_url(), _x(), self_admin_url(), __(), is_wp_error(), current_user_can(), is_plugin_active(), apply_filters(), ->feedback()
!->do_overwrite() && isset($value) && $from !== "import" && is_multisite() && current_user_can() && is_wp_error() && !empty($install_actions)117–124->do_overwrite(), ->plugin_info(), wp_unslash(), urlencode(), wp_nonce_url(), __(), is_multisite(), current_user_can(), urlencode(), wp_nonce_url(), _x(), self_admin_url(), __(), is_wp_error(), apply_filters(), ->feedback()
!->do_overwrite() && isset($value) && is_multisite() && $from === "import" && !is_wp_error() && !empty($install_actions)117–119->do_overwrite(), ->plugin_info(), wp_unslash(), urlencode(), wp_nonce_url(), __(), is_multisite(), current_user_can(), urlencode(), wp_nonce_url(), _x(), admin_url(), __(), is_wp_error(), current_user_can(), apply_filters(), ->feedback()
!->do_overwrite() && isset($value) && $from !== "import" && is_multisite() && current_user_can() && !is_wp_error() && empty($install_actions)118–126->do_overwrite(), ->plugin_info(), wp_unslash(), urlencode(), wp_nonce_url(), __(), is_multisite(), current_user_can(), urlencode(), wp_nonce_url(), _x(), self_admin_url(), __(), is_wp_error(), current_user_can(), is_plugin_active(), apply_filters()
!->do_overwrite() && isset($value) && $from !== "import" && is_multisite() && !is_wp_error() && !empty($install_actions)120–127->do_overwrite(), ->plugin_info(), wp_unslash(), urlencode(), wp_nonce_url(), __(), is_multisite(), current_user_can(), urlencode(), wp_nonce_url(), _x(), self_admin_url(), __(), is_wp_error(), current_user_can(), apply_filters(), ->feedback()
!->do_overwrite() && isset($value) && is_multisite() && current_user_can() && $from === "import" && !is_wp_error() && !empty($install_actions)120–123->do_overwrite(), ->plugin_info(), wp_unslash(), urlencode(), wp_nonce_url(), __(), is_multisite(), current_user_can(), urlencode(), wp_nonce_url(), _x(), admin_url(), __(), is_wp_error(), current_user_can(), is_plugin_active(), apply_filters(), ->feedback()
!->do_overwrite() && isset($value) && $from !== "import" && is_multisite() && current_user_can() && !is_wp_error() && !empty($install_actions)123–131->do_overwrite(), ->plugin_info(), wp_unslash(), urlencode(), wp_nonce_url(), __(), is_multisite(), current_user_can(), urlencode(), wp_nonce_url(), _x(), self_admin_url(), __(), is_wp_error(), current_user_can(), is_plugin_active(), apply_filters(), ->feedback()

Across PHP versions

PHPCompiledExecutedBranchesNotes
8.6-dev2154–130151 fewer instruction than PHP 8.5
8.52164–13115
8.42164–131153 fewer instructions than PHP 8.3
8.32194–13415
8.22194–13415
8.12194–13415
7.42194–13415

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 · 1

One hook fires while Plugin_Installer_Skin::after() runs, in this order:

  1. apply_filters( install_plugin_complete_actions )filterline 178 (+84 into the body)

    Filters the list of action links available following a single plugin installation.

Uses · 13

  • wp_unslash()Removes slashes from a string or recursively removes slashes from strings within an array.
  • wp_nonce_url()Retrieves URL with nonce added to URL query.
  • __()Retrieves the translation of $text.
  • is_multisite()Determines whether Multisite is enabled.
  • current_user_can()Returns whether the current user has the specified capability.
  • _x()Retrieves translated string with gettext context.
  • admin_url()Retrieves the URL to the admin area for the current site.
  • self_admin_url()Retrieves the URL to the admin area for either the current site or the network depending on context.
  • is_wp_error()Checks whether the given variable is a WordPress Error.
  • is_plugin_active()Determines whether a plugin is active.
  • apply_filters()Calls the callback functions that have been added to a filter hook.
  • Plugin_Installer_Skin::do_overwrite()Checks if the plugin can be overwritten and outputs the HTML for overwriting a plugin on upload.
Show all 13
  • Plugin_Installer_Skin::feedback()

Source code

	public function after() {		// Check if the plugin can be overwritten and output the HTML.		if ( $this->do_overwrite() ) {			return;		} 		$plugin_file = $this->upgrader->plugin_info(); 		$install_actions = array(); 		$from = isset( $_GET['from'] ) ? wp_unslash( $_GET['from'] ) : 'plugins'; 		if ( 'import' === $from ) {			$install_actions['activate_plugin'] = sprintf(				'<a class="button button-primary" href="%s" target="_parent">%s</a>',				wp_nonce_url( 'plugins.php?action=activate&amp;from=import&amp;plugin=' . urlencode( $plugin_file ), 'activate-plugin_' . $plugin_file ),				__( 'Activate Plugin &amp; Run Importer' )			);		} elseif ( 'press-this' === $from ) {			$install_actions['activate_plugin'] = sprintf(				'<a class="button button-primary" href="%s" target="_parent">%s</a>',				wp_nonce_url( 'plugins.php?action=activate&amp;from=press-this&amp;plugin=' . urlencode( $plugin_file ), 'activate-plugin_' . $plugin_file ),				__( 'Activate Plugin &amp; Go to Press This' )			);		} else {			$install_actions['activate_plugin'] = sprintf(				'<a class="button button-primary" href="%s" target="_parent">%s</a>',				wp_nonce_url( 'plugins.php?action=activate&amp;plugin=' . urlencode( $plugin_file ), 'activate-plugin_' . $plugin_file ),				__( 'Activate Plugin' )			);		} 		if ( is_multisite() && current_user_can( 'manage_network_plugins' ) ) {			$install_actions['network_activate'] = sprintf(				'<a class="button button-primary" href="%s" target="_parent">%s</a>',				wp_nonce_url( 'plugins.php?action=activate&amp;networkwide=1&amp;plugin=' . urlencode( $plugin_file ), 'activate-plugin_' . $plugin_file ),				_x( 'Network Activate', 'plugin' )			);			unset( $install_actions['activate_plugin'] );		} 		if ( 'import' === $from ) {			$install_actions['importers_page'] = sprintf(				'<a href="%s" target="_parent">%s</a>',				admin_url( 'import.php' ),				__( 'Go to Importers' )			);		} elseif ( 'web' === $this->type ) {			$install_actions['plugins_page'] = sprintf(				'<a href="%s" target="_parent">%s</a>',				self_admin_url( 'plugin-install.php' ),				__( 'Go to Plugin Installer' )			);		} elseif ( 'upload' === $this->type && 'plugins' === $from ) {			$install_actions['plugins_page'] = sprintf(				'<a href="%s">%s</a>',				self_admin_url( 'plugin-install.php' ),				__( 'Go to Plugin Installer' )			);		} else {			$install_actions['plugins_page'] = sprintf(				'<a href="%s" target="_parent">%s</a>',				self_admin_url( 'plugins.php' ),				__( 'Go to Plugins page' )			);		} 		if ( ! $this->result || is_wp_error( $this->result ) ) {			unset( $install_actions['activate_plugin'], $install_actions['network_activate'] );		} elseif ( ! current_user_can( 'activate_plugin', $plugin_file ) || is_plugin_active( $plugin_file ) ) {			unset( $install_actions['activate_plugin'] );		} 		/**		 * Filters the list of action links available following a single plugin installation.		 *		 * @since 2.7.0		 *		 * @param string[] $install_actions Array of plugin action links.		 * @param object   $api             Object containing WordPress.org API plugin data. Empty

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-plugin-installer-skin.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.