Ich habe ein Formular mit einigen Kontrollkästchen und Auswahlkästchen für Eingabefelder und es zeigt, was der Benutzer über einen Ajax-Aufruf möchte. Das Problem besteht darin, dass der Benutzer, wenn er auf das Element klickt und die Detailseite angezeigt wird und dann beschließt, zur vorherigen Seite zurückzukehren, erneut klicken und seine vorherige Auswahl treffen muss.
Ich möchte, dass WP alle Optionen in der Sitzung speichert, wenn auf die Schaltfläche auf der Detailseite geklickt wird, und aktuelle Informationen in der Sitzung speichert. Wenn er dann die Seite erneut besucht, werden die Werte in Sitzungen überprüft und gegebenenfalls festgelegt gefunden.
Könnte das in WP gemacht werden?
Wenn ja, wie?
Vereinfachen wir das und sagen wir, wir haben so etwas in unserer Form:
<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" />
Ich benutze in meinem Formular nicht die Schaltfläche "Senden", sie wird bei Eingabeänderung über AJAX verarbeitet.
Und in meinen Ergebnissen bekomme ich via Ajax einen Link zur Detailseite:
<a class="detail-info-link" href="<?php echo $url ?>">
Hast du eine Idee, wie ich meine Werte in Session speichern und beim erneuten Aufrufen / Laden / Zurück-Button im Browser aufrufen kann?
Ich muss in der Lage sein, das in der Sitzung gespeicherte Material zu lesen und es über? Javascript? Zu verwenden. und über ajax meine suchfunktion auslösen, die schon gut funktioniert.
Ich muss nur speichern (wahrscheinlich bevor ich zu $ link in href von by detail button gehe und Sitzungsvariablen lese und sende (falls vorhanden).
Antworten:
Sitzungen sind in WordPress nicht standardmäßig aktiviert. Wenn Sie PHP-Sitzungen aktivieren möchten, fügen Sie dies zu Beginn Ihrer
functions.php
:Sie können jetzt
$_SESSION['your-var'] = 'your-value';
eine Sitzungsvariable festlegen. Schauen Sie sich die PHP-Dokumentation zu Sessions an .Aktualisieren:
Es gab eine zweite Antwort, die meiner Meinung nach auch einen Wert hatte - leider wurde sie gelöscht, ich füge die Informationen hier erneut hinzu. Die Antwort bezog sich auf WP Session Manager, ein Plugin, das von @eamann als alternative Lösung geschrieben wurde.
Ich habe einige Dinge über das Plugin gelesen, es aber nie benutzt, weil ich - bis jetzt - bei PHP-Sitzungen bleibe - nie das Problem hatte, dass ich sie nicht benutzen konnte. Dies ist eine Aussage / ein Kommentar des Plugin-Autors, den ich über einige mögliche Vorteile gefunden habe.
quelle
füge dies in deine functions.php ein
quelle
Ich werde erklären, wie man eine Benutzersitzung mit dem Native PHP Sessions für WordPress Plugin erstellt. Sie können diese Logik auf Ihr Problem anwenden.
Fügen Sie dies zu Ihrer functions.php-Datei hinzu
$ _POST ['log'] verweist auf das Eingabefeld für den Benutzernamen im WordPress-Anmeldeformular. Wenn sich ein Benutzer anmeldet, wird der Benutzername in $ _SESSION ['Benutzername'] gespeichert. In Ihrem Fall würden Sie "log" in den Namen der Formularvariablen ändern, die Sie "car_color" haben.
Verweisen Sie den Benutzernamen später in einer anderen PHP-Datei durch
quelle
Vielleicht gibt es in Wordpress keine üblichen Sitzungen ... Wordpress kennt das Konzept der Benutzer. Sie können Informationen in Bezug auf bestimmte Benutzer mit den Funktionen verwalten
add_user_meta
,update_user_meta
,get_user_meta
, unddelete_user_meta
.Wenn Sie die so gespeicherten Informationen in JavaScript benötigen, können Sie ein kleines PHP-Skript schreiben, das sich erbricht, was Sie benötigen, und es mit Ajax aufrufen.
quelle
Stellen Sie auf der PHP-Seite, die die AJAX-Anfrage empfängt, $ _SESSION so ein.
Greifen Sie auf die Variable $ _SESSION zu
In diesem Tutorial erfahren Sie mehr über das richtige Einrichten und Entsorgen von Sitzungen.
quelle