Programmatisches Erstellen von WordPress-Benutzern
Dieser Beitrag ist der zweite Teil einer Serie, die ich durcharbeite und die über WordPress Metadata Association spricht, und der erste Teil davon beinhaltet das Durcharbeiten des Prozesses der programmgesteuerten Erstellung von WordPress-Benutzern (aber es sind fünf Jahre her!).
Ich habe schon früher darüber gesprochen, aber die Dinge ändern sich im Laufe der Zeit, wenn wir mehr Erfahrung sammeln, richtig? Und beim Durcharbeiten einer Serie wie dieser denke ich, dass es hilfreich ist, eine Reihe von Anforderungen zu haben, denen wir zumindest folgen können, um zu simulieren, wie es sein könnte, dass dies in einem echten Projekt passiert.
In diesem speziellen Beitrag werden wir uns also Folgendes ansehen:
- Empfangen von Benutzerinformationen in einem bestimmten Datenformat,
- Identifizieren, welche Informationen zum Erstellen eines Benutzers erforderlich sind,
- Erstellen des Benutzers,
- Stellen Sie sicher, dass unser Code den Codierungsstandards und der Lesbarkeit entspricht.
Es klingt nach viel, obwohl ich nicht die Absicht habe, dies zu einem langen Beitrag zu machen. Das heißt, wenn Sie lernen möchten, wie Sie dies durchdenken oder angehen können, dann legen wir los.
Erstellen von WordPress-Benutzern
Nehmen Sie an, dass jemand – vielleicht ein Kunde oder vielleicht sogar nur Sie selbst – Informationen enthält, die zum Erstellen eines Benutzers verwendet werden. Es benötigt mindestens die folgenden Informationen:
- ein Benutzername,
- ein Passwort,
- eine E-Mail Adresse.
Wenn es darum geht, einen Benutzernamen zu erstellen, tendiere ich dazu, die E-Mail-Adresse auch als Benutzernamen zu verwenden, da sie garantiert für fast jeden, der das Konto verwendet, einzigartig ist.
Für dieses Tutorial werde ich also genau das verwenden. Was das Passwort betrifft, werde ich gleich auf die Generierung von Passwörtern eingehen.
Schließlich können Sie davon ausgehen, dass die Daten, die Sie haben, in irgendeiner Form vorliegen: Vielleicht in JSON, vielleicht in einer CSV-Datei, vielleicht in einer XML-Datei. Was auch immer der Fall ist, es liegt an Ihnen, diese Informationen in PHP zu parsen, damit Sie problemlos mit den Informationen arbeiten können.
Um die Dinge für diesen Beitrag einfach zu halten, gehe ich davon aus, dass wir einen einzelnen Datensatz haben und die Informationen in einem Array verfügbar sind. Das bedeutet nicht, dass es in einem Array beginnt, aber es bedeutet, dass wir es schließlich in einem Array platzieren.
1 Die Benutzerinformationen
Angenommen, wir haben eine Person namens "Meghan", die wir dem System hinzufügen werden. Wir haben eine E-Mail-Adresse, und das war’s.
Eine Beispiel-Persona (Künstler-Rendering natürlich 🙂
Aber das ist OK. Es ist das Barebone dessen, was wir brauchen. Nehmen wir also diese Informationen :
<?php
$user_info = array(
'email' => 'meghan@emaildomain.com',
'first_name' => 'Meghan',
'last_name' => 'McFarlin',
);
Und verwandeln Sie es in etwas, mit dem wir ein Konto erstellen können.
2 Erstellen des Kontos
Als erstes müssen wir sicherstellen, dass für diese E-Mail-Adresse noch kein Benutzer existiert. Wenn ja, dann kehren wir einfach zurück. Möglicherweise möchten Sie eine Einstellungsmeldung oder eine andere Art von Informationen anzeigen, um den Endbenutzer darüber zu informieren, dass Sie dieses Konto nicht erstellen, da es bereits vorhanden ist.
Aber das würde den Rahmen dieses Beitrags sprengen.
Stattdessen kehren wir zurück :
<?php
// Read the email address - if it's - invalid or the user exists, then return.
$email = $user_info['email'];
if (! filter_var( $email, FILTER_VALIDATE_EMAIL) || username_exists( $email)) {
return;
}
Nehmen wir wiederum an, der Benutzer existiert nicht. Wenn sie das nicht tut – was sie nicht sollte (sonst gibt es keinen Grund für diesen Post 😏) – dann werden wir ein Konto für sie erstellen.
Dazu benötigen wir ihre E-Mail-Adresse und ein Passwort. Glücklicherweise ist das Generieren eines Passworts einfach:
<?php
$password = wp_generate_password( 16, false );
Jetzt können wir die E-Mail-Adresse und das Passwort nehmen und das Benutzerkonto erstellen.
<?php
// Grab the email and create a password.
$email = $user_info['email'];
$password = wp_generate_password( 12, false );
// Create the user and set her role.
$user_id = wp_create_user( $email, $password, $email );
// Set the user's role (and remove the previous role).
$user = new WP_User( $user_id );
$user->set_role( 'author' );
Beachten Sie, dass wir im obigen Code auch die Rolle festlegen. Der Weg, dies zu tun, besteht darin, zuerst eine Instanz von WP_User zu greifen und dann mit unserer $user_id dann die Rolle festzulegen .
Ich entscheide mich für die Verwendung von author, aber es gibt eine Reihe anderer, aus denen Sie auswählen können (oder was auch immer in Ihrer Datenstruktur enthalten ist).
3 Steckt da nicht mehr dahinter?
Und damit sollte Ihr Benutzer erstellt werden. Ein Teil davon hängt weitgehend davon ab, welchen Haken Sie verwendet haben, wie Sie dies in Ihren Prozess implementiert haben und wie Sie einem Administrator erlauben, Konten zu erstellen.
Dies ist ein fortgeschritteneres Thema, das ich eventuell in einem zukünftigen Beitrag behandeln möchte. Um diese Serie so direkt und schlank wie möglich zu halten, versuche ich, mich auf die erforderlichen Kernschritte zu konzentrieren.
Alles andere kann gemäß den Anforderungen des Projekts implementiert oder um alles andere herum verkleidet werden.
Das ist nur das Erstellen eines Kontos
Dies ist jedoch nur die Verarbeitung zum programmgesteuerten Erstellen von WordPress-Benutzern. Tatsächlich erstellt dies nur einen Benutzer.
Um mehrere Benutzer zu erstellen, gehen Sie davon aus, dass Sie mehrere Arrays mit Informationen haben, die Sie durchlaufen und dann die Benutzer erstellen können. Die Implementierung ist die gleiche, obwohl sie sich von jedem Konto unterscheidet.
Vor diesem Hintergrund werde ich mich morgen mit der programmgesteuerten Erstellung von Post-Inhalten befassen. Und danach werden wir darüber sprechen, wie man einen bestimmten Benutzer mit dem bestimmten Beitragsinhalt in Verbindung bringt und was wir damit tun können (und warum dies überhaupt wichtig wäre).
Serienbeiträge
- WordPress-Metadatenzuordnung: So geht’s
- Programmatisches Erstellen von WordPress-Benutzern
- WordPress-Beitragstypen: Eine Abstraktion für Entitäten
- WordPress-Metadatenzuordnung: Zugehörige Entitäten
