wp_send_json_error( mixed $data = null, int $status_code = null, int $options )

Send a JSON response back to an Ajax request, indicating failure.

Description

If the $data parameter is a WP_Error object, the errors within the object are processed and output as an array of error codes and corresponding messages. All other types are output without further processing.

Parameters

$data

(mixed) (Optional) Data to encode as JSON, then print and die.

Default value: null

$status_code

(int) (Optional) The HTTP status code to output.

Default value: null

$options

(int) (Optional) Options to be passed to json_encode(). Default 0.

More Information

The response object will always have a success key with the value false. If anything is passed to the function in the $data parameter, it will be encoded as the value for a data key.

Source

File: wp-includes/functions.php

function wp_send_json_error( $data = null, $status_code = null, $options = 0 ) {
	$response = array( 'success' => false );

	if ( isset( $data ) ) {
		if ( is_wp_error( $data ) ) {
			$result = array();
			foreach ( $data->errors as $code => $messages ) {
				foreach ( $messages as $message ) {
					$result[] = array(
						'code'    => $code,
						'message' => $message,
					);
				}
			}

			$response['data'] = $result;
		} else {
			$response['data'] = $data;
		}
	}

	wp_send_json( $response, $status_code, $options );
}

Changelog

Version Description
5.6.0 The $options parameter was added.
4.7.0 The $status_code parameter was added.
4.1.0 The $data parameter is now processed if a WP_Error object is passed in.
3.5.0 Introduced.

© 2003–2021 WordPress Foundation
Licensed under the GNU GPLv2+ License.
https://developer.wordpress.org/reference/functions/wp_send_json_error