Sends a JSON response back to an Ajax request, indicating failure.
Description
If the $value
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
$value
mixedoptional- Data to encode as JSON, then print and die.
Default:
null
$status_code
intoptional- The HTTP status code to output.
Default:
null
$flags
intoptional- Options to be passed to json_encode(). Default 0.
Source
* @since 4.7.0 The `$status_code` parameter was added.
* @since 5.6.0 The `$flags` parameter was added.
*
* @param mixed $value Optional. Data to encode as JSON, then print and die. Default null.
* @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_error( $value = null, $status_code = null, $flags = 0 ) {
$response = array( 'success' => false );
if ( isset( $value ) ) {
if ( is_wp_error( $value ) ) {
$result = array();
foreach ( $value->errors as $code => $messages ) {
foreach ( $messages as $message ) {
$result[] = array(
'code' => $code,
'message' => $message,
);
}
}
$response['data'] = $result;
Doing just
wp_send_json_error();
won’t send error – it will actually return200
instead. So, if you want to avoid AJAX’success
and triggererror
, make sure to add error code, like500
, or whatever you prefer.Example
save_field.php