Mam formularz z niektórymi polami wyboru i wejściowymi polami wyboru i pokazuje, czego użytkownik chce za pośrednictwem wywołania ajax. Problem polega na tym, że gdy użytkownik kliknie element i wyświetli się strona ze szczegółami, a następnie zdecyduje się wrócić do poprzedniej strony, musi kliknąć i ponownie wybrać poprzedni wybór.
Chciałbym, aby WP zapisał wszystkie opcje w sesji po kliknięciu przycisku strony ze szczegółami i zapisał rzeczywiste informacje w sesji, a następnie, gdy ponownie odwiedza stronę, wartości będą wyszukiwane w sesjach i ustawiane, jeśli jakieś są uznany.
Czy można to zrobić w WP?
Jeśli tak to jak?
Uproszczmy to i powiedzmy, że mamy coś takiego w naszej formie:
<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" />
Nie używam przycisku Prześlij w moim formularzu, jest obsługiwany przez AJAX przy zmianie danych wejściowych.
A w moich wynikach uzyskaj przez ajax Mam link do strony szczegółów:
<a class="detail-info-link" href="<?php echo $url ?>">
Wiesz, jak mogę przechowywać moje wartości w Sesji i wywoływać je podczas ponownego odwiedzania / ponownego ładowania / powrotu w przeglądarce?
Muszę być w stanie odczytać zawartość sesji i korzystać z niej za pomocą? Javascript? i uruchom moją funkcję wyszukiwania przez ajax, która już działa dobrze.
Muszę tylko zapisać (prawdopodobnie przed przejściem do $ link w szczegółach według przycisku szczegółów oraz odczytać i wysłać zmienne sesji (jeśli istnieją).
Odpowiedzi:
Sesje nie są domyślnie włączone w wordpress, jeśli chcesz aktywować sesje php, dodaj to na początku
functions.php
:Teraz możesz użyć
$_SESSION['your-var'] = 'your-value';
do ustawienia zmiennej sesji. Zajrzyj do dokumentacji PHP dotyczącej sesji .Aktualizacja:
Była druga odpowiedź, która, moim zdaniem, również miała wartość - niestety została usunięta, ponownie dodam informacje tutaj. Odpowiedź dotyczyła wtyczki WP Session Manager jako rozwiązania alternatywnego napisanego przez @eamann.
Przeczytałem kilka rzeczy o wtyczce, ale nigdy jej nie użyłem, ponieważ - jak dotąd - trzymam się sesji PHP - nigdy nie miałem problemu, że nie mogłem z nich korzystać. Jest to stwierdzenie / komentarz samego autora wtyczki, które znalazłem na temat niektórych możliwych zalet.
źródło
dodaj to w pliku functions.php
źródło
Wyjaśnię, jak ustawić sesję nazwy użytkownika za pomocą wtyczki Native PHP Sessions for WordPress . Możesz zastosować tę logikę do swojego problemu.
Dodaj to do pliku functions.php
$ _POST ['log'] odwołuje się do pola wprowadzania nazwy użytkownika z formularza logowania wordpress. Gdy użytkownik się loguje, nazwa użytkownika jest przechowywana w $ _SESSION ['nazwa użytkownika']. W twoim przypadku zmieniłbyś „log” na nazwy zmiennych formularza, które masz „car_color”.
Odwołaj się później do nazwy użytkownika w innym pliku php
źródło
Być może w Wordpress nie ma zwykłych sesji ... w każdym razie Wordpress zna pojęcie użytkowników. Można zarządzać informacji dotyczących konkretnych użytkowników z funkcjami
add_user_meta
,update_user_meta
,get_user_meta
, idelete_user_meta
.Jeśli potrzebujesz informacji zapisanych w ten sposób w JavaScript, możesz napisać mały skrypt PHP, który wymiotuje to, czego potrzebujesz, i nazwać go Ajax.
źródło
Na stronie PHP, która odbiera żądanie AJAX, ustaw $ _SESSION w ten sposób.
Uzyskaj dostęp do zmiennej $ _SESSION
W tym samouczku omówiono bardziej szczegółowo prawidłowe konfigurowanie i usuwanie sesji.
źródło