wppaste
WordPress

WP_Customize_Widgets::wp_ajax_update_widget(): never

Since
3.9.0
Source
wp-includes/class-wp-customize-widgets.php:1703
Updates widget settings asynchronously.

Description

Allows the Customizer to update a widget using its form, but return the new instance info via Ajax instead of saving it to the options table.

Most code here copied from wp_ajax_save_widget().

Compatibility

WordPress
since 3.9.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.

Return value

never

Performance profile

How much work a call to WP_Customize_Widgets::wp_ajax_update_widget() 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
Trivial

Touches nothing outside its own arguments.

Scaling
Constant

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

Instructions
64–94

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

Plugin surface
3 hooks

Third-party callbacks on 'load-widgets.php', 'widgets.php', 'sidebar_admin_setup' 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 callbacksdo_action()called directly

Further down the call graph this can also reach option, query, cache, serialize 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_Customize_Widgets::wp_ajax_update_widget() can have, taken from its control-flow graph on PHP 8.5.

WhenInstructionsCalls it makes
is_user_logged_in() && current_user_can() && !empty($value) && !is_wp_error()64–69is_user_logged_in(), check_ajax_referer(), current_user_can(), do_action(), do_action(), do_action(), ->get_post_value(), ->parse_widget_id(), ->call_widget_update(), is_wp_error(), ->sanitize_widget_js_instance(), compact(), wp_send_json_success()
is_user_logged_in() && current_user_can() && !empty($value) && !is_wp_error()67–72is_user_logged_in(), check_ajax_referer(), current_user_can(), do_action(), do_action(), do_action(), ->get_post_value(), ->parse_widget_id(), wp_send_json_error(), ->call_widget_update(), is_wp_error(), ->sanitize_widget_js_instance(), compact(), wp_send_json_success()
is_user_logged_in() && current_user_can() && empty($value) && !is_wp_error()67–72is_user_logged_in(), check_ajax_referer(), current_user_can(), wp_send_json_error(), do_action(), do_action(), do_action(), ->get_post_value(), ->parse_widget_id(), ->call_widget_update(), is_wp_error(), ->sanitize_widget_js_instance(), compact(), wp_send_json_success()
is_user_logged_in() && !current_user_can() && !empty($value) && !is_wp_error()67–72is_user_logged_in(), check_ajax_referer(), current_user_can(), wp_die(), do_action(), do_action(), do_action(), ->get_post_value(), ->parse_widget_id(), ->call_widget_update(), is_wp_error(), ->sanitize_widget_js_instance(), compact(), wp_send_json_success()
!is_user_logged_in() && current_user_can() && !empty($value) && !is_wp_error()67–72is_user_logged_in(), wp_die(), check_ajax_referer(), current_user_can(), do_action(), do_action(), do_action(), ->get_post_value(), ->parse_widget_id(), ->call_widget_update(), is_wp_error(), ->sanitize_widget_js_instance(), compact(), wp_send_json_success()
is_user_logged_in() && current_user_can() && !empty($value) && is_wp_error()69–74is_user_logged_in(), check_ajax_referer(), current_user_can(), do_action(), do_action(), do_action(), ->get_post_value(), ->parse_widget_id(), ->call_widget_update(), is_wp_error(), ->get_error_code(), wp_send_json_error(), ->sanitize_widget_js_instance(), compact(), wp_send_json_success()
is_user_logged_in() && current_user_can() && empty($value) && !is_wp_error()70–75is_user_logged_in(), check_ajax_referer(), current_user_can(), wp_send_json_error(), do_action(), do_action(), do_action(), ->get_post_value(), ->parse_widget_id(), wp_send_json_error(), ->call_widget_update(), is_wp_error(), ->sanitize_widget_js_instance(), compact(), wp_send_json_success()
is_user_logged_in() && !current_user_can() && !empty($value) && !is_wp_error()70–75is_user_logged_in(), check_ajax_referer(), current_user_can(), wp_die(), do_action(), do_action(), do_action(), ->get_post_value(), ->parse_widget_id(), wp_send_json_error(), ->call_widget_update(), is_wp_error(), ->sanitize_widget_js_instance(), compact(), wp_send_json_success()
is_user_logged_in() && !current_user_can() && empty($value) && !is_wp_error()70–75is_user_logged_in(), check_ajax_referer(), current_user_can(), wp_die(), wp_send_json_error(), do_action(), do_action(), do_action(), ->get_post_value(), ->parse_widget_id(), ->call_widget_update(), is_wp_error(), ->sanitize_widget_js_instance(), compact(), wp_send_json_success()
!is_user_logged_in() && current_user_can() && !empty($value) && !is_wp_error()70–75is_user_logged_in(), wp_die(), check_ajax_referer(), current_user_can(), do_action(), do_action(), do_action(), ->get_post_value(), ->parse_widget_id(), wp_send_json_error(), ->call_widget_update(), is_wp_error(), ->sanitize_widget_js_instance(), compact(), wp_send_json_success()
!is_user_logged_in() && current_user_can() && empty($value) && !is_wp_error()70–75is_user_logged_in(), wp_die(), check_ajax_referer(), current_user_can(), wp_send_json_error(), do_action(), do_action(), do_action(), ->get_post_value(), ->parse_widget_id(), ->call_widget_update(), is_wp_error(), ->sanitize_widget_js_instance(), compact(), wp_send_json_success()
!is_user_logged_in() && !current_user_can() && !empty($value) && !is_wp_error()70–75is_user_logged_in(), wp_die(), check_ajax_referer(), current_user_can(), wp_die(), do_action(), do_action(), do_action(), ->get_post_value(), ->parse_widget_id(), ->call_widget_update(), is_wp_error(), ->sanitize_widget_js_instance(), compact(), wp_send_json_success()
52 further outcomes, up to 94 instructions
is_user_logged_in() && current_user_can() && !empty($value) && is_wp_error()72–77is_user_logged_in(), check_ajax_referer(), current_user_can(), do_action(), do_action(), do_action(), ->get_post_value(), ->parse_widget_id(), wp_send_json_error(), ->call_widget_update(), is_wp_error(), ->get_error_code(), wp_send_json_error(), ->sanitize_widget_js_instance(), compact(), wp_send_json_success()
is_user_logged_in() && current_user_can() && empty($value) && is_wp_error()72–77is_user_logged_in(), check_ajax_referer(), current_user_can(), wp_send_json_error(), do_action(), do_action(), do_action(), ->get_post_value(), ->parse_widget_id(), ->call_widget_update(), is_wp_error(), ->get_error_code(), wp_send_json_error(), ->sanitize_widget_js_instance(), compact(), wp_send_json_success()
is_user_logged_in() && !current_user_can() && !empty($value) && is_wp_error()72–77is_user_logged_in(), check_ajax_referer(), current_user_can(), wp_die(), do_action(), do_action(), do_action(), ->get_post_value(), ->parse_widget_id(), ->call_widget_update(), is_wp_error(), ->get_error_code(), wp_send_json_error(), ->sanitize_widget_js_instance(), compact(), wp_send_json_success()
!is_user_logged_in() && current_user_can() && !empty($value) && is_wp_error()72–77is_user_logged_in(), wp_die(), check_ajax_referer(), current_user_can(), do_action(), do_action(), do_action(), ->get_post_value(), ->parse_widget_id(), ->call_widget_update(), is_wp_error(), ->get_error_code(), wp_send_json_error(), ->sanitize_widget_js_instance(), compact(), wp_send_json_success()
is_user_logged_in() && !current_user_can() && empty($value) && !is_wp_error()73–78is_user_logged_in(), check_ajax_referer(), current_user_can(), wp_die(), wp_send_json_error(), do_action(), do_action(), do_action(), ->get_post_value(), ->parse_widget_id(), wp_send_json_error(), ->call_widget_update(), is_wp_error(), ->sanitize_widget_js_instance(), compact(), wp_send_json_success()
!is_user_logged_in() && current_user_can() && empty($value) && !is_wp_error()73–78is_user_logged_in(), wp_die(), check_ajax_referer(), current_user_can(), wp_send_json_error(), do_action(), do_action(), do_action(), ->get_post_value(), ->parse_widget_id(), wp_send_json_error(), ->call_widget_update(), is_wp_error(), ->sanitize_widget_js_instance(), compact(), wp_send_json_success()
!is_user_logged_in() && !current_user_can() && !empty($value) && !is_wp_error()73–78is_user_logged_in(), wp_die(), check_ajax_referer(), current_user_can(), wp_die(), do_action(), do_action(), do_action(), ->get_post_value(), ->parse_widget_id(), wp_send_json_error(), ->call_widget_update(), is_wp_error(), ->sanitize_widget_js_instance(), compact(), wp_send_json_success()
!is_user_logged_in() && !current_user_can() && empty($value) && !is_wp_error()73–78is_user_logged_in(), wp_die(), check_ajax_referer(), current_user_can(), wp_die(), wp_send_json_error(), do_action(), do_action(), do_action(), ->get_post_value(), ->parse_widget_id(), ->call_widget_update(), is_wp_error(), ->sanitize_widget_js_instance(), compact(), wp_send_json_success()
is_user_logged_in() && current_user_can() && empty($value) && is_wp_error()75–80is_user_logged_in(), check_ajax_referer(), current_user_can(), wp_send_json_error(), do_action(), do_action(), do_action(), ->get_post_value(), ->parse_widget_id(), wp_send_json_error(), ->call_widget_update(), is_wp_error(), ->get_error_code(), wp_send_json_error(), ->sanitize_widget_js_instance(), compact(), wp_send_json_success()
is_user_logged_in() && !current_user_can() && !empty($value) && is_wp_error()75–80is_user_logged_in(), check_ajax_referer(), current_user_can(), wp_die(), do_action(), do_action(), do_action(), ->get_post_value(), ->parse_widget_id(), wp_send_json_error(), ->call_widget_update(), is_wp_error(), ->get_error_code(), wp_send_json_error(), ->sanitize_widget_js_instance(), compact(), wp_send_json_success()
is_user_logged_in() && !current_user_can() && empty($value) && is_wp_error()75–80is_user_logged_in(), check_ajax_referer(), current_user_can(), wp_die(), wp_send_json_error(), do_action(), do_action(), do_action(), ->get_post_value(), ->parse_widget_id(), ->call_widget_update(), is_wp_error(), ->get_error_code(), wp_send_json_error(), ->sanitize_widget_js_instance(), compact(), wp_send_json_success()
!is_user_logged_in() && current_user_can() && !empty($value) && is_wp_error()75–80is_user_logged_in(), wp_die(), check_ajax_referer(), current_user_can(), do_action(), do_action(), do_action(), ->get_post_value(), ->parse_widget_id(), wp_send_json_error(), ->call_widget_update(), is_wp_error(), ->get_error_code(), wp_send_json_error(), ->sanitize_widget_js_instance(), compact(), wp_send_json_success()
!is_user_logged_in() && current_user_can() && empty($value) && is_wp_error()75–80is_user_logged_in(), wp_die(), check_ajax_referer(), current_user_can(), wp_send_json_error(), do_action(), do_action(), do_action(), ->get_post_value(), ->parse_widget_id(), ->call_widget_update(), is_wp_error(), ->get_error_code(), wp_send_json_error(), ->sanitize_widget_js_instance(), compact(), wp_send_json_success()
!is_user_logged_in() && !current_user_can() && !empty($value) && is_wp_error()75–80is_user_logged_in(), wp_die(), check_ajax_referer(), current_user_can(), wp_die(), do_action(), do_action(), do_action(), ->get_post_value(), ->parse_widget_id(), ->call_widget_update(), is_wp_error(), ->get_error_code(), wp_send_json_error(), ->sanitize_widget_js_instance(), compact(), wp_send_json_success()
!is_user_logged_in() && !current_user_can() && empty($value) && !is_wp_error()76–81is_user_logged_in(), wp_die(), check_ajax_referer(), current_user_can(), wp_die(), wp_send_json_error(), do_action(), do_action(), do_action(), ->get_post_value(), ->parse_widget_id(), wp_send_json_error(), ->call_widget_update(), is_wp_error(), ->sanitize_widget_js_instance(), compact(), wp_send_json_success()
is_user_logged_in() && current_user_can() && !empty($value) && isset($value) && !is_wp_error()77is_user_logged_in(), check_ajax_referer(), current_user_can(), do_action(), do_action(), do_action(), ->get_post_value(), ->parse_widget_id(), key(), ->call_widget_update(), is_wp_error(), ->sanitize_widget_js_instance(), compact(), wp_send_json_success()
is_user_logged_in() && !current_user_can() && empty($value) && is_wp_error()78–83is_user_logged_in(), check_ajax_referer(), current_user_can(), wp_die(), wp_send_json_error(), do_action(), do_action(), do_action(), ->get_post_value(), ->parse_widget_id(), wp_send_json_error(), ->call_widget_update(), is_wp_error(), ->get_error_code(), wp_send_json_error(), ->sanitize_widget_js_instance(), compact(), wp_send_json_success()
!is_user_logged_in() && current_user_can() && empty($value) && is_wp_error()78–83is_user_logged_in(), wp_die(), check_ajax_referer(), current_user_can(), wp_send_json_error(), do_action(), do_action(), do_action(), ->get_post_value(), ->parse_widget_id(), wp_send_json_error(), ->call_widget_update(), is_wp_error(), ->get_error_code(), wp_send_json_error(), ->sanitize_widget_js_instance(), compact(), wp_send_json_success()
!is_user_logged_in() && !current_user_can() && !empty($value) && is_wp_error()78–83is_user_logged_in(), wp_die(), check_ajax_referer(), current_user_can(), wp_die(), do_action(), do_action(), do_action(), ->get_post_value(), ->parse_widget_id(), wp_send_json_error(), ->call_widget_update(), is_wp_error(), ->get_error_code(), wp_send_json_error(), ->sanitize_widget_js_instance(), compact(), wp_send_json_success()
!is_user_logged_in() && !current_user_can() && empty($value) && is_wp_error()78–83is_user_logged_in(), wp_die(), check_ajax_referer(), current_user_can(), wp_die(), wp_send_json_error(), do_action(), do_action(), do_action(), ->get_post_value(), ->parse_widget_id(), ->call_widget_update(), is_wp_error(), ->get_error_code(), wp_send_json_error(), ->sanitize_widget_js_instance(), compact(), wp_send_json_success()
is_user_logged_in() && current_user_can() && !empty($value) && isset($value) && !is_wp_error()80is_user_logged_in(), check_ajax_referer(), current_user_can(), do_action(), do_action(), do_action(), ->get_post_value(), ->parse_widget_id(), key(), wp_send_json_error(), ->call_widget_update(), is_wp_error(), ->sanitize_widget_js_instance(), compact(), wp_send_json_success()
is_user_logged_in() && current_user_can() && empty($value) && isset($value) && !is_wp_error()80is_user_logged_in(), check_ajax_referer(), current_user_can(), wp_send_json_error(), do_action(), do_action(), do_action(), ->get_post_value(), ->parse_widget_id(), key(), ->call_widget_update(), is_wp_error(), ->sanitize_widget_js_instance(), compact(), wp_send_json_success()
is_user_logged_in() && !current_user_can() && !empty($value) && isset($value) && !is_wp_error()80is_user_logged_in(), check_ajax_referer(), current_user_can(), wp_die(), do_action(), do_action(), do_action(), ->get_post_value(), ->parse_widget_id(), key(), ->call_widget_update(), is_wp_error(), ->sanitize_widget_js_instance(), compact(), wp_send_json_success()
!is_user_logged_in() && current_user_can() && !empty($value) && isset($value) && !is_wp_error()80is_user_logged_in(), wp_die(), check_ajax_referer(), current_user_can(), do_action(), do_action(), do_action(), ->get_post_value(), ->parse_widget_id(), key(), ->call_widget_update(), is_wp_error(), ->sanitize_widget_js_instance(), compact(), wp_send_json_success()
!is_user_logged_in() && !current_user_can() && empty($value) && is_wp_error()81–86is_user_logged_in(), wp_die(), check_ajax_referer(), current_user_can(), wp_die(), wp_send_json_error(), do_action(), do_action(), do_action(), ->get_post_value(), ->parse_widget_id(), wp_send_json_error(), ->call_widget_update(), is_wp_error(), ->get_error_code(), wp_send_json_error(), ->sanitize_widget_js_instance(), compact(), wp_send_json_success()
is_user_logged_in() && current_user_can() && !empty($value) && isset($value) && is_wp_error()82is_user_logged_in(), check_ajax_referer(), current_user_can(), do_action(), do_action(), do_action(), ->get_post_value(), ->parse_widget_id(), key(), ->call_widget_update(), is_wp_error(), ->get_error_code(), wp_send_json_error(), ->sanitize_widget_js_instance(), compact(), wp_send_json_success()
is_user_logged_in() && current_user_can() && empty($value) && isset($value) && !is_wp_error()83is_user_logged_in(), check_ajax_referer(), current_user_can(), wp_send_json_error(), do_action(), do_action(), do_action(), ->get_post_value(), ->parse_widget_id(), key(), wp_send_json_error(), ->call_widget_update(), is_wp_error(), ->sanitize_widget_js_instance(), compact(), wp_send_json_success()
is_user_logged_in() && !current_user_can() && !empty($value) && isset($value) && !is_wp_error()83is_user_logged_in(), check_ajax_referer(), current_user_can(), wp_die(), do_action(), do_action(), do_action(), ->get_post_value(), ->parse_widget_id(), key(), wp_send_json_error(), ->call_widget_update(), is_wp_error(), ->sanitize_widget_js_instance(), compact(), wp_send_json_success()
is_user_logged_in() && !current_user_can() && empty($value) && isset($value) && !is_wp_error()83is_user_logged_in(), check_ajax_referer(), current_user_can(), wp_die(), wp_send_json_error(), do_action(), do_action(), do_action(), ->get_post_value(), ->parse_widget_id(), key(), ->call_widget_update(), is_wp_error(), ->sanitize_widget_js_instance(), compact(), wp_send_json_success()
!is_user_logged_in() && current_user_can() && !empty($value) && isset($value) && !is_wp_error()83is_user_logged_in(), wp_die(), check_ajax_referer(), current_user_can(), do_action(), do_action(), do_action(), ->get_post_value(), ->parse_widget_id(), key(), wp_send_json_error(), ->call_widget_update(), is_wp_error(), ->sanitize_widget_js_instance(), compact(), wp_send_json_success()
!is_user_logged_in() && current_user_can() && empty($value) && isset($value) && !is_wp_error()83is_user_logged_in(), wp_die(), check_ajax_referer(), current_user_can(), wp_send_json_error(), do_action(), do_action(), do_action(), ->get_post_value(), ->parse_widget_id(), key(), ->call_widget_update(), is_wp_error(), ->sanitize_widget_js_instance(), compact(), wp_send_json_success()
!is_user_logged_in() && !current_user_can() && !empty($value) && isset($value) && !is_wp_error()83is_user_logged_in(), wp_die(), check_ajax_referer(), current_user_can(), wp_die(), do_action(), do_action(), do_action(), ->get_post_value(), ->parse_widget_id(), key(), ->call_widget_update(), is_wp_error(), ->sanitize_widget_js_instance(), compact(), wp_send_json_success()
is_user_logged_in() && current_user_can() && !empty($value) && isset($value) && is_wp_error()85is_user_logged_in(), check_ajax_referer(), current_user_can(), do_action(), do_action(), do_action(), ->get_post_value(), ->parse_widget_id(), key(), wp_send_json_error(), ->call_widget_update(), is_wp_error(), ->get_error_code(), wp_send_json_error(), ->sanitize_widget_js_instance(), compact(), wp_send_json_success()
is_user_logged_in() && current_user_can() && empty($value) && isset($value) && is_wp_error()85is_user_logged_in(), check_ajax_referer(), current_user_can(), wp_send_json_error(), do_action(), do_action(), do_action(), ->get_post_value(), ->parse_widget_id(), key(), ->call_widget_update(), is_wp_error(), ->get_error_code(), wp_send_json_error(), ->sanitize_widget_js_instance(), compact(), wp_send_json_success()
is_user_logged_in() && !current_user_can() && !empty($value) && isset($value) && is_wp_error()85is_user_logged_in(), check_ajax_referer(), current_user_can(), wp_die(), do_action(), do_action(), do_action(), ->get_post_value(), ->parse_widget_id(), key(), ->call_widget_update(), is_wp_error(), ->get_error_code(), wp_send_json_error(), ->sanitize_widget_js_instance(), compact(), wp_send_json_success()
!is_user_logged_in() && current_user_can() && !empty($value) && isset($value) && is_wp_error()85is_user_logged_in(), wp_die(), check_ajax_referer(), current_user_can(), do_action(), do_action(), do_action(), ->get_post_value(), ->parse_widget_id(), key(), ->call_widget_update(), is_wp_error(), ->get_error_code(), wp_send_json_error(), ->sanitize_widget_js_instance(), compact(), wp_send_json_success()
is_user_logged_in() && !current_user_can() && empty($value) && isset($value) && !is_wp_error()86is_user_logged_in(), check_ajax_referer(), current_user_can(), wp_die(), wp_send_json_error(), do_action(), do_action(), do_action(), ->get_post_value(), ->parse_widget_id(), key(), wp_send_json_error(), ->call_widget_update(), is_wp_error(), ->sanitize_widget_js_instance(), compact(), wp_send_json_success()
!is_user_logged_in() && current_user_can() && empty($value) && isset($value) && !is_wp_error()86is_user_logged_in(), wp_die(), check_ajax_referer(), current_user_can(), wp_send_json_error(), do_action(), do_action(), do_action(), ->get_post_value(), ->parse_widget_id(), key(), wp_send_json_error(), ->call_widget_update(), is_wp_error(), ->sanitize_widget_js_instance(), compact(), wp_send_json_success()
!is_user_logged_in() && !current_user_can() && !empty($value) && isset($value) && !is_wp_error()86is_user_logged_in(), wp_die(), check_ajax_referer(), current_user_can(), wp_die(), do_action(), do_action(), do_action(), ->get_post_value(), ->parse_widget_id(), key(), wp_send_json_error(), ->call_widget_update(), is_wp_error(), ->sanitize_widget_js_instance(), compact(), wp_send_json_success()
!is_user_logged_in() && !current_user_can() && empty($value) && isset($value) && !is_wp_error()86is_user_logged_in(), wp_die(), check_ajax_referer(), current_user_can(), wp_die(), wp_send_json_error(), do_action(), do_action(), do_action(), ->get_post_value(), ->parse_widget_id(), key(), ->call_widget_update(), is_wp_error(), ->sanitize_widget_js_instance(), compact(), wp_send_json_success()
is_user_logged_in() && current_user_can() && empty($value) && isset($value) && is_wp_error()88is_user_logged_in(), check_ajax_referer(), current_user_can(), wp_send_json_error(), do_action(), do_action(), do_action(), ->get_post_value(), ->parse_widget_id(), key(), wp_send_json_error(), ->call_widget_update(), is_wp_error(), ->get_error_code(), wp_send_json_error(), ->sanitize_widget_js_instance(), compact(), wp_send_json_success()
is_user_logged_in() && !current_user_can() && !empty($value) && isset($value) && is_wp_error()88is_user_logged_in(), check_ajax_referer(), current_user_can(), wp_die(), do_action(), do_action(), do_action(), ->get_post_value(), ->parse_widget_id(), key(), wp_send_json_error(), ->call_widget_update(), is_wp_error(), ->get_error_code(), wp_send_json_error(), ->sanitize_widget_js_instance(), compact(), wp_send_json_success()
is_user_logged_in() && !current_user_can() && empty($value) && isset($value) && is_wp_error()88is_user_logged_in(), check_ajax_referer(), current_user_can(), wp_die(), wp_send_json_error(), do_action(), do_action(), do_action(), ->get_post_value(), ->parse_widget_id(), key(), ->call_widget_update(), is_wp_error(), ->get_error_code(), wp_send_json_error(), ->sanitize_widget_js_instance(), compact(), wp_send_json_success()
!is_user_logged_in() && current_user_can() && !empty($value) && isset($value) && is_wp_error()88is_user_logged_in(), wp_die(), check_ajax_referer(), current_user_can(), do_action(), do_action(), do_action(), ->get_post_value(), ->parse_widget_id(), key(), wp_send_json_error(), ->call_widget_update(), is_wp_error(), ->get_error_code(), wp_send_json_error(), ->sanitize_widget_js_instance(), compact(), wp_send_json_success()
!is_user_logged_in() && current_user_can() && empty($value) && isset($value) && is_wp_error()88is_user_logged_in(), wp_die(), check_ajax_referer(), current_user_can(), wp_send_json_error(), do_action(), do_action(), do_action(), ->get_post_value(), ->parse_widget_id(), key(), ->call_widget_update(), is_wp_error(), ->get_error_code(), wp_send_json_error(), ->sanitize_widget_js_instance(), compact(), wp_send_json_success()
!is_user_logged_in() && !current_user_can() && !empty($value) && isset($value) && is_wp_error()88is_user_logged_in(), wp_die(), check_ajax_referer(), current_user_can(), wp_die(), do_action(), do_action(), do_action(), ->get_post_value(), ->parse_widget_id(), key(), ->call_widget_update(), is_wp_error(), ->get_error_code(), wp_send_json_error(), ->sanitize_widget_js_instance(), compact(), wp_send_json_success()
!is_user_logged_in() && !current_user_can() && empty($value) && isset($value) && !is_wp_error()89is_user_logged_in(), wp_die(), check_ajax_referer(), current_user_can(), wp_die(), wp_send_json_error(), do_action(), do_action(), do_action(), ->get_post_value(), ->parse_widget_id(), key(), wp_send_json_error(), ->call_widget_update(), is_wp_error(), ->sanitize_widget_js_instance(), compact(), wp_send_json_success()
is_user_logged_in() && !current_user_can() && empty($value) && isset($value) && is_wp_error()91is_user_logged_in(), check_ajax_referer(), current_user_can(), wp_die(), wp_send_json_error(), do_action(), do_action(), do_action(), ->get_post_value(), ->parse_widget_id(), key(), wp_send_json_error(), ->call_widget_update(), is_wp_error(), ->get_error_code(), wp_send_json_error(), ->sanitize_widget_js_instance(), compact(), wp_send_json_success()
!is_user_logged_in() && current_user_can() && empty($value) && isset($value) && is_wp_error()91is_user_logged_in(), wp_die(), check_ajax_referer(), current_user_can(), wp_send_json_error(), do_action(), do_action(), do_action(), ->get_post_value(), ->parse_widget_id(), key(), wp_send_json_error(), ->call_widget_update(), is_wp_error(), ->get_error_code(), wp_send_json_error(), ->sanitize_widget_js_instance(), compact(), wp_send_json_success()
!is_user_logged_in() && !current_user_can() && !empty($value) && isset($value) && is_wp_error()91is_user_logged_in(), wp_die(), check_ajax_referer(), current_user_can(), wp_die(), do_action(), do_action(), do_action(), ->get_post_value(), ->parse_widget_id(), key(), wp_send_json_error(), ->call_widget_update(), is_wp_error(), ->get_error_code(), wp_send_json_error(), ->sanitize_widget_js_instance(), compact(), wp_send_json_success()
!is_user_logged_in() && !current_user_can() && empty($value) && isset($value) && is_wp_error()91is_user_logged_in(), wp_die(), check_ajax_referer(), current_user_can(), wp_die(), wp_send_json_error(), do_action(), do_action(), do_action(), ->get_post_value(), ->parse_widget_id(), key(), ->call_widget_update(), is_wp_error(), ->get_error_code(), wp_send_json_error(), ->sanitize_widget_js_instance(), compact(), wp_send_json_success()
!is_user_logged_in() && !current_user_can() && empty($value) && isset($value) && is_wp_error()94is_user_logged_in(), wp_die(), check_ajax_referer(), current_user_can(), wp_die(), wp_send_json_error(), do_action(), do_action(), do_action(), ->get_post_value(), ->parse_widget_id(), key(), wp_send_json_error(), ->call_widget_update(), is_wp_error(), ->get_error_code(), wp_send_json_error(), ->sanitize_widget_js_instance(), compact(), wp_send_json_success()

