wp_ajax_activate_plugin()
- Since
- 6.5.0
- Source
wp-admin/includes/ajax-actions.php:4568
Compatibility
- WordPress
- since 6.5.0
- PHP
- 7.4–8.6-dev
- 6.7.10
- 6.8.11
- 6.9.10
- 7.0.7
- 7.1.3
Present in every tracked release (6.7.10 to 7.1.3), and compiles on PHP 7.4 through 8.6-dev.
Performance profile
How much work a call to wp_ajax_activate_plugin() 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
- Scaling
- Constant
- Instructions
- 65–119
- Plugin surface
- None
- Called by
- 0
Reads stored settings via get_option(), cached per request but not free on a cold cache.
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 119.
Nothing here hands control to plugin code.
Nothing in core calls this; the cost is only what you spend yourself.
What it touches
- hookthird-party callbacks
do_action()one call below wp_ajax_activate_plugin() - optionoption read or write
get_option()one call below wp_ajax_activate_plugin()
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 · 64 distinct outcomes
One number would be a lie: the work depends on which branch runs. These are every distinct cost wp_ajax_activate_plugin() can have, taken from its control-flow graph on PHP 8.5.
| When | Instructions | Calls it makes |
|---|---|---|
!empty($value) && current_user_can() && !is_multisite() && !is_plugin_active() && !is_wp_error() | 65 | check_ajax_referer(), wp_unslash(), wp_unslash(), wp_unslash(), current_user_can(), is_multisite(), is_plugin_active(), activate_plugin(), is_wp_error(), wp_send_json_success() |
empty($value) && current_user_can() && !is_multisite() && !is_plugin_active() && !is_wp_error() | 70–76 | check_ajax_referer(), __(), slug(), wp_unslash(), wp_unslash(), wp_unslash(), current_user_can(), is_multisite(), is_plugin_active(), activate_plugin(), is_wp_error(), wp_send_json_success() |
!empty($value) && current_user_can() && is_multisite() && !is_network_only_plugin() && !is_plugin_active() && !is_wp_error() | 71 | check_ajax_referer(), wp_unslash(), wp_unslash(), wp_unslash(), current_user_can(), is_multisite(), is_network_only_plugin(), is_plugin_active(), activate_plugin(), is_wp_error(), wp_send_json_success() |
!empty($value) && current_user_can() && !is_multisite() && !is_plugin_active() && is_wp_error() | 72 | check_ajax_referer(), wp_unslash(), wp_unslash(), wp_unslash(), current_user_can(), is_multisite(), is_plugin_active(), activate_plugin(), is_wp_error(), ->get_error_message(), wp_send_json_error(), wp_send_json_success() |
!empty($value) && !current_user_can() && !is_multisite() && !is_plugin_active() && !is_wp_error() | 73 | check_ajax_referer(), wp_unslash(), wp_unslash(), wp_unslash(), current_user_can(), __(), wp_send_json_error(), is_multisite(), is_plugin_active(), activate_plugin(), is_wp_error(), wp_send_json_success() |
!empty($value) && current_user_can() && !is_multisite() && is_plugin_active() && !is_wp_error() | 75 | check_ajax_referer(), wp_unslash(), wp_unslash(), wp_unslash(), current_user_can(), is_multisite(), is_plugin_active(), __(), sprintf(), activate_plugin(), is_wp_error(), wp_send_json_success() |
!empty($value) && current_user_can() && is_multisite() && is_network_only_plugin() && !is_plugin_active() && !is_wp_error() | 75 | check_ajax_referer(), wp_unslash(), wp_unslash(), wp_unslash(), current_user_can(), is_multisite(), is_network_only_plugin(), current_user_can(), is_plugin_active(), activate_plugin(), is_wp_error(), wp_send_json_success() |
empty($value) && current_user_can() && is_multisite() && !is_network_only_plugin() && !is_plugin_active() && !is_wp_error() | 76–82 | check_ajax_referer(), __(), slug(), wp_unslash(), wp_unslash(), wp_unslash(), current_user_can(), is_multisite(), is_network_only_plugin(), is_plugin_active(), activate_plugin(), is_wp_error(), wp_send_json_success() |
empty($value) && current_user_can() && !is_multisite() && !is_plugin_active() && is_wp_error() | 77–83 | check_ajax_referer(), __(), slug(), wp_unslash(), wp_unslash(), wp_unslash(), current_user_can(), is_multisite(), is_plugin_active(), activate_plugin(), is_wp_error(), ->get_error_message(), wp_send_json_error(), wp_send_json_success() |
!empty($value) && current_user_can() && is_multisite() && !is_network_only_plugin() && !is_plugin_active() && is_wp_error() | 78 | check_ajax_referer(), wp_unslash(), wp_unslash(), wp_unslash(), current_user_can(), is_multisite(), is_network_only_plugin(), is_plugin_active(), activate_plugin(), is_wp_error(), ->get_error_message(), wp_send_json_error(), wp_send_json_success() |
empty($value) && !current_user_can() && !is_multisite() && !is_plugin_active() && !is_wp_error() | 78–84 | check_ajax_referer(), __(), slug(), wp_unslash(), wp_unslash(), wp_unslash(), current_user_can(), __(), wp_send_json_error(), is_multisite(), is_plugin_active(), activate_plugin(), is_wp_error(), wp_send_json_success() |
!empty($value) && !current_user_can() && is_multisite() && !is_network_only_plugin() && !is_plugin_active() && !is_wp_error() | 79 | check_ajax_referer(), wp_unslash(), wp_unslash(), wp_unslash(), current_user_can(), __(), wp_send_json_error(), is_multisite(), is_network_only_plugin(), is_plugin_active(), activate_plugin(), is_wp_error(), wp_send_json_success() |
52 further outcomes, up to 119 instructions
empty($value) && current_user_can() && !is_multisite() && is_plugin_active() && !is_wp_error() | 80–86 | check_ajax_referer(), __(), slug(), wp_unslash(), wp_unslash(), wp_unslash(), current_user_can(), is_multisite(), is_plugin_active(), __(), sprintf(), activate_plugin(), is_wp_error(), wp_send_json_success() |
empty($value) && current_user_can() && is_multisite() && is_network_only_plugin() && !is_plugin_active() && !is_wp_error() | 80–86 | check_ajax_referer(), __(), slug(), wp_unslash(), wp_unslash(), wp_unslash(), current_user_can(), is_multisite(), is_network_only_plugin(), current_user_can(), is_plugin_active(), activate_plugin(), is_wp_error(), wp_send_json_success() |
!empty($value) && !current_user_can() && !is_multisite() && !is_plugin_active() && is_wp_error() | 80 | check_ajax_referer(), wp_unslash(), wp_unslash(), wp_unslash(), current_user_can(), __(), wp_send_json_error(), is_multisite(), is_plugin_active(), activate_plugin(), is_wp_error(), ->get_error_message(), wp_send_json_error(), wp_send_json_success() |
!empty($value) && current_user_can() && is_multisite() && !is_network_only_plugin() && is_plugin_active() && !is_wp_error() | 81 | check_ajax_referer(), wp_unslash(), wp_unslash(), wp_unslash(), current_user_can(), is_multisite(), is_network_only_plugin(), is_plugin_active(), __(), sprintf(), activate_plugin(), is_wp_error(), wp_send_json_success() |
!empty($value) && current_user_can() && !is_multisite() && is_plugin_active() && is_wp_error() | 82 | check_ajax_referer(), wp_unslash(), wp_unslash(), wp_unslash(), current_user_can(), is_multisite(), is_plugin_active(), __(), sprintf(), activate_plugin(), is_wp_error(), ->get_error_message(), wp_send_json_error(), wp_send_json_success() |
!empty($value) && current_user_can() && is_multisite() && is_network_only_plugin() && !is_plugin_active() && is_wp_error() | 82 | check_ajax_referer(), wp_unslash(), wp_unslash(), wp_unslash(), current_user_can(), is_multisite(), is_network_only_plugin(), current_user_can(), is_plugin_active(), activate_plugin(), is_wp_error(), ->get_error_message(), wp_send_json_error(), wp_send_json_success() |
!empty($value) && is_multisite() && is_network_only_plugin() && !is_plugin_active() && !is_wp_error() | 83 | check_ajax_referer(), wp_unslash(), wp_unslash(), wp_unslash(), current_user_can(), is_multisite(), is_network_only_plugin(), current_user_can(), __(), wp_send_json_error(), is_plugin_active(), activate_plugin(), is_wp_error(), wp_send_json_success() |
!empty($value) && !current_user_can() && !is_multisite() && is_plugin_active() && !is_wp_error() | 83 | check_ajax_referer(), wp_unslash(), wp_unslash(), wp_unslash(), current_user_can(), __(), wp_send_json_error(), is_multisite(), is_plugin_active(), __(), sprintf(), activate_plugin(), is_wp_error(), wp_send_json_success() |
!empty($value) && is_multisite() && is_network_only_plugin() && !is_plugin_active() && !is_wp_error() | 83 | check_ajax_referer(), wp_unslash(), wp_unslash(), wp_unslash(), current_user_can(), __(), wp_send_json_error(), is_multisite(), is_network_only_plugin(), current_user_can(), is_plugin_active(), activate_plugin(), is_wp_error(), wp_send_json_success() |
empty($value) && current_user_can() && is_multisite() && !is_network_only_plugin() && !is_plugin_active() && is_wp_error() | 83–89 | check_ajax_referer(), __(), slug(), wp_unslash(), wp_unslash(), wp_unslash(), current_user_can(), is_multisite(), is_network_only_plugin(), is_plugin_active(), activate_plugin(), is_wp_error(), ->get_error_message(), wp_send_json_error(), wp_send_json_success() |
empty($value) && !current_user_can() && is_multisite() && !is_network_only_plugin() && !is_plugin_active() && !is_wp_error() | 84–90 | check_ajax_referer(), __(), slug(), wp_unslash(), wp_unslash(), wp_unslash(), current_user_can(), __(), wp_send_json_error(), is_multisite(), is_network_only_plugin(), is_plugin_active(), activate_plugin(), is_wp_error(), wp_send_json_success() |
!empty($value) && current_user_can() && is_multisite() && is_network_only_plugin() && is_plugin_active() && !is_wp_error() | 85 | check_ajax_referer(), wp_unslash(), wp_unslash(), wp_unslash(), current_user_can(), is_multisite(), is_network_only_plugin(), current_user_can(), is_plugin_active(), __(), sprintf(), activate_plugin(), is_wp_error(), wp_send_json_success() |
empty($value) && !current_user_can() && !is_multisite() && !is_plugin_active() && is_wp_error() | 85–91 | check_ajax_referer(), __(), slug(), wp_unslash(), wp_unslash(), wp_unslash(), current_user_can(), __(), wp_send_json_error(), is_multisite(), is_plugin_active(), activate_plugin(), is_wp_error(), ->get_error_message(), wp_send_json_error(), wp_send_json_success() |
empty($value) && current_user_can() && is_multisite() && !is_network_only_plugin() && is_plugin_active() && !is_wp_error() | 86–92 | check_ajax_referer(), __(), slug(), wp_unslash(), wp_unslash(), wp_unslash(), current_user_can(), is_multisite(), is_network_only_plugin(), is_plugin_active(), __(), sprintf(), activate_plugin(), is_wp_error(), wp_send_json_success() |
!empty($value) && !current_user_can() && is_multisite() && !is_network_only_plugin() && !is_plugin_active() && is_wp_error() | 86 | check_ajax_referer(), wp_unslash(), wp_unslash(), wp_unslash(), current_user_can(), __(), wp_send_json_error(), is_multisite(), is_network_only_plugin(), is_plugin_active(), activate_plugin(), is_wp_error(), ->get_error_message(), wp_send_json_error(), wp_send_json_success() |
empty($value) && current_user_can() && !is_multisite() && is_plugin_active() && is_wp_error() | 87–93 | check_ajax_referer(), __(), slug(), wp_unslash(), wp_unslash(), wp_unslash(), current_user_can(), is_multisite(), is_plugin_active(), __(), sprintf(), activate_plugin(), is_wp_error(), ->get_error_message(), wp_send_json_error(), wp_send_json_success() |
empty($value) && current_user_can() && is_multisite() && is_network_only_plugin() && !is_plugin_active() && is_wp_error() | 87–93 | check_ajax_referer(), __(), slug(), wp_unslash(), wp_unslash(), wp_unslash(), current_user_can(), is_multisite(), is_network_only_plugin(), current_user_can(), is_plugin_active(), activate_plugin(), is_wp_error(), ->get_error_message(), wp_send_json_error(), wp_send_json_success() |
!empty($value) && current_user_can() && is_multisite() && !is_network_only_plugin() && is_plugin_active() && is_wp_error() | 88 | check_ajax_referer(), wp_unslash(), wp_unslash(), wp_unslash(), current_user_can(), is_multisite(), is_network_only_plugin(), is_plugin_active(), __(), sprintf(), activate_plugin(), is_wp_error(), ->get_error_message(), wp_send_json_error(), wp_send_json_success() |
empty($value) && is_multisite() && is_network_only_plugin() && !is_plugin_active() && !is_wp_error() | 88–94 | check_ajax_referer(), __(), slug(), wp_unslash(), wp_unslash(), wp_unslash(), current_user_can(), is_multisite(), is_network_only_plugin(), current_user_can(), __(), wp_send_json_error(), is_plugin_active(), activate_plugin(), is_wp_error(), wp_send_json_success() |
empty($value) && !current_user_can() && !is_multisite() && is_plugin_active() && !is_wp_error() | 88–94 | check_ajax_referer(), __(), slug(), wp_unslash(), wp_unslash(), wp_unslash(), current_user_can(), __(), wp_send_json_error(), is_multisite(), is_plugin_active(), __(), sprintf(), activate_plugin(), is_wp_error(), wp_send_json_success() |
empty($value) && is_multisite() && is_network_only_plugin() && !is_plugin_active() && !is_wp_error() | 88–94 | check_ajax_referer(), __(), slug(), wp_unslash(), wp_unslash(), wp_unslash(), current_user_can(), __(), wp_send_json_error(), is_multisite(), is_network_only_plugin(), current_user_can(), is_plugin_active(), activate_plugin(), is_wp_error(), wp_send_json_success() |
!empty($value) && !current_user_can() && is_multisite() && !is_network_only_plugin() && is_plugin_active() && !is_wp_error() | 89 | check_ajax_referer(), wp_unslash(), wp_unslash(), wp_unslash(), current_user_can(), __(), wp_send_json_error(), is_multisite(), is_network_only_plugin(), is_plugin_active(), __(), sprintf(), activate_plugin(), is_wp_error(), wp_send_json_success() |
empty($value) && current_user_can() && is_multisite() && is_network_only_plugin() && is_plugin_active() && !is_wp_error() | 90–96 | check_ajax_referer(), __(), slug(), wp_unslash(), wp_unslash(), wp_unslash(), current_user_can(), is_multisite(), is_network_only_plugin(), current_user_can(), is_plugin_active(), __(), sprintf(), activate_plugin(), is_wp_error(), wp_send_json_success() |
!empty($value) && is_multisite() && is_network_only_plugin() && !is_plugin_active() && is_wp_error() | 90 | check_ajax_referer(), wp_unslash(), wp_unslash(), wp_unslash(), current_user_can(), is_multisite(), is_network_only_plugin(), current_user_can(), __(), wp_send_json_error(), is_plugin_active(), activate_plugin(), is_wp_error(), ->get_error_message(), wp_send_json_error(), wp_send_json_success() |
!empty($value) && !current_user_can() && !is_multisite() && is_plugin_active() && is_wp_error() | 90 | check_ajax_referer(), wp_unslash(), wp_unslash(), wp_unslash(), current_user_can(), __(), wp_send_json_error(), is_multisite(), is_plugin_active(), __(), sprintf(), activate_plugin(), is_wp_error(), ->get_error_message(), wp_send_json_error(), wp_send_json_success() |
!empty($value) && is_multisite() && is_network_only_plugin() && !is_plugin_active() && is_wp_error() | 90 | check_ajax_referer(), wp_unslash(), wp_unslash(), wp_unslash(), current_user_can(), __(), wp_send_json_error(), is_multisite(), is_network_only_plugin(), current_user_can(), is_plugin_active(), activate_plugin(), is_wp_error(), ->get_error_message(), wp_send_json_error(), wp_send_json_success() |
!empty($value) && !current_user_can() && is_multisite() && is_network_only_plugin() && !is_plugin_active() && !is_wp_error() | 91 | check_ajax_referer(), wp_unslash(), wp_unslash(), wp_unslash(), current_user_can(), __(), wp_send_json_error(), is_multisite(), is_network_only_plugin(), current_user_can(), __(), wp_send_json_error(), is_plugin_active(), activate_plugin(), is_wp_error(), wp_send_json_success() |
empty($value) && !current_user_can() && is_multisite() && !is_network_only_plugin() && !is_plugin_active() && is_wp_error() | 91–97 | check_ajax_referer(), __(), slug(), wp_unslash(), wp_unslash(), wp_unslash(), current_user_can(), __(), wp_send_json_error(), is_multisite(), is_network_only_plugin(), is_plugin_active(), activate_plugin(), is_wp_error(), ->get_error_message(), wp_send_json_error(), wp_send_json_success() |
!empty($value) && current_user_can() && is_multisite() && is_network_only_plugin() && is_plugin_active() && is_wp_error() | 92 | check_ajax_referer(), wp_unslash(), wp_unslash(), wp_unslash(), current_user_can(), is_multisite(), is_network_only_plugin(), current_user_can(), is_plugin_active(), __(), sprintf(), activate_plugin(), is_wp_error(), ->get_error_message(), wp_send_json_error(), wp_send_json_success() |
!empty($value) && is_multisite() && is_network_only_plugin() && is_plugin_active() && !is_wp_error() | 93 | check_ajax_referer(), wp_unslash(), wp_unslash(), wp_unslash(), current_user_can(), is_multisite(), is_network_only_plugin(), current_user_can(), __(), wp_send_json_error(), is_plugin_active(), __(), sprintf(), activate_plugin(), is_wp_error(), wp_send_json_success() |
!empty($value) && is_multisite() && is_network_only_plugin() && is_plugin_active() && !is_wp_error() | 93 | check_ajax_referer(), wp_unslash(), wp_unslash(), wp_unslash(), current_user_can(), __(), wp_send_json_error(), is_multisite(), is_network_only_plugin(), current_user_can(), is_plugin_active(), __(), sprintf(), activate_plugin(), is_wp_error(), wp_send_json_success() |
empty($value) && current_user_can() && is_multisite() && !is_network_only_plugin() && is_plugin_active() && is_wp_error() | 93–99 | check_ajax_referer(), __(), slug(), wp_unslash(), wp_unslash(), wp_unslash(), current_user_can(), is_multisite(), is_network_only_plugin(), is_plugin_active(), __(), sprintf(), activate_plugin(), is_wp_error(), ->get_error_message(), wp_send_json_error(), wp_send_json_success() |
empty($value) && !current_user_can() && is_multisite() && !is_network_only_plugin() && is_plugin_active() && !is_wp_error() | 94–100 | check_ajax_referer(), __(), slug(), wp_unslash(), wp_unslash(), wp_unslash(), current_user_can(), __(), wp_send_json_error(), is_multisite(), is_network_only_plugin(), is_plugin_active(), __(), sprintf(), activate_plugin(), is_wp_error(), wp_send_json_success() |
empty($value) && is_multisite() && is_network_only_plugin() && !is_plugin_active() && is_wp_error() | 95–101 | check_ajax_referer(), __(), slug(), wp_unslash(), wp_unslash(), wp_unslash(), current_user_can(), is_multisite(), is_network_only_plugin(), current_user_can(), __(), wp_send_json_error(), is_plugin_active(), activate_plugin(), is_wp_error(), ->get_error_message(), wp_send_json_error(), wp_send_json_success() |
empty($value) && !current_user_can() && !is_multisite() && is_plugin_active() && is_wp_error() | 95–101 | check_ajax_referer(), __(), slug(), wp_unslash(), wp_unslash(), wp_unslash(), current_user_can(), __(), wp_send_json_error(), is_multisite(), is_plugin_active(), __(), sprintf(), activate_plugin(), is_wp_error(), ->get_error_message(), wp_send_json_error(), wp_send_json_success() |
empty($value) && is_multisite() && is_network_only_plugin() && !is_plugin_active() && is_wp_error() | 95–101 | check_ajax_referer(), __(), slug(), wp_unslash(), wp_unslash(), wp_unslash(), current_user_can(), __(), wp_send_json_error(), is_multisite(), is_network_only_plugin(), current_user_can(), is_plugin_active(), activate_plugin(), is_wp_error(), ->get_error_message(), wp_send_json_error(), wp_send_json_success() |
!empty($value) && !current_user_can() && is_multisite() && !is_network_only_plugin() && is_plugin_active() && is_wp_error() | 96 | check_ajax_referer(), wp_unslash(), wp_unslash(), wp_unslash(), current_user_can(), __(), wp_send_json_error(), is_multisite(), is_network_only_plugin(), is_plugin_active(), __(), sprintf(), activate_plugin(), is_wp_error(), ->get_error_message(), wp_send_json_error(), wp_send_json_success() |
empty($value) && !current_user_can() && is_multisite() && is_network_only_plugin() && !is_plugin_active() && !is_wp_error() | 96–102 | check_ajax_referer(), __(), slug(), wp_unslash(), wp_unslash(), wp_unslash(), current_user_can(), __(), wp_send_json_error(), is_multisite(), is_network_only_plugin(), current_user_can(), __(), wp_send_json_error(), is_plugin_active(), activate_plugin(), is_wp_error(), wp_send_json_success() |
empty($value) && current_user_can() && is_multisite() && is_network_only_plugin() && is_plugin_active() && is_wp_error() | 97–103 | check_ajax_referer(), __(), slug(), wp_unslash(), wp_unslash(), wp_unslash(), current_user_can(), is_multisite(), is_network_only_plugin(), current_user_can(), is_plugin_active(), __(), sprintf(), activate_plugin(), is_wp_error(), ->get_error_message(), wp_send_json_error(), wp_send_json_success() |
empty($value) && is_multisite() && is_network_only_plugin() && is_plugin_active() && !is_wp_error() | 98–104 | check_ajax_referer(), __(), slug(), wp_unslash(), wp_unslash(), wp_unslash(), current_user_can(), is_multisite(), is_network_only_plugin(), current_user_can(), __(), wp_send_json_error(), is_plugin_active(), __(), sprintf(), activate_plugin(), is_wp_error(), wp_send_json_success() |
empty($value) && is_multisite() && is_network_only_plugin() && is_plugin_active() && !is_wp_error() | 98–104 | check_ajax_referer(), __(), slug(), wp_unslash(), wp_unslash(), wp_unslash(), current_user_can(), __(), wp_send_json_error(), is_multisite(), is_network_only_plugin(), current_user_can(), is_plugin_active(), __(), sprintf(), activate_plugin(), is_wp_error(), wp_send_json_success() |
!empty($value) && !current_user_can() && is_multisite() && is_network_only_plugin() && !is_plugin_active() && is_wp_error() | 98 | check_ajax_referer(), wp_unslash(), wp_unslash(), wp_unslash(), current_user_can(), __(), wp_send_json_error(), is_multisite(), is_network_only_plugin(), current_user_can(), __(), wp_send_json_error(), is_plugin_active(), activate_plugin(), is_wp_error(), ->get_error_message(), wp_send_json_error(), wp_send_json_success() |
!empty($value) && is_multisite() && is_network_only_plugin() && is_plugin_active() && is_wp_error() | 100 | check_ajax_referer(), wp_unslash(), wp_unslash(), wp_unslash(), current_user_can(), is_multisite(), is_network_only_plugin(), current_user_can(), __(), wp_send_json_error(), is_plugin_active(), __(), sprintf(), activate_plugin(), is_wp_error(), ->get_error_message(), wp_send_json_error(), wp_send_json_success() |
!empty($value) && is_multisite() && is_network_only_plugin() && is_plugin_active() && is_wp_error() | 100 | check_ajax_referer(), wp_unslash(), wp_unslash(), wp_unslash(), current_user_can(), __(), wp_send_json_error(), is_multisite(), is_network_only_plugin(), current_user_can(), is_plugin_active(), __(), sprintf(), activate_plugin(), is_wp_error(), ->get_error_message(), wp_send_json_error(), wp_send_json_success() |
!empty($value) && !current_user_can() && is_multisite() && is_network_only_plugin() && is_plugin_active() && !is_wp_error() | 101 | check_ajax_referer(), wp_unslash(), wp_unslash(), wp_unslash(), current_user_can(), __(), wp_send_json_error(), is_multisite(), is_network_only_plugin(), current_user_can(), __(), wp_send_json_error(), is_plugin_active(), __(), sprintf(), activate_plugin(), is_wp_error(), wp_send_json_success() |
empty($value) && !current_user_can() && is_multisite() && !is_network_only_plugin() && is_plugin_active() && is_wp_error() | 101–107 | check_ajax_referer(), __(), slug(), wp_unslash(), wp_unslash(), wp_unslash(), current_user_can(), __(), wp_send_json_error(), is_multisite(), is_network_only_plugin(), is_plugin_active(), __(), sprintf(), activate_plugin(), is_wp_error(), ->get_error_message(), wp_send_json_error(), wp_send_json_success() |
empty($value) && !current_user_can() && is_multisite() && is_network_only_plugin() && !is_plugin_active() && is_wp_error() | 103–109 | check_ajax_referer(), __(), slug(), wp_unslash(), wp_unslash(), wp_unslash(), current_user_can(), __(), wp_send_json_error(), is_multisite(), is_network_only_plugin(), current_user_can(), __(), wp_send_json_error(), is_plugin_active(), activate_plugin(), is_wp_error(), ->get_error_message(), wp_send_json_error(), wp_send_json_success() |
empty($value) && is_multisite() && is_network_only_plugin() && is_plugin_active() && is_wp_error() | 105–111 | check_ajax_referer(), __(), slug(), wp_unslash(), wp_unslash(), wp_unslash(), current_user_can(), is_multisite(), is_network_only_plugin(), current_user_can(), __(), wp_send_json_error(), is_plugin_active(), __(), sprintf(), activate_plugin(), is_wp_error(), ->get_error_message(), wp_send_json_error(), wp_send_json_success() |
empty($value) && is_multisite() && is_network_only_plugin() && is_plugin_active() && is_wp_error() | 105–111 | check_ajax_referer(), __(), slug(), wp_unslash(), wp_unslash(), wp_unslash(), current_user_can(), __(), wp_send_json_error(), is_multisite(), is_network_only_plugin(), current_user_can(), is_plugin_active(), __(), sprintf(), activate_plugin(), is_wp_error(), ->get_error_message(), wp_send_json_error(), wp_send_json_success() |
empty($value) && !current_user_can() && is_multisite() && is_network_only_plugin() && is_plugin_active() && !is_wp_error() | 106–112 | check_ajax_referer(), __(), slug(), wp_unslash(), wp_unslash(), wp_unslash(), current_user_can(), __(), wp_send_json_error(), is_multisite(), is_network_only_plugin(), current_user_can(), __(), wp_send_json_error(), is_plugin_active(), __(), sprintf(), activate_plugin(), is_wp_error(), wp_send_json_success() |
!empty($value) && !current_user_can() && is_multisite() && is_network_only_plugin() && is_plugin_active() && is_wp_error() | 108 | check_ajax_referer(), wp_unslash(), wp_unslash(), wp_unslash(), current_user_can(), __(), wp_send_json_error(), is_multisite(), is_network_only_plugin(), current_user_can(), __(), wp_send_json_error(), is_plugin_active(), __(), sprintf(), activate_plugin(), is_wp_error(), ->get_error_message(), wp_send_json_error(), wp_send_json_success() |
empty($value) && !current_user_can() && is_multisite() && is_network_only_plugin() && is_plugin_active() && is_wp_error() | 113–119 | check_ajax_referer(), __(), slug(), wp_unslash(), wp_unslash(), wp_unslash(), current_user_can(), __(), wp_send_json_error(), is_multisite(), is_network_only_plugin(), current_user_can(), __(), wp_send_json_error(), is_plugin_active(), __(), sprintf(), activate_plugin(), is_wp_error(), ->get_error_message(), wp_send_json_error(), wp_send_json_success() |
Across PHP versions
Compiles the same on PHP 7.4, 8.1, 8.2, 8.3, 8.4, 8.5 and 8.6-dev: 119 instructions, 65–119 executed per call, 9 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.
Uses · 11
- check_ajax_referer()Verifies the Ajax request to prevent processing requests external of the blog.
- wp_send_json_error()Sends a JSON response back to an Ajax request, indicating failure.
- __()Retrieves the translation of $text.
- wp_unslash()Removes slashes from a string or recursively removes slashes from strings within an array.
- current_user_can()Returns whether the current user has the specified capability.
- is_multisite()Determines whether Multisite is enabled.
- is_network_only_plugin()Checks for "Network: true" in the plugin header to see if this should be activated only as a network wide plugin. The plugin would also work when Multisite is not enabled.
- is_plugin_active()Determines whether a plugin is active.
- activate_plugin()Attempts activation of plugin in a "sandbox" and redirects on success.
- is_wp_error()Checks whether the given variable is a WordPress Error.
- wp_send_json_success()Sends a JSON response back to an Ajax request, indicating success.
Source code
function wp_ajax_activate_plugin() { check_ajax_referer( 'updates' ); if ( empty( $_POST['name'] ) || empty( $_POST['slug'] ) || empty( $_POST['plugin'] ) ) { wp_send_json_error( array( 'slug' => '', 'pluginName' => '', 'plugin' => '', 'errorCode' => 'no_plugin_specified', 'errorMessage' => __( 'No plugin specified.' ), ) ); } $status = array( 'activate' => 'plugin', 'slug' => wp_unslash( $_POST['slug'] ), 'pluginName' => wp_unslash( $_POST['name'] ), 'plugin' => wp_unslash( $_POST['plugin'] ), ); if ( ! current_user_can( 'activate_plugin', $status['plugin'] ) ) { $status['errorMessage'] = __( 'Sorry, you are not allowed to activate plugins on this site.' ); wp_send_json_error( $status ); } // A network-only plugin is activated for the entire network. if ( is_multisite() && is_network_only_plugin( $status['plugin'] ) && ! current_user_can( 'manage_network_plugins' ) ) { $status['errorMessage'] = __( 'Sorry, you are not allowed to activate this plugin.' ); wp_send_json_error( $status ); } if ( is_plugin_active( $status['plugin'] ) ) { $status['errorMessage'] = sprintf( /* translators: %s: Plugin name. */ __( '%s is already active.' ), $status['pluginName'] ); } $activated = activate_plugin( $status['plugin'] ); if ( is_wp_error( $activated ) ) { $status['errorMessage'] = $activated->get_error_message(); wp_send_json_error( $status ); } wp_send_json_success( $status );}Changelog
Introduced in 6.5.0. Unchanged from 6.7.10 through 7.1.3.
Signature, return type and hooks compared across 5 parsed releases.
About this page
- Parsed data
- Generated from the wordpress-develop 6.8.11 tag, from
src/wp-admin/includes/ajax-actions.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.