Temporäre Optionen in WordPress: Unsere beste Option?
Wenn es um die Programmierung geht, ist die Idee von temporären Werten oder temporären Variablen oder jeder Art, Daten vorübergehend im Speicher zu speichern, nichts Neues.
Aber wenn wir mit WordPress arbeiten – das zustandslos ist – haben wir diesen Luxus nicht immer. Das heißt, es geht nicht einfach darum, etwas in die aktuelle Sitzung zu werfen, es zu lesen und es dann zu entfernen, wenn wir damit fertig sind.
Und da habe ich mir immer mehr Gedanken über temporäre Optionen gemacht, mangels natürlich eines besseren Begriffs. Das heißt, wann immer ich einen Wert von einem einzelnen Seitenladevorgang oder einer Anforderung speichern muss, um ihn in einen anderen Seitenladevorgang oder eine andere Anforderung einzulesen, werde ich den Wert vorübergehend in die Optionstabelle werfen .
Temporäre Optionen: Eine Übung und Darstellung durch rudimentäres Skizzieren
Ist das schlampig? Vielleicht. Haben wir viele andere Möglichkeiten? Es hängt davon ab, wie viel moderne Browsertechnologie wir verwenden möchten. Das ist aber nicht der Sinn dieses Beitrags.
Der Punkt ist, dass ich mich aufgrund der Funktionsweise von WordPress frage, ob unsere derzeit beste Strategie zum Beibehalten temporärer Werte, die bei Installationen am häufigsten unterstützt wird, darin besteht, vorübergehend einen Wert in die Optionstabelle einzufügen, ihn zu lesen und ihn dann zu löschen, sobald er vorhanden ist abgerufen worden?
Unsere Optionen für temporäre Optionen
Ich persönlich habe keine starke Meinung darüber, ob dies eine schlechte Sache ist oder nicht. Wenn es die Art ist, wie die Grundlage funktioniert, auf der ich an einer Lösung arbeite, dann werde ich damit gehen.
Also, zuerst, so habe ich das normalerweise in WordPress gemacht:
1 Erstellen einer temporären Option
Zuerst richte ich eine Funktion ein, die mit update_option verbunden ist. Auf diese Weise können Sie die aktualisierte Option, ihren alten und ihren neuen Wert anzeigen.
<?php
public function init() {
add_action(
'update_option',
array( $this, 'manage_temporary_option' ),
10, 3
);
}
In der Funktion kann ich nachsehen, ob eine bestimmte Option gespeichert wird. Wenn nicht, dann kann ich es einfach ignorieren; Andernfalls kann ich es mir ansehen und mit einer temporären Option arbeiten .
<?php
public function manage_temporary_option( $option_name, $old_value, $new_value) {
if ('an_irrelevant_option' !== $option_name) {
return;
}
$url = 'page-from-which-we-expect-to-come.php';
if ($url === $_SERVER['REQUEST_URI']) {
update_option(
'our_temporary_option',
$new_value
);
}
}
Aber was würde die temporäre Option bringen?
2 Eine Option für temporäre Optionen
Angenommen, Sie haben eine Option in einem Plugin, das umgeschaltet ist. Möglicherweise muss der Benutzer einige Informationen eingeben, bevor er sich durch den Rest eines Prozesses bewegt.
Typisches Beispiel: Angenommen, Sie arbeiten an einem Checkout-Erlebnis und möchten Benutzer zwingen, ein Konto zu erstellen, aber es gibt eine Option, mit der Kunden zur Kasse gehen können, ohne ein Konto zu erstellen.
Eine Implementierung, die wir verwenden könnten, ist diese:
- Sehen Sie vor dem Laden der Checkout-Seite nach, ob der Benutzer als Gast zur Kasse gehen kann.
- Wenn dies der Fall ist, speichern Sie den ursprünglichen Wert der Option in einer temporären Option.
- Ändern Sie den ursprünglichen Wert so, dass er ein Konto erstellen muss.
- Kopieren Sie nach Abschluss des Bestellvorgangs den Wert der temporären Option in die ursprüngliche Option.
- Löschen Sie die temporäre Option.
Es ist ähnlich wie die ganze Übung in C, wenn Sie einen Zeiger brauchen, um zwei Zahlen zu vertauschen (für den, der sich daran erinnert oder der es getan hat).
Unsere beste Option?
Der oben skizzierte Prozess ist nur ein Beispiel und soll nicht der endgültige Weg sein, temporäre Werte zu erhalten. Zweitens soll das Checkout-Beispiel diesen Beitrag nicht mit eCommerce in Verbindung bringen.
Stattdessen soll es einen konkreten Anwendungsfall dafür bieten, wann das Speichern temporärer Optionen nützlich ist und wie wir es möglicherweise tun möchten.
Die ursprüngliche Frage bleibt also: Sind temporäre Optionen in der Optionstabelle angesichts der Funktionsweise von WordPress, des Fehlens von Sitzungen und ohne Garantie bestimmter Browserfunktionen wie localStorage unser bester Weg?