У меня есть форма с некоторыми флажками и полями выбора, и она показывает, что пользователь хочет через вызов ajax. Проблема заключается в том, что когда пользователь щелкает элемент и отображается страница сведений, а затем решает вернуться на предыдущую страницу, ему необходимо нажать и снова выбрать свой предыдущий выбор.
Я хотел бы, чтобы WP сохранял все опции в сеансе, когда нажата кнопка на странице сведений, и сохранял фактическую информацию в сеансе, а затем, когда он снова посещает страницу, значения будут выбраны в сеансах и установлены, если таковые имеются. нашел.
Можно ли это сделать в WP?
Если да, то как?
Давайте упростим это и скажем, что у нас есть что-то вроде этого в нашей форме:
<input class="car_color" type="checkbox" name="car_color" value="1" />
<input class="car_color" type="checkbox" name="car_color" value="2" />
<input class="car_color" type="checkbox" name="car_color" value="8" />
<input class="car_color" type="checkbox" name="car_color" value="4" />
<input class="car_color" type="checkbox" name="car_color" value="6" />
Я не использую кнопку отправки в моей форме, она обрабатывается через AJAX при изменении ввода.
И в моих результатах получить через AJAX у меня есть ссылка на страницу сведений:
<a class="detail-info-link" href="<?php echo $url ?>">
Любая идея, как я могу сохранить свои значения в сеансе и вызвать их при повторном просмотре / перезагрузке / кнопку возврата в браузере?
Мне нужно, чтобы иметь возможность читать сессионный материал и использовать его через? Javascript? и активировать функцию поиска через ajax, которая уже работает хорошо.
Мне просто нужно сохранить (вероятно, перед переходом к $ link в href кнопки «Подробности» и прочитать и отправить переменные сеанса (если они существуют).
Ответы:
Сессии не включены в WordPress по умолчанию, если вы хотите активировать PHP-сессии, добавьте это в начале вашего
functions.php
:Теперь вы можете использовать
$_SESSION['your-var'] = 'your-value';
для установки переменной сеанса. Взгляните на документацию PHP по сессиям .Обновить:
Был второй ответ, который, на мой взгляд, тоже имел значение - к сожалению, он был удален, я снова добавляю информацию сюда. Ответ был на WP Session Manager, плагин, написанный @eamann, в качестве альтернативного решения.
Я читал некоторые вещи о плагине, но никогда не использовал его, потому что - пока - я придерживаюсь сессий PHP - никогда не было проблемы, что я не мог их использовать. Это заявление / комментарий самого автора плагина о некоторых возможных преимуществах.
источник
добавьте это в вашем functions.php
источник
Я объясню, как установить сеанс имени пользователя с плагином Native PHP Sessions for WordPress . Вы можете применить эту логику к вашей проблеме.
Добавьте это в ваш файл functions.php
$ _POST ['log'] ссылается на поле ввода имени пользователя из формы входа в WordPress. Когда пользователь входит в систему, имя пользователя сохраняется в $ _SESSION ['username']. В вашем случае вы бы изменили 'log' на имена переменных формы, которые у вас есть 'car_color'.
Ссылка на имя пользователя позже в некоторых других файлах php
источник
Может быть, в Wordpress нет обычных сессий ... в любом случае, Wordpress знает концепцию пользователей. Вы можете управлять информацией , связанной с конкретными пользователями с функциями
add_user_meta
,update_user_meta
,get_user_meta
, иdelete_user_meta
.Если вам нужна информация, сохраненная таким образом в JavaScript, вы можете написать небольшой скрипт PHP, который вырвет то, что вам нужно, и вызвать его с помощью Ajax.
источник
На странице PHP, которая получает запрос AJAX, установите $ _SESSION следующим образом.
Доступ к переменной $ _SESSION
В этом уроке более подробно рассказывается о правильной настройке и использовании сессий.
источник