Всем доброго времени суток, есть небольшая задача подкоректировать 1 страницу в Wordpress Нужно что бы при заходе на страницу проверялось наличие куки, если она есть то редирект на другую страницу, если куки нет то просто задать куку без редиректа. Тоесть при повторном посещении этой страницы человек будет сразу редиректиться. Сижу с обеда но так как я далекий от этого и друзей в этой теме совсем нет, пришел за вашей мудростью. Буду очень признателен, если поможете, к карме + Это что я шкрябал. PHP: <?php if(!isset($_COOKIE['secondvisit'])) { wp_redirect( 'http://www.example.com', 301 ); } else { add_action( 'init', 'my_setcookie_example' ); function my_setcookie_example() { setcookie( "secondvisit", 15 * DAYS_IN_SECONDS); } ?>
Не знаком с вордпрессом, но так объявление функции я бы вообще убрал. Те в элс оставил бы одну строчку с установкой куки. И вы не передаете параметр value, те значение куки. Имя есть, значения нет. Пусть будет хоть пустое, но будет. --- Добавлено --- Ну и раз на то пошло: описание функции несколько логичнее бы поставить ДО вызова функции
Сенкс чувак чуть поправил, но ерорится теперь) PHP: <?php if(isset($_COOKIE['secondvisit'])) { wp_redirect( 'http://www.example.com', 301 ); } else { setcookie( "secondvisit", 32, 15 * DAYS_IN_SECONDS); } ?> Выкидывает ошибку о том что Header alreade sent
А. Нельзя так в вордпрессе, значит. Возвращайте свою функцию, только вызывайте ее после описания, а не наоборот, и значение куки установите
PHP: <?php if(!isset($_COOKIE['$cookie_name'])) { wp_redirect( 'http://www.example.com' ); } else { function my_setcookie_example() { setcookie( $cookie_name, 1, 15 * DAYS_IN_SECONDS); add_action( 'my_setcookie_example' ); } ?> Ерорится unexpected $end
Код (Text): <?php if(!isset($_COOKIE['$cookie_name'])) { wp_redirect( 'http://www.example.com' ); } else { function my_setcookie_example() { setcookie( $cookie_name, 1, 15 * DAYS_IN_SECONDS); add_action( 'init', 'my_setcookie_example' ); } } ?> Опять на Header alreade sent ругается) :dumb:
PHP: <?php if(!isset($_COOKIE['$cookie_name'])) { wp_redirect( 'http://www.example.com' ); } else { function my_setcookie_example() { setcookie( $cookie_name, 1, 15 * DAYS_IN_SECONDS); } add_action( 'init', 'my_setcookie_example' ); } ?> Вроде так) Но все равно к хедеру претензии 8)
Значит до установки кук уже что-то выводится. Куки можно установить только до вывода какого-либо контента