Erstellen Sie Ihre eigenen WordPress-Benutzerkontaktfelder

Heute habe ich ein neues Plugin für dich erstellt. Ein Plugin, das sich mit den Kontaktmethoden der Benutzer befasst. Grundsätzlich gibt es beim Bearbeiten eines Benutzers in der Verwaltung einen Block “Kontaktinformationen”. Nun, ich möchte Ihnen zeigen, wie Sie dort Ihre eigenen Felder hinzufügen und ein bisschen weiter gehen, wie Sie diese neuen Felder auf der Registrierungsseite anzeigen (oder nicht).


Hier ist eine Vorschau dessen, was wir erstellen werden:

Bearbeiten Sie benutzerdefinierte Felder

Neue Benutzerfelder auf der Bearbeitungsseite

Benutzerdefinierte Felder

Benutzerdefinierte Felder auf der Registrierungsseite

Und dazu erstellen wir wie gewohnt ein schönes und einfaches Plugin!

Schritt 1: Erstellen Sie das Plugin

Erstellen Sie einen neuen Ordner in wp-content / plugins und nennen Sie ihn “custom-user-contact-Methods”. Erstellen Sie in diesem neu erstellten Ordner eine Datei mit dem Namen “rc-custom-user-contact-methods.php” und öffnen Sie sie in Ihrer bevorzugten Editor-Software.

Platzieren Sie diesen Inhalt in Ihrer leeren Datei. Dieser Code registriert einfach das Plugin:

Schritt 2: Definieren Sie Ihre benutzerdefinierten Felder

Als Nächstes müssen wir eine Variable erstellen, die unsere benutzerdefinierten Felder enthält, die auf der User Edition-Seite und auch auf der Registrierungsstandardseite verwendet werden sollen. Speichern wir diese Felder in einer Variablen namens $ extra_fields.

$ extra_fields = array (
Array ('Facebook', __ ('Facebook-Benutzername', 'rc_cucm'), true),
Array ('twitter', __ ('Twitter-Benutzername', 'rc_cucm'), true),
Array ('googleplus', __ ('Google+ ID', 'rc_cucm'), true),
Array ('linkedin', __ ('Linked In ID', 'rc_cucm'), false),
Array ('pinterest', __ ('Pinterest-Benutzername', 'rc_cucm'), false),
Array ('wordpress', __ ('WordPress.org Benutzername', 'rc_cucm'), false),
Array ('phone', __ ('Telefonnummer', 'rc_cucm'), true)
);

Wir speichern jedes Feld in einem Array mit 3 Parametern, der erste ist die Feld-ID, der zweite ist die Feldbezeichnung und der letzte ist eine boolesche Information, die definiert, ob das Feld auf der Registrierungsseite angezeigt wird oder nicht . Sie können beliebig viele Parameter hinzufügen, z. B. einen Platzhalter oder erforderliche Informationen.

Schritt 3: Haken Sie den richtigen Filter ein

Wir müssen jetzt eine Funktion an den richtigen Filter anschließen. In unserem speziellen Fall lautet der Filter "user_contactmethods" und der Name der Funktion, die wir erstellen möchten, lautet "rc_add_user_contactmethods"..

// Verwenden Sie die user_contactmethods, um neue Felder hinzuzufügen
add_filter ('user_contactmethods', 'rc_add_user_contactmethods');

Schritt 4: Erstellen Sie unsere benutzerdefinierten Felder

Wir müssen jetzt die Funktion "rc_add_user_contactmethods" erstellen. Es ist dasjenige, das unsere benutzerdefinierten Felder zur Benutzerbearbeitungsseite hinzufügt. Die gute Nachricht ist, dass wir unsere Felder in einem Array gespeichert haben. Dies bedeutet, dass die folgende Funktion vollständig dynamisch ist und es ziemlich einfach ist, neue Felder hinzuzufügen, indem Sie einfach die Variable $ extra_fields ändern.

/ **
* Fügen Sie benutzerdefinierte Benutzer benutzerdefinierte Kontaktmethoden hinzu
* *
* @access public
* @since 1.0
* @return void
* /
Funktion rc_add_user_contactmethods ($ user_contactmethods) {

// Felder abrufen
globale $ extra_fields;

// Alle Felder anzeigen
foreach ($ extra_fields als $ field) {
if (! isset ($ contactmethods [$ field [0]]))
$ user_contactmethods [$ field [0]] = $ field [1];
}}

// Gibt die Kontaktmethoden zurück
return $ user_contactmethods;
}}

