Функция WP_SEND_JSON_SUCCESS() в WordPress: параметры, использование и примеры

Функция WP_SEND_JSON_SUCCESS() в WordPress

Функция wp_send_json_success() была добавлена в версии 3.5.0. Она используется для отправки успешного ответа в формате JSON на AJAX-запрос. В ответе всегда будет элемент success со значением true. После выполнения этой функции происходит завершение выполнения PHP-скрипта.

Параметры функции

Возвращаемое значение

Функция ничего не возвращает (null). Она выводит данные в формате JSON и завершает выполнение PHP.

Данные, переданные в параметр $data, будут добавлены в ответ:

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

Использование функции

wp_send_json_success($value, $status_code, $flags);
  • $value (mixed) – данные, которые нужно закодировать в JSON, а затем вывести и завершить выполнение. По умолчанию: null.
  • $status_code (int) – HTTP-код состояния, который нужно вывести. По умолчанию: null.
  • $flags (int) – параметры, которые будут переданы в функцию json_encode().

Примеры использования

Пример 1: Успешный AJAX-запрос

Данный код на jQuery отправляет AJAX-запрос к файлу плагина ajax/save_field.php:

jQuery(document).ready(function($) {
    $('#btn_save').click(function(e) {
        e.preventDefault();

        $.post(pluginUrl + 'ajax/save_field.php', $('#my-form').serialize(), function(json) {
            if (json.success)
                alert(json.data.message);
            else
                alert('Ошибка: ' + json.data);        
        });
    });
});

Это код файла save_field.php, который обрабатывает запрос. Здесь показано, как используется wp_send_json_success():

 'Сохранено',
    'ID'      => 1
);

wp_send_json_success($return);

Изменения в версии

  • С 3.5.0 – Функция была введена.
  • С 4.7.0 – Добавлен параметр $status_code.
  • С 5.6.0 – Добавлен параметр $flags.

Код функции

Вот как выглядит встраиваемая функция wp_send_json_success():

function wp_send_json_success($value = null, $status_code = null, $flags = 0) {
    $response = array('success' => true);

    if (isset($value)) {
        $response['data'] = $value;
    }

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

Похожие функции

Существует несколько функций, связанных с AJAX в WordPress:

  • check_ajax_referer() – Проверяет корректность AJAX-запроса.
  • wp_doing_ajax() – Проверяет, выполняется ли текущий запрос как AJAX.
  • wp_json_encode() – Кодирует данные в формат JSON.
  • wp_send_json() – Отправляет данные в формате JSON.
  • wp_send_json_error() – Отправляет ошибку в формате JSON.

Эти функции полезны для работы с AJAX и JSON в WordPress.

Leave a Reply

Ваш адрес email не будет опубликован. Обязательные поля помечены *