Across PHP versions

PHPCompiledExecutedBranchesNotes
8.6-dev9464–947
8.59464–947
8.49464–9473 fewer instructions than PHP 8.3
8.39764–977
8.29764–977
8.19764–977
7.49764–977

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_Customize_Widgets::wp_ajax_update_widget() runs, in this order:

  1. do_action( load-widgets.php )actionline 1720 (+17 into the body)

    Fires early when editing the widgets displayed in sidebars.

  2. do_action( widgets.php )actionline 1723 (+20 into the body)

    Fires early when editing the widgets displayed in sidebars.

  3. do_action( sidebar_admin_setup )actionline 1726 (+23 into the body)

    Fires early before the Widgets administration screen loads, after scripts are enqueued.

Uses · 12

Source code

	public function wp_ajax_update_widget() { 		if ( ! is_user_logged_in() ) {			wp_die( 0 );		} 		check_ajax_referer( 'update-widget', 'nonce' ); 		if ( ! current_user_can( 'edit_theme_options' ) ) {			wp_die( -1 );		} 		if ( empty( $_POST['widget-id'] ) ) {			wp_send_json_error( 'missing_widget-id' );		} 		/** This action is documented in wp-admin/includes/ajax-actions.php */		do_action( 'load-widgets.php' ); // phpcs:ignore WordPress.NamingConventions.ValidHookName.UseUnderscores 		/** This action is documented in wp-admin/includes/ajax-actions.php */		do_action( 'widgets.php' ); // phpcs:ignore WordPress.NamingConventions.ValidHookName.UseUnderscores 		/** This action is documented in wp-admin/widgets-form.php */		do_action( 'sidebar_admin_setup' ); 		$widget_id = $this->get_post_value( 'widget-id' );		$parsed_id = $this->parse_widget_id( $widget_id );		$id_base   = $parsed_id['id_base']; 		$is_updating_widget_template = (			isset( $_POST[ 'widget-' . $id_base ] )			&&			is_array( $_POST[ 'widget-' . $id_base ] )			&&			preg_match( '/__i__|%i%/', key( $_POST[ 'widget-' . $id_base ] ) )		);		if ( $is_updating_widget_template ) {			wp_send_json_error( 'template_widget_not_updatable' );		} 		$updated_widget = $this->call_widget_update( $widget_id ); // => {instance,form}		if ( is_wp_error( $updated_widget ) ) {			wp_send_json_error( $updated_widget->get_error_code() );		} 		$form     = $updated_widget['form'];		$instance = $this->sanitize_widget_js_instance( $updated_widget['instance'], $id_base ); 		wp_send_json_success( compact( 'form', 'instance' ) );	}

Changelog

Introduced in 3.9.0. One change between 6.7.7 and 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.

7.1.0
Return type changed from none to never.verified against source
3.9.0
Introduced.from the docblock

About this page

Parsed data
Generated from the wordpress-develop 7.1.0 tag, from src/wp-includes/class-wp-customize-widgets.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.