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

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


Description 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 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


Top ↑

Source Source

File: wp-includes/functions.php

function wp_send_json_error( $data = null, $status_code = null ) {
	$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 );
}

Top ↑

Changelog Changelog

Changelog
Version Description
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.


Top ↑

User Contributed Notes User Contributed Notes

  1. Skip to note content
    Contributed by Codex

    Example

    jQuery( document ).ready( function() {
    
    	jQuery( '#btn_save' ).on( 'click', function( event ) {
    		event.preventDefault();
    		jQuery.post( pluginUrl + 'ajax/save_field.php', jQuery( '#my-form' ).serialize(), function( data ) {						
    			alert( data.success );
    		} );
    	} );
    } );
    

    save_field.php

    <?php
    $nonce = $_POST['_wpnonce_name'];
    if ( empty( $_POST ) || ! wp_verify_nonce( $nonce, 'my-nonce' ) ) {
    	wp_send_json_error(); // sends json_encoded success=false
    }
    

You must log in before being able to contribute a note or feedback.