WordPress как на ладони
Недорогой хостинг для сайтов на WordPress: wordpress.jino.ru

Проблема при передаче данных в формате JSON.

В файле functions.php у меня есть такой код:

if( isset($_REQUEST['status']) == 'activate'){

	 global $wpdb;
	$response = array();
	$code = sanitize_text_field($_REQUEST['code']);
	$mycode = $wpdb->get_results( "SELECT * FROM wp_license WHERE license_key = '$code'", ARRAY_A );
	if(!$mycode){
		$response['error'] = 'ERROR';
	}
	$response['code'] = $code;
	$response['domain'] = $_REQUEST['domain'];
	$res = wp_json_encode($response);
	echo $res;

}

Я возвращаю данные в json и собственно проблема в том что - возвращается строка:

string(604) "{"code":"sd","domain":"domain.ru"}

как можно заметить, показано что в строке 604 символа и поэтому json_decode() возвращает NULL, заметил такое именно в WordPress, если я создам отдельный php файл и повторяю тот же код, то строка возвращается нормального размера. Как вообще такое может быть, пишет что в строке 604 символа, хотя визуально видно что нет там и 100 символов. Возможно кто-то сталкивался с подобным?

Заметки к вопросу:
Hellion 1 месяц назад

Я разобрался сам в чем проблема. В момент вывода echo, в тело добавлялись ошибки: Warning: Cannot modify header information - headers already sent by

Решилось при помощи замены echo на wp_send_json( $response );

Kama 1 месяц назад

Для очистки SQL параметра используй $wpdb->prepare

0
Hellion
1 месяц назад 18

Нет ответов на этот вопрос.

    На вопросы могут отвечать только зарегистрированные пользователи. Вход . Регистрация