it-swarm.com.de

Speichern und Empfangen von Variablen in WP Sitzungen?

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 die Seite dann erneut besucht, werden die Werte überprüft Sitzungen und legen Sie fest, ob welche gefunden werden.

Könnte das in WP gemacht werden?

Wenn ja wie

Vereinfachen wir das und sagen, 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 verwende in meinem Formular keine Senden-Schaltfläche, 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).

27
Derfder

Sitzungen sind in WordPress nicht standardmäßig aktiviert. Wenn Sie PHP-Sitzungen aktivieren möchten, fügen Sie dies zu Beginn Ihres functions.php hinzu:

if (!session_id()) {
    session_start();
}

Sie können jetzt $_SESSION['your-var'] = 'your-value'; verwenden, um eine Sitzungsvariable festzulegen. Schauen Sie sich die PHP Dokumentation zu sessions an.



Update:

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, habe 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 Anweisung/Kommentar vom Plugin-Autor selbst, den ich über einige mögliche Vorteile gefunden habe.

32
Nicolai

füge dies in deine functions.php ein

<?php

function tatwerat_startSession() {
    if(!session_id()) {
        session_start();
    }
}

add_action('init', 'tatwerat_startSession', 1);
1
Abdo-Host

Ich werde erklären, wie man eine Benutzersitzung mit dem Native PHP Sessions for WordPress Plugin erstellt. Sie können diese Logik auf Ihr Problem anwenden.

Fügen Sie dies Ihrer functions.php-Datei hinzu

if (!session_id()) {
    session_start();
}

  if ( isset( $_POST['wp-submit'] ) ){

    $_SESSION['username']=$_POST['log'];

  }

$ _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

$username=$_SESSION['username'];
1
embulldogs99

Vielleicht gibt es in Wordpress keine üblichen Sitzungen ... Wordpress kennt das Konzept der Benutzer. Sie können benutzerbezogene Informationen mit den Funktionen add_user_meta , update_user_meta , get_user_meta und delete_user_meta verwalten.

Wenn Sie die auf diese Weise 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.

0
Philipp Zedler

Legen Sie auf der Seite PHP, die die Anforderung AJAX empfängt, $ _SESSION wie folgt fest.

$car_color = <user selected form input data>;
$_SESSION['car_color'] = $car_color;

Zugriff auf die Variable $ _SESSION

if(isset($_SESSION['car_color'])) {
    $value = $_SESSION['car_color'];
} else {
    $value = 'Please select a car color.';
}

Dieses Tutorial geht detaillierter auf das richtige Einrichten und Entsorgen von Sitzungen ein.

0
nu everest