Jede Website, die wir erstellen, hat ihre eigenen Herausforderungen. Aber die Werkzeuge, die wir verwenden, können uns helfen, sie direkt anzugehen.
WordPress und sein nie endendes Plugin-Ökosystem haben Webdesignern geholfen, selbst die schwierigsten Kundenanforderungen zu meistern. Fast alles, was wir brauchen, ist einfach klicken und loslegen. Und wenn es nicht existiert, können wir es selbst bauen.
Für jede dieser Lösungen, die wir implementieren, gibt es jedoch eine versteckte Konsequenz. Eine, die nur steigt, wenn wir uns etwas eingehender mit benutzerspezifischen Daten befassen. Erst dann erkennen wir das Wirrwarr unter dieser hübschen Außenhülle.
Ein einfacher Anfang
In einer Standard-WordPress-Installation sind die Benutzerdaten (zumindest der Typ, den Sie exportieren möchten) tatsächlich ziemlich sauber und ordentlich. Die Daten werden in der Datenbanktabelle wp_usermeta gespeichert. Im Inneren finden Sie die Grundlagen wie Benutzername sowie deren Rolle / Funktionen und Kontoeinstellungen.
Kombinieren Sie dies mit den Angaben in der Tabelle wp_users (Benutzername, E-Mail-Adresse, Passwort), und Sie erhalten viele nützliche Informationen für jeden Benutzer auf Ihrer Website. Bei Bedarf können Sie auch problemlos eine CSV-Liste neuer Benutzer importieren.
Natürlich hören die meisten Websites nicht bei einer Standardeinstellung auf. Vielmehr fügen wir häufig eine beliebige Anzahl von Plugins hinzu, damit Benutzer mehr mit unserer Website tun können.
Wir möchten, dass sie beispielsweise personalisierte Profilinformationen haben, Bestellungen verfolgen und bestimmten Gruppen angehören. Darüber hinaus werden heutzutage auch Funktionen wie Foren, Support-Portale und Lernmanagementsysteme häufig verwendet.
Und das kratzt nur an der Oberfläche. Zu einer typischen WordPress-Site kann noch viel mehr hinzugefügt werden. Das ist gut, bis Sie versuchen müssen, die Daten zu diskutieren.
Daten, Daten, überall
Das fragliche Problem ist nicht so sehr die Schuld von WordPress selbst. Hier wird in vielen Fällen ein bestimmtes Datenelement den Plug-In-Entwicklern überlassen. Dies kann dazu führen, dass die Benutzerdaten, die Sie sammeln möchten, überall gespeichert werden. Es ist die Natur des Tieres.
Verwenden wir eine aktuelle Website, an der ich als Beispiel gearbeitet habe. Es wird ein Mitgliedschafts-Plugin verwendet, mit dem Personen der Organisation des Kunden beitreten können.
Gesammelte Informationen
Wenn sie sich anmelden, bitten wir sie um mehr als nur Standard-WordPress-Benutzermetadaten. Neue Mitglieder werden um Informationen gebeten wie:
- Lieferadresse;
- Telefonnummer;
- Ihre Präferenz dafür, wie sie Newsletter erhalten (E-Mail oder Post);
Daten generiert
Neben den Informationen, die wir von den Benutzern verlangen, gibt es auch eine Fülle von Daten, die vom Mitgliedschafts-Plugin generiert werden. Dazu gehören:
- Mitgliedschaftsstatus (aktiv oder inaktiv);
- Mitgliedschaftsstufe;
- Ablaufdatum der Mitgliedschaft;
An den Einstellungen ist nichts übertrieben. Es ist wahrscheinlich nicht viel anders als die Zehntausende anderer Websites, auf denen dieselbe Gruppe von Mitgliedern betrieben wird.
Die Site selbst ist zwar nicht zu kompliziert, bedeutet jedoch nicht, dass Ihre Benutzerdaten leicht zu finden sind. Mal sehen, wie eine scheinbar einfache Aufgabe zu einer zeitaufwändigen Herausforderung werden kann.
Die Herausforderung
Der Kunde hatte ein sehr grundlegendes Bedürfnis. Sie wollten einen Export von allen aktiven Mitgliedern, die es vorziehen, eine gedruckte Ausgabe des Newsletters der Organisation zu erhalten. Nach dem, was wir haben, sollte das Improvisieren nur wenige Minuten dauern. Es war weit weg.
Das war viel schwieriger als ich es mir vorgestellt hatte. Die Daten, die wir brauchten, waren dort in der Datenbank. Der Versuch, es neu zu erstellen, erwies sich jedoch als eine fast monumentale Aufgabe für jemanden, der kein Assistent für Datenbankabfragen ist.
Deshalb haben wir aber Plugins, oder? Und es gibt unzählige verschiedene Optionen, sowohl kostenlos als auch Premium. Aber egal was ich versuchte, ich konnte nicht genau das bekommen, was der Export erforderte. Deshalb:
- die personalisierte Daten, die wir von den Mitgliedern verlangen uns ist leicht zu bekommen. Es befindet sich in der Tabelle wp_usermeta, die Benutzer-Export-Plugins normalerweise finden. Daher war das Erstellen einer Liste von Benutzern, die diese gedruckte Ausgabe des Newsletters haben wollten, ziemlich einfach.
- die andere mitgliedsbezogene DatenEs wird jedoch in einer anderen Tabelle gespeichert, die nur für das Mitgliedschafts-Plugin gilt. Selbst ein ziemlich robustes Handels-Plugin, das ich verwendet habe, konnte mir hier nicht helfen.
Das Ergebnis war, dass ich herausfinden konnte, wer die Postausgabe des Newsletters angefordert hatte, aber ich konnte nicht herausfinden, ob ihre Mitgliedschaft aktiv war, was nicht sehr hilfreich war.
Sicher, diese Informationen wurden in einer benachbarten Tabelle in derselben Datenbank gespeichert, aber sie könnten für meine Zwecke auch auf Jupiter gespeichert sein. Es fühlte sich an, als würde man im Haus nach den Schlüsseln suchen, nur um herauszufinden, dass sein Nachbar sie auf der Suche nach Rettung hat.
Schließlich fand ich ein Export-Plugin, das ein Plugin für das Mitgliedschafts-Plugin enthielt, mit dem ich die benötigten Daten sammeln konnte. Wenn das nicht existiert hätte, wären Sie immer noch mit nur einer halben Lösung festgefahren.
Kann die Erfahrung verbessert werden?
All dies ließ mich fragen, wie diese Situationen überhaupt verbessert oder vermieden werden können. Es ist eine schwierige Entscheidung.
Erstens gebe ich zu, dass diese Art von Herausforderungen nicht meine Stärke sind. Jemand mit viel PHP- und MySQL-Erfahrung könnte wahrscheinlich eine benutzerdefinierte Lösung finden. Ich? Ich muss mit Plugins experimentieren und stöhnen, wenn sie nicht wie erwartet funktionieren.
Aber eine Frage, die es wert ist, gestellt zu werden, ist: Falls eine solche Erfahrung erforderlich ist, um einen vollständigen Satz von Benutzerdaten zu exportieren? Es scheint, dass es einen einfacheren Weg geben sollte, dies zum Arbeiten zu verwenden.
Die Tatsache, dass WordPress Plugins ermöglicht, ihre eigenen Datenbanktabellen zu erstellen, ist verständlich und sogar vorteilhaft. Es stellt sicher, dass wir Plugins installieren und deinstallieren können, ohne befürchten zu müssen, dass etwas kaputt geht.
Während dies alles mit bloßem Auge funktioniert, ist es alles andere als für diejenigen von uns, die versuchen, auf die zugrunde liegenden Daten zuzugreifen.
Vielleicht sollte es eine API geben, mit der wir alles abrufen können, was mit einem bestimmten Benutzer zusammenhängt, unabhängig davon, wo es in der Datenbank gespeichert ist. Aber ich werde diese Diskussion denen überlassen, die die Vor- und Nachteile einer solchen Funktion kennen.
Bis dahin werde ich die Dinge so zusammenstellen, wie es die Kunden brauchen, und auf einen viel saubereren Prozess in der Zukunft hoffen.