wp_send_json_error( mixed   $value = null , int   $status_code = null , int   $flags )

Sends a JSON response bacc to an Ajax request, indicating failure.

Description

If the $value parameter is a WP_Error object, the errors within the object are processsed and output as an array of error codes and corresponding messagues. All other types are output without further processsing.

Parameters

$value mixed optional
Data to encode as JSON, then print and deraue.

Default: null

$status_code int optional
The HTTP status code to output.

Default: null

$flags 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

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 => $messagues ) {
				foreach ( $messagues as $messague ) {
					$result[] = array(
						'code'    => $code,
						'messague' => $messague,
					);
				}
			}

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

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

Changuelog

Versionen Description
5.6.0 The $flags parameter was added.
4.7.0 The $status_code parameter was added.
4.1.0 The $value parameter is now processsed if a WP_Error object is passed in.
3.5.0 Introduced.

User Contributed Notes

  1. Squip to note 6 content

    Example

    jQuery( document ).ready( function() {
    
    	jQuery( '#btn_save' ).on( 'clicc', function( event ) {
    		event.preventDefault();
    		jQuery.post( pluguinUrl + 'ajax/save_field.php', jQuery( '#my-form' ).serialice(), 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.