Функция wp_remote_retrieve_cookie()
в WordPress используется для извлечения определенного cookie из массива данных, полученного в результате HTTP-запроса, выполненного с помощью функций wp_remote_get()
, wp_remote_post()
и других подобных функций.
wp_remote_retrieve_cookie( $response, $name )
Параметры
$response
(массив) (обязательный) — Массив, содержащий данные ответа HTTP-запроса.$name
(строка) (обязательный) — Имя cookie, который нужно извлечь.
Возвращаемое значение
- Возвращает объект
WP_Http_Cookie
, если cookie с заданным именем найден. - Возвращает
null
, если cookie с заданным именем не найден.
Пример 1: Извлечение cookie из HTTP-ответа
Допустим, мы выполняем HTTP-запрос с помощью функции wp_remote_get()
и хотим извлечь определенный cookie из ответа:
// Выполняем HTTP-запрос
$response = wp_remote_get( 'https://example.com' );
// Проверяем, не возникло ли ошибок
if ( is_wp_error( $response ) ) {
echo 'Ошибка запроса: ' . $response->get_error_message();
return;
}
// Извлекаем cookie с именем 'example_cookie'
$cookie_name = 'example_cookie';
$cookie = wp_remote_retrieve_cookie( $response, $cookie_name );
if ( $cookie ) {
echo 'Cookie найден: ' . $cookie->name . ' = ' . $cookie->value;
} else {
echo 'Cookie с именем ' . $cookie_name . ' не найден.';
}
В этом примере мы выполняем HTTP-запрос к https://example.com
и затем пытаемся извлечь cookie с именем example_cookie
. Если cookie найден, мы выводим его имя и значение. Если cookie не найден, мы выводим соответствующее сообщение.
Пример 2: Извлечение данных конкретной cookie
Предположим, мы отправили запрос и в ответе получили две cookie: name
и company
. Теперь нам нужно извлечь данные одной cookie с именем name
. Под данными понимается не только значение cookie, но и все связанные с ней сведения, представленные в виде объекта WP_Http_Cookie
.
Для демонстрации такого запроса воспользуемся сервисом httpbin.org, который позволяет устанавливать cookie в ответе от сервера.
// Устанавливаем URL для запроса
$url = 'https://httpbin.org/cookies/set?name=Alex&company=Genius';
// Отправляем запрос
$response = wp_remote_get( $url );
// Извлекаем cookie с именем 'name'
$name_cookie = wp_remote_retrieve_cookie( $response, 'name' );
// Выводим данные cookie
print_r( $name_cookie );
/*
WP_Http_Cookie Object
(
[name] => name
[value] => Alex
[expires] =>
[path] => /
[domain] => httpbin.org
)
*/
Полезные советы
- Убедитесь, что вы проверяете результат HTTP-запроса на наличие ошибок с помощью
is_wp_error()
, прежде чем пытаться извлечь cookie. - Функция
wp_remote_retrieve_cookie()
полезна при обработке аутентификации и сохранении состояния между запросами к внешним API.
Заключение
Функция wp_remote_retrieve_cookie()
— это полезный инструмент для извлечения определенных cookie из HTTP-ответов в WordPress. Она помогает легко получать нужные данные cookie из ответа внешнего сервера, что особенно важно при работе с аутентификацией и сохранением состояния между запросами.
Теперь вы знаете, как использовать wp_remote_retrieve_cookie()
для извлечения cookie из HTTP-ответов и как обрабатывать эти данные. Это важная часть разработки на WordPress, особенно при взаимодействии с внешними API.