Подскажите как правильно написать код php и поместить в function. Что нужно. Если первый раз человек зашел на сайт на главную страница ru версии его нужно принудительно перевести на другую страницу сайта редиректом. Это нужно запомнить и больше его не переводить в следующий раз когда зайдет на сайт. Как хочу сделать. при входе на сайте узнать его ip записать в Cookie. Если человек первый раз, перенаправить его на другую страницу, если он уже заходил ранее с этого ip то ни чего не делать у меня есть рабочий код на пхп, простой, но наглядный пример что хочу сделать. Пробую переписать для вордпреса не получается . Помогите пожалуйста его переписать для Wordpress PHP: $my_lang = pll_current_language(); if ( $my_lang == "ru") { if( isset($_COOKIE["NameIP"])){ echo ''; } else{ setcookie("NameIP", $_SERVER['REMOTE_ADDR'], time()+60*60*24*30); header("Location: https://site.com/rutwo/"); exit(); } } else { echo ''; }
не надо привязываться к IP, он может меняться, просто куку-долгожителя взводи. что означают глубокомысленные PHP: echo''; ?
Перевожу что написал don.bidon: isset($_COOKIE["NameIP"]) — это и есть проверка, что человек впервые или не впервые зашел. Независимо от того что там в этой переменной. Можешь туда хоть слово "буй" записать, неважно. --- Добавлено --- Я бы еще setcookie делал бы именно на той странице, куда происходит переадресация, а не здесь. -
ок , как правильно для ворпресса написать эту функцию. потому что простой пхп он не понимает пишет ошибка. подскажите плиз
Если я пишу так, он перенаправляет, но не записывает куки. Когда следующий раз захожу, он все равно перенаправляет и не делает проверку, заходил ли я ранее или нет. Как правильно переписать код, чтобы заносил куки и когда следующий раз зайти он делал проверку и не перенаправлял ? и как правильно запустить эту функцию только на главной странице. Спасибо за ответ PHP: function setting_t_cookie() { if( isset($_COOKIE["NameIP"])){ echo ''; } else{ setcookie( "NameIP", $_SERVER['REMOTE_ADDR'], 30 * DAY_IN_SECONDS, COOKIEPATH, COOKIE_DOMAIN ); wp_redirect( 'https://site.com/news/' ); exit; } add_action( 'init', 'setting_t_cookie' );
Ну а ошибку какую пишет? Пожалуйста отвечай полностью, а не выборочно ))) --- Добавлено --- "Как правильно писать для вордпреса" я не знаю. Но куки они и в африке куки, должны работать, если не косячить. --- Добавлено --- Еще я бы посмотрел чему равны константы DAY_IN_SECONDS, COOKIEPATH, COOKIE_DOMAIN. Если там неправильные значения, кука не установится.
Выдает эту ошибку. Мне кажется не правильно подается команда на выполнение. Ничего не записывается Fatal error: Uncaught Error: Call to undefined function add_action() in /home/xxhost/xx.ru/www/index.php:16 Stack trace: #0 {main} thrown in /home/xxhost/xx.ru/www/index.php on line 16 если выполнять код на простом php без function то все работает. Но на движке wp нет