Описание функции wp_send_json_success()
Функция wp_send_json_success() используется для отправки JSON-ответа с успешным статусом в AJAX-запросах. Она автоматически устанавливает заголовок Content-Type как application/json и завершает выполнение скрипта. Это упрощает обработку ответов на клиентской стороне и позволяет передавать дополнительные данные в формате JSON.
Функция полезна для обработки AJAX-запросов в темах и плагинах WordPress.
Параметры
$data
Тип: mixed
Обязательный: Нет
По умолчанию: null
Описание: Дополнительные данные, которые будут отправлены в ответе
Возможные значения:
Возвращаемое значение
Тип: void
Описание: Отправляет JSON-ответ и завершает выполнение скрипта
Возможные значения:
• JSON-ответ с успешным статусом и переданными данными
Примеры использования
Отправка простого успешного ответа с сообщением
wp_send_json_success(array('message' => 'Успех'));
Клиент получит JSON: { ‘success’: true, ‘data’: { ‘message’: ‘Успех’ } }
Отправка данных пользователя в ответе
$user_data = array('id' => 1, 'name' => 'John Doe');
wp_send_json_success($user_data);
Клиент получит JSON: { ‘success’: true, ‘data’: { ‘id’: 1, ‘name’: ‘John Doe’ } }
Отправка ошибки, если пользователь не найден
if (!$user)
wp_send_json_error('Пользователь не найден');
wp_send_json_success($user);
Клиент получит JSON: { ‘success’: false, ‘data’: ‘Пользователь не найден’ }
Пример использования в AJAX-запросе плагина
add_action('wp_ajax_my_action', 'my_action_callback');
function my_action_callback() {
// Логика обработки
wp_send_json_success(array('result' => 'Данные успешно обработаны'));
}
Этот код обрабатывает AJAX-запрос и отправляет успешный ответ
Безопасность
Валидация входных данных: Не требуется, так как функция не принимает обязательные параметры
Санитизация: Данные автоматически сериализуются в JSON
Рекомендации: Необходимо проверять права доступа перед отправкой данных, использовать current_user_can() для проверки прав
— Связанные функции
Отправка JSON-ответа с ошибкой
Сериализация данных в JSON
— Примечания
– Ограничения
Функция завершает выполнение скрипта, дальнейшие действия не будут выполнены
– Частые проблемы
- Не вызывайте wp_send_json_success() после других выводов, это вызовет ошибки
- Не используйте в контексте, где не ожидается AJAX-ответ