Thomas Maier | Magento & WordPress Develover post@webzunft.de | +49 162 9313 708

Antworten auf die Fragen – nicht nur meiner Kunden 

RSS
Home WordPress WordPress für Entwickler WordPress-User ohne E-Mail-Adresse hinzufügen und aktualisieren

WordPress-User ohne E-Mail-Adresse hinzufügen und aktualisieren

Für ein Kundenprojekt bin ich auf eine zunächst ziemlich ungewöhnliche Anforderung gestoßen. Fur Benutzer sollten auch ohne E-Mail-Adresse einen Account angelegt werden können. Auch wenn die E-Mail-Adresse zu den Pflichtfeldern von Kundenaccounts in WordPress gehört, so zeigt ein tiefer Blick in WordPress, dass es gar nicht so kompliziert ist das zu umgehen.

1. WordPress-Funktionen

Der erste Weg führt über zwei grundlegende WordPress-Funktionen. Da in diesem konkreten Fall die neuen Nutzer per eigenem Import-Skript angelegt werden, konnte ich auf WordPress-eigene Funktionen zurückgreifen. Obwohl die E-Mail-Adresse als Pflichtfeld im Frontend und Backend definiert ist, laufen diese Funktionen direkt aufgerufen problemlos durch:

wp_create_user()

Zum anlegen neuer Nutzer und…

wp_update_user()

Und zum Update bestehender Nutzer.

2. Update im Backend

Wer WordPress-User über das Backend anlegen und bearbeiten möchte, erhält bei einem leeren E-Mail-Feld eine Fehlermeldung, dass die E-Mail-Adresse fehlt. Diese Nachricht wird durch ein Error-Objekt verwaltet. Wer das Update eines Nutzers über das Formular aber dennoch durchbringen will, der muss „nur“ die entsprechende Fehlermeldung aus dem Objekt löschen. Zu diesem Zweck stellt WordPress auch einen Filter bereit. Den folgenden Code kann man in einem Plugin verwenden. Hier habe ich ihn für ein als Klasse geschriebenes Plugin aufbereitet.

 
 Share on Facebook Share on Twitter Share on Reddit Share on LinkedIn
4 Comments  comments 

4 Antworten

  1. Jinpa

    Hallo,
    wie kann ich diese Funktionen ohne Plugin einbauen?

    • Thomas

      In der functions.php – Datei des Themes.

      • Jinpa

        Kann ich den Code so wie er ist dann einfach ans Ende der functions.php einfügen?

        • Thomas

          Nicht direkt. Der Code ist für eine Klasse geschrieben. Das hier könnte in der functions.php funktionieren:


          add_action( 'user_profile_update_errors', 'remove_empty_email_error');
          function remove_empty_email_error( $arg ) {
          if ( !empty( $arg->errors['empty_email'] ) ) unset( $arg->errors['empty_email'] );
          }

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.