WordPress как на ладони
Наставник Трепачёв Д.П., phphtml.net wordpress jino

wp_send_json_error() WP 3.5.0

Возвращает JSON данные. Используется для возврата ошибок в AJAX запросах. Ответ будет всегда содержать элемент success=false по которому выявляется ошибка при обработке AJAX ответа.

Функция устанавливает header заголовок и обрывает работу PHP скрипта:

@header( 'Content-Type: application/json; charset=' . get_option( 'blog_charset' ) );

С версии 4.1. Если в параметр $data передать объект WP_Error, то он будет обработан и функция вернет массив с сообщением об ошибке. Т.е. функция понимает переданный WP_Error объект.

wp_send_json_success() — противоположная этой функция. Возвращает успешный ответ.

Работает на основе: wp_send_json()

Хуков нет.

Возвращает

Выводит на экран данные и обрывает работу php.

// Вид возвращаемых данных, перед кодированием в JSON:
array( 'success' => false );
array( 'success' => false, 'data' => $data ); // если указан $data

Использование

wp_send_json_error( $data, $status_code );
$data(строка/массив/число/объект/логический)
Данные, которые будут добавлены в результат в элемент массива data, перед кодирование в JSON.
По умолчанию: нет
$status_code(число)
HTTP статус код, который нужно установить. Какие бывают статус коды, смотрите здесь. C WP 4.7.
По умолчанию: null

Примеры

#1 Возврат ошибки в JSON формате при AJAX ответе

Этот jQuery код отправляет AJAX запрос на страницу плагина 'ajax/save_field.php':

jQuery(document).ready(function(){

	jQuery('#btn_save').click(function(e){
	   e.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(); // выведет json даныне success=false

// тут не обязательно использовать die

Код wp send json error: wp-includes/functions.php WP 4.8.1

<?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 );
}

Cвязанные функции

Из метки: Ajax

Еще из метки: _json для ajax

Еще из раздела: Вспомогательные

КонсОМ СКС

Компания "КонсОМ СКС" - Организация обработки и хранения больших данных.

www.konsom.ru

wp_send_json_error Комментариев нет

Здравствуйте, !

Ваш комментарий