WordPress Version: 6.5
/**
* Sends a JSON response back to an Ajax request.
*
* @since 3.5.0
* @since 4.7.0 The `$status_code` parameter was added.
* @since 5.6.0 The `$flags` parameter was added.
*
* @param mixed $response Variable (usually an array or object) to encode as JSON,
* then print and die.
* @param int $status_code Optional. The HTTP status code to output. Default null.
* @param int $flags Optional. Options to be passed to json_encode(). Default 0.
*/
function wp_send_json($response, $status_code = null, $flags = 0)
{
if (wp_is_serving_rest_request()) {
_doing_it_wrong(__FUNCTION__, sprintf(
/* translators: 1: WP_REST_Response, 2: WP_Error */
__('Return a %1$s or %2$s object from your callback when using the REST API.'),
'WP_REST_Response',
'WP_Error'
), '5.5.0');
}
if (!headers_sent()) {
header('Content-Type: application/json; charset=' . get_option('blog_charset'));
if (null !== $status_code) {
status_header($status_code);
}
}
echo wp_json_encode($response, $flags);
if (wp_doing_ajax()) {
wp_die('', '', array('response' => null));
} else {
die;
}
}