Wenn Sie in diesem Schritt das Plugin speichern und aktivieren, sollten Ihre benutzerdefinierten Felder auf der Benutzerbearbeitungsseite angezeigt werden. Da wir den richtigen Hook verwenden, müssen wir keine Felddaten zum Speichern erstellen. Das Plugin funktioniert also momentan hervorragend. Ich möchte jedoch noch einen Schritt weiter gehen und die Option hinzufügen, diese Felder auf der Registrierungsseite anzuzeigen. Aktivieren Sie das Kontrollkästchen "Jeder kann sich registrieren" unter "Einstellungen". Andernfalls wird der Link "Registrieren" nicht angezeigt.

Schritt 5: Hooks der Registrierungsseite

Um unsere Felder auf der Registrierungsseite hinzuzufügen, müssen wir auf mindestens zwei Hooks zugreifen und zwei Funktionen erstellen. Eine zum Anzeigen der Felder und die zweite zum Speichern der Felddaten in der Datenbank.

Lassen Sie uns unsere Funktionen einbinden:

// Fügen Sie unsere Felder zum Registrierungsprozess hinzu
add_action ('register_form', 'rc_register_form_display_extra_fields');
add_action ('user_register', 'rc_user_register_save_extra_fields', 100);

Schritt 6: Registrierungsseite für benutzerdefinierte Felder anzeigen

Im obigen Code haben wir zwei Funktionen deklariert. Die erste besteht darin, die Felder auf der Registrierungsseite anzuzeigen. In diesem Teil müssen wir uns um den dritten Parameter jedes Arrays in $ extra_fields kümmern. Dieser boolesche Parameter gibt an, ob die Felder angezeigt werden müssen oder nicht. Richtig: Das Feld wird angezeigt. Falsch: Das Feld wird nicht angezeigt.

/ **
* Benutzerdefinierte Felder auf der Registrierungsseite anzeigen
* *
* Benutzerdefinierte Felder bei der Registrierung anzeigen, wenn der dritte Parameter des Felds auf true gesetzt ist
* *
* @access public
* @since 1.0
* @return void
* /
Funktion rc_register_form_display_extra_fields () {

// Felder abrufen
globale $ extra_fields;

// Jedes Feld anzeigen, wenn der 3. Parameter auf "true" gesetzt ist
foreach ($ extra_fields als $ field) {
if ($ field [2] == true) {
$ field_value = isset ($ _POST [$ field [0]])? $ _POST [$ field [0]]: '';
Echo '

'; } // endif } // foreach beenden }}

Schritt 7: Speichern von Feldwerten bei der Registrierung

Nachdem unsere Felder auf der Registrierungsseite angezeigt werden, müssen wir ihre Werte in der Datenbank speichern. Dies ist der Aime der Funktion "rc_user_register_save_extra_fields". Dazu müssen wir das “wp_update_user ()”Funktion.

/ **
* Feldwerte speichern
* *
* @access public
* @since 1.0
* @return void
* /
Funktion rc_user_register_save_extra_fields ($ user_id, $ password = '', $ meta = array ()) {

// Felder abrufen
globale $ extra_fields;

$ userdata = array ();
$ userdata ['ID'] = $ user_id;

// Speichern Sie jedes Feld
foreach ($ extra_fields als $ field) {
if ($ field [2] == true) {
$ userdata [$ field [0]] = $ _POST [$ field [0]];
} // endif
} // foreach beenden

$ new_user_id = wp_update_user ($ userdata);
}}

Fazit

Wir haben die Grundlagen zum Hinzufügen neuer Felder zu den Benutzerkontaktmethoden kennengelernt, aber das ist alles. Sie können beispielsweise vorhandene Felder wie "Yahoo IM", "AIM" und "Jabber" entfernen, indem Sie einfach unset () ausführen. Sie können aber auch einige Funktionen hinzufügen, um Ihre benutzerdefinierten Felder zu bereinigen, um beispielsweise zu überprüfen, ob die Telefonnummer ein geeignetes Format hat, ob ein Feld erforderlich ist oder nicht usw. usw. Zögern Sie nicht, in den Kommentaren nach bestimmten Funktionen zu fragen!

Oh, und noch eine letzte Sache ... Wenn Sie die Daten eines Ihrer Felder anzeigen möchten, verwenden Sie einfach Folgendes:

// Parameter 1 ist die Benutzer-ID
// Param 2 ist die Feld-ID
// Param 3 ist da, um eine Variable oder ein Array zu erhalten
echo get_user_meta (1, 'twitter', true);  
Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me

    Like this post? Please share to your friends:
    Adblock
    detector
    map