Сбросить

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

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

 Phil31 мая 2011 г., 07:12
Все, что делает, это устанавливает идентификационные файлы cookie на основе идентификатора пользователя. Видетьcodex.wordpress.org/Function_Reference/wp_set_auth_cookie
 Sapir31 мая 2011 г., 07:09
Извините, как уже упоминалось в комментарии, следующее не подходит для вас:codex.wordpress.org/Function_Reference/wp_setcookie Просто используйте то, что предложил Фил. Удачи!
 Sapir31 мая 2011 г., 07:15
@Phil, спасибо, что указали, что: P

Ответы на вопрос(3)

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

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

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

Получить печенье в 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>";
}

Удалить или сбросить куки в WordPress

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

Устанавливать cookie на wordpress Я использовал значение $ domain. С его помощью я получаю возможность использовать значение cookie для всего сайта.

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

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

Сбросить

setcookie("cookie_name", '', time()-1000, '/');
Решение Вопроса

ра, используя PHP или на стороне клиента, используя JavaScript.

В PHP вы устанавливаете куки, используя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

 Jake30 мая 2013 г., 02:46
При установке cookie в wordpress я бы использовал некоторые из констант, которые для него установлены: setcookie ('my_cookie', 'некоторое значение по умолчанию', strtotime ('+ 1 день'), COOKIEPATH, COOKIE_DOMAIN, false); Без пути и домена вы будете устанавливать cookie для каждой страницы отдельно, а не для сайта.
 Obmerk Kronen20 сент. 2015 г., 08:41
Хотя это правда, что печенье лучше всего установить с ранним хуком, или, как вы его сформулируетеquite the challenge in Wordpress всегда есть возможность установить его позже сAJAX ответ.
 Obmerk Kronen21 сент. 2015 г., 02:36
Насколько я знаю, опция ajax в WordPress существовала хотя бы с2008 (когда я начал использовать его) и наверняка, так какверсия 2.8 в какой-то форме. Но, чтобы быть ясным, цель комментария была не для того, чтобы оспорить ваш ответ, а для того, чтобы завершить его для дальнейшего использования. :-)
 Phil21 сент. 2015 г., 02:11
@ObmerkKronen еще в 2011 году, когда я написал этот ответ, я не думаю, что Wordpress имелAJAX вариант ответа :)
 jeremysawesome31 мая 2011 г., 07:19
Также - убедитесь, что вы устанавливаете правильный домен для своих файлов cookie. В будущем вы можете захотеть, чтобы основной домен и поддомен имели доступ к одним и тем же файлам cookie. Если вы установите свои куки прямо сейчас, вам не придется беспокоиться о том, чтобы сбросить их в будущем.

Ваш ответ на вопрос