Как я могу устанавливать, получать и уничтожать куки в Wordpress? - PullRequest
20 голосов
/ 31 мая 2011

Как я могу устанавливать, получать и уничтожать куки в Wordpress?

Я занимался серфингом в Интернете, но у меня не было четких идей, пожалуйста, помогите мне найти способ.

Ответы [ 3 ]

33 голосов
/ 31 мая 2011

Вы можете извлекать файлы cookie и управлять ими на стороне сервера, используя PHP или на стороне клиента, используя JavaScript.

В PHP вы устанавливаете файлы cookie, используя setcookie().Обратите внимание, что это должно быть сделано перед отправкой любого вывода в браузер, что может быть довольно сложной задачей в Wordpress.Вы в значительной степени ограничены некоторыми ранними хуками, которые вы можете установить с помощью плагина или файла темы (например, functions.php), например

add_action('init', function() {
    if (!isset($_COOKIE['my_cookie'])) {
        setcookie('my_cookie', 'some default value', strtotime('+1 day'));
    }
});

Получение файлов cookie в PHP намного проще.Просто получите их по имени из суперглобального $_COOKIE, например,

$cookieValue = $_COOKIE['my_cookie'];

Для отмены куки-файла требуется установить его с датой истечения в прошлом, что-то вроде

setcookie('my_cookie', null, strtotime('-1 day'));

Для JavaScript я бы порекомендовал взглянуть на один из плагинов cookie jQuery (поскольку jQuery уже является частью Wordpress).Попробуйте http://plugins.jquery.com/project/Cookie

9 голосов
/ 04 ноября 2015

Попробуйте этот код внутри function.php, чтобы поиграть с Cookies в WordPress

Установить Cookie в WordPress

add_action( 'init', 'my_setcookie' );
function my_setcookie() {
setcookie( 'my-name', 'my-value', time() + 3600, COOKIEPATH, COOKIE_DOMAIN   );
}

Получить Cookie в WordPress

add_action( 'wp_head', 'my_getcookie' );
function my_getcookie() {
$alert = isset( $_COOKIE['my-name'] ) ? $_COOKIE['my-name'] : 'not set';
 echo "<script type='text/javascript'>alert('$alert')</script>";
}

Удалить или Отменить Cookie в WordPress

add_action( 'init', 'my_deletecookie' );
function my_deletecookie() {
setcookie( 'my-name', '', time() - 3600, COOKIEPATH, COOKIE_DOMAIN );
}
1 голос
/ 04 марта 2019

Чтобы установить cookie на wordpress, я использовал значение $ domain.С его помощью я могу использовать значение cookie для всего сайта.

$domain = ($_SERVER['HTTP_HOST'] != 'localhost') ? $_SERVER['HTTP_HOST'] : false;

setcookie("cookie_name", 'cookie_value', 0, '/', $domain);

Для сброса

setcookie("cookie_name", '', time()-1000, '/');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...