WordPress-Fehlerbehandlung mit WP_Error Class II

Im ersten Teil dieser Serie zur Behandlung von Fehlern in WordPress mit der WP_Error In der Klasse haben wir uns eine Einführung in die PHP-Klasse angesehen. Wir haben die Eigenschaften und Methoden der Klasse sowie ihre Rollen und Funktionen untersucht, die durch Codebeispiele ergänzt wurden.

In diesem letzten Teil der Serie werden wir ein recht einfaches Kontaktformular-Plugin erstellen, um zu zeigen, wie Fehler in der Plugin-Entwicklung behandelt werden. Das Kontaktformular-Plugin hat einen Kurzcodeund Template-Tag-Unterstützung, so dass sie in Posts und Seiten mit der ersten und in einem Design mit der letzteren implementiert werden kann. 

Entwicklung eines Kontaktformular-Plugins

Das Kontaktformular besteht aus fünf Formularfeldern - vier Eingang Elemente und a Textbereich Element.

Ich bin mir sicher, dass Sie mit allen Kontaktformularfeldern vertraut sind. Wenn Sie eine E-Mail über das Kontaktformular senden, wird die Telefonnummer an die Nachricht angehängt. Dies ist offensichtlich in der send_mail Funktion.

Beginnen wir mit der Codierung des Plugins. Zuerst den Plugin-Header:

Das Plugin wird, wie unten beschrieben, aus fünf PHP-Funktionen bestehen.

  1. contact_html_form () enthält den HTML-Formularcode des Plugins.
  2. validate_form () behandelt den Plugin-Fehler. Wir werden Fehlerbehandlung mit sehen WP_Error in Aktion in dieser Funktion.
  3. send_mail ()übernimmt das Versenden von E-Mails.
  4. contact_form_function ()bringt die oben genannten Funktionen zusammen und verarbeitet sie
  5. contact_form_shortcode ()ist die Shortcode-Rückruffunktion.

Der HTML-Formularcode des Plugins contact_html_form () Funktion ist wie folgt.

Funktion contact_html_form () globaler $ name, $ email, $ phone_number, $ subject, $ message; Echo '
';

Als nächstes ist die Fehlerbehandlungsfunktion validate_form ().

Nachfolgend sind die Einschränkungen aufgeführt, die vom Plugin implementiert werden müssen Fehlerbehandlung Funktion.

Beachten Sie, dass:

  • Kein Feld sollte leer bleiben
  • Das Namensfeld muss ein alphabetisches Zeichen enthalten
  • Die E-Mail sollte gültig sein
  • Die Telefonnummer sollte numerisch sein

Das validate_form () Die Funktion akzeptiert die Formularfelder als Argument, sodass die Formulardaten auf Fehler überprüft werden können. Nachfolgend finden Sie den Code für die Fehlerbehandlungsfunktion, mit der die obige Plugin-Einschränkung vollständig kommentiert wird, sodass Sie den Code leicht nachverfolgen können

function validate_form ($ name, $ email, $ phone_number, $ subject, $ message) // Das WP_Error-Objekt muss global sein global $ form_error; // Instanziieren der Klasse $ form_error = new WP_Error; // Wenn ein Feld leer bleibt, fügen Sie die Fehlermeldung dem Fehlerobjekt hinzu, wenn (leer ($ name) || leer ($ email) || leer ($ phone_number) || leer ($ subject) || leer ($ message)) $ form_error-> add ('field', 'Kein Feld sollte leer bleiben');  // Wenn das Namensfeld nicht alphabetisch ist, fügen Sie die Fehlermeldung if hinzu (! ctype_alpha ($ name)) $ form_error-> add ('invalid_name', 'Ungültiger Name eingegeben');  // Prüfen Sie, ob die E-Mail gültig ist, wenn (! Is_email ($ email)) $ form_error-> add ('invalid_email', 'E-Mail ist nicht gültig');  // Wenn die Telefonnummer nicht numerisch ist, wird ein Fehler ausgegeben, wenn (! is_numeric ($ phone_number)) $ form_error-> add ('phone_number', 'Telefonnummer ist keine Nummer');  // Wenn $ form_error WordPress Error ist, durchlaufen Sie das Fehlerobjekt // und wiederholen Sie den Fehler if (is_wp_error ($ form_error)) foreach ($ form_error-> get_error_messages () als $ error) echo '
'; Echo 'ERROR: '; Echo $ Fehler. '
'; Echo '
';

Das send_mail Funktion übernimmt das Senden von E-Mails.

Funktion send_mail ($ name, $ email, $ phone_number, $ subject, $ message) global $ form_error; // Stellen Sie sicher, dass das WP_Error-Objekt ($ form_error) keinen Fehler enthält, wenn (1> count ($ form_error-> get_error_messages ())) // die Benutzerformulareingabe sanitize $ name = sanitize_text_field ($ name); $ email = sanitize_email ($ email); $ phone_number = esc_attr ($ phone_number); $ subject = sanitize_text_field ($ subject); $ message = esc_textarea ($ message); // Setze das Variable Argument, das von der wp_mail $ message verwendet wird. = '\ n Telefonnummer:'. $ phone_number; $ to = '[email protected]'; $ headers = "Von: $ name <$email>"." \ r \ n "; // Wenn die E-Mail zum Senden ausgeführt wurde, zeigen Sie eine Erfolgsmeldung an, wenn (wp_mail ($ to, $ subject, $ message, $ headers)) echo" Danke, dass Sie sich mit mir in Verbindung gesetzt haben. "; 

Lassen Sie uns einen Blick darauf werfen, was in der send_mail Funktion.

Zuerst die $ form_error Das Objekt ist global gemacht, sodass außerhalb des Funktionsumfangs darauf zugegriffen werden kann. Es wird geprüft, ob der $ form_error Objekt enthält keine Fehlermeldung. Bei true wird die Eingabe des Kontaktformulars bereinigt.

Das $ bis Variable speichert die E-Mail-Adresse, an die die über das Kontaktformular gesendete Nachricht gesendet wird. In einem Standard-Kontaktformular-Plugin sollte die Variable die WordPress-Administrator-E-Mail enthalten, die aus der Datenbank oder den Plugin-Einstellungen abgerufen wird.
Notieren Sie sich, wie die Telefonnummer mit der Nachricht verbunden wird.
Endlich, das wp_mail Funktion sendet die Mail. 

Das contact_form_function () function verarbeitet die Funktion und dient auch als Plugin-Template-Tag.

function contact_form_function () globaler $ name, $ email, $ phone_number, $ subject, $ message; if (isset ($ _ POST ['send_message'])) // Liefert die Formulardaten $ name = $ _POST ['sender_name']; $ email = $ _POST ['sender_email']; $ phone_number = $ _POST ['sender_phonennummer']; $ subject = $ _POST ['email_subject']; $ message = $ _POST ['email_message']; // validiere die Eingabe des Benutzerformulars validate_form ($ name, $ email, $ phone_number, $ subject, $ message); // senden Sie die Mail send_mail ($ name, $ email, $ phone_number, $ subject, $ message);  // das Kontaktformular anzeigen contact_html_form (); 

Denken Sie daran, dass das Kontaktformular-Plugin Shortcode-Unterstützung erhalten wird. Unten ist die Kurzcode-Rückruffunktion zusammen mit der add_shortcode Funktion, die den Kurzcode registriert.

// Einen neuen Shortcode registrieren: [cf_contact_form] add_shortcode ('cf_contact_form', 'contact_form_shortcode'); // Shortcode-Callback-Funktion function contact_form_shortcode () ob_start (); contact_form_function (); return ob_get_clean (); 

Das Plugin verwenden

Verwenden Sie den Kurzcode [cf_contact_form] um das Kontaktformular in einen Beitrag oder eine Seite aufzunehmen.
Um das Kontaktformular in Ihr Design aufzunehmen, verwenden Sie das Vorlagen-Tag .

Zusammenfassung

In diesem Artikel haben wir uns die Verwendung angeschaut der WP_Error Klasse, um Fehler in Plugins zu behandeln. Ich habe uns auch einen praktischen Anwendungsfall gezeigt, wie Fehler in Plugins mit der Klasse behandelt werden können. Sie finden die Plugin-Datei, die diesem Artikel beigefügt ist.

Glückliche Kodierung!