WordPress Eroare de manipulare cu WP_Error clasa II

În prima parte a acestei serii privind erorile de manipulare în WordPress cu WP_Error , am analizat o introducere a clasei PHP, am examinat proprietățile și metodele de clasă, precum și rolurile și funcțiile acestora, completate de exemple de cod.

În această parte finală a seriei, vom construi un modul de contact destul de simplu pentru a demonstra cum să se ocupe de erori în dezvoltarea pluginurilor. Pluginul pentru forma de contact va avea cod scurtși suportul etichetelor pentru șabloane, astfel încât acestea să poată fi implementate în postări și pagini utilizând prima pagină și într-o temă utilizând aceasta. 

Formularul de completare a formularului de contact

Formularul de contact va consta din cinci câmpuri de formular - patru intrare elemente și a textarea element.

Sunt sigur că sunteți familiarizat cu toate câmpurile formularului de contact. Rețineți că atunci când un e-mail este trimis prin formularul de contact, numărul de telefon este atașat la mesaj. Acest lucru este evident în send_mail funcţie.

Să începem să codificăm pluginul. Mai întâi pluginul antetului:

Pluginul va consta din cinci funcții PHP așa cum sunt prezentate mai jos.

  1. contact_html_form () va conține codul HTML format al pluginului.
  2. validate_form () gestionează eroarea pluginului. vom vedea utilizarea de eroare folosind WP_Error în acțiune în această funcție.
  3. send_mail ()gestionează trimiterea de e-mailuri.
  4. contact_form_function ()reunește și prelucrează funcțiile de mai sus
  5. contact_form_shortcode ()este funcția de apel invers scurtcod.

Codul formularului HTML al pluginului conținut în contact_html_form () funcția este după cum urmează.

funcția contact_html_form () global $ name, $ email, $ numărul_fonului, $ subiect, $ message; echo "
„;

Următoarea este funcția de gestionare a erorilor validate_form ().

Următoarele sunt constrângerile care trebuie implementate de pluginul care va fi implementat de către eroare de manipulare funcţie.

Rețineți că:

  • nici un câmp nu trebuie lăsat gol
  • câmpul de nume trebuie să conțină un caracter alfabetic
  • e-mailul ar trebui să fie valabil
  • numărul de telefon trebuie să fie numeric

validate_form () funcția va accepta câmpurile de formular ca argument, astfel încât să poată valida datele formularului pentru erori. Mai jos este codul pentru funcția de gestionare a erorilor, care impune constrângerea pluginului de mai sus, comentată complet, astfel încât să puteți urmări cu ușurință codul

funcția validate_form ($ name, $ email, $ phone_number, $ subject, $ message) // Face obiectul WP_Error global global $ form_error; // instanțiați clasa $ form_error = new WP_Error; // Dacă orice câmp este lăsat gol, adăugați mesajul de eroare obiectului de eroare dacă (gol ($ name) || empty ($ email) || empty ($ phone_number) || empty ($ subject) || empty ($ mesaj)) $ form_error-> add ('field', 'Nici un câmp nu trebuie lăsat gol');  // dacă câmpul de nume nu este alfabetic, adăugați mesajul de eroare dacă (! ctype_alpha ($ name)) $ form_error-> add ('invalid_name', 'Invalid name entered');  // Verificați dacă e-mailul este valid dacă (! Is_email ($ email)) $ form_error-> add ('invalid_email', 'E-mailul nu este valabil');  // dacă numărul de telefon nu este numeric, aruncați o eroare dacă (! is_numeric ($ phone_number)) $ form_error-> add ('numărul_fonului', 'Numărul de telefon nu este numere');  // dacă $ form_error este eroare de tip WordPress, loop prin obiectul de eroare // și echo eroarea dacă (is_wp_error ($ form_error)) foreach ($ form_error-> get_error_messages () ca eroare $) echo '
„; echo "EROARE: '; echo $ error. '
„; echo "
„;

send_mail funcția gestionează trimiterea e-mailului.

funcția send_mail ($ nume, $ email, $ numărul_fonului, $ subiect, $ mesaj) global $ form_error; // Asigurați-vă că obiectul WP_Error ($ form_error) nu conține nici o eroare dacă (1> count ($ form_error-> get_error_messages ())) // dezinstalează formularul de utilizator $ name = sanitize_text_field ($ name); $ e-mail = sanitize_email ($ email); $ phone_number = esc_attr (număr de telefon); $ subject = sanitize_text_field (subiectul $); $ message = esc_textarea ($ mesaj); // setați utilizarea argumentului variabil prin mesajul wp_mail $. = '\ n Număr de telefon:'. PHONE_NUMBER $; $ la = '[email protected]'; $ headers = "De la: $ nume <$email>Dacă e-mailul a fost procesat pentru trimitere, afișați un mesaj de succes dacă (wp_mail ($ to, $ subject, $ message, $ headers)) echo "Vă mulțumim că ați contactat-mă"; 

Să aruncăm o privire la ce se întâmplă în send_mail funcţie.

În primul rând, $ form_error obiect este făcut global, astfel încât acesta poate fi accesat în afara scopului funcției. Se face o verificare pentru a se asigura $ form_error obiect nu conține nici un mesaj de eroare. Dacă este adevărat, introducerea formularului de contact este dezinfectată.

$ la variabila stochează adresa de e-mail la care va fi trimis mesajul trimis prin formularul de contact. Pe un plugin standard de contact, variabila ar trebui să conțină recuperarea de e-mail a administratorului WordPress din baza de date sau din setările pluginului.
Luați notă de modul în care numărul de telefon este concatenat cu mesajul.
În cele din urmă, wp_mail funcția trimite poșta. 

contact_form_function () funcția procesează funcția și, de asemenea, servește ca etichetă de șablon plugin.

funcția contact_form_function () nume global $, $ email, $ număr_fonu, $ subiect, $ mesaj; dacă (isset ($ _ POST ['send_message']))) // Obțineți datele formularului $ name = $ _POST ['sender_name']; $ e-mail = $ _POST ['sender_email']; $ phone_number = $ _POST ['sender_phonenumber']; $ subiectul = $ _POST ['email_subject']; $ message = $ _POST ['email_message']; // validarea formularului de intrare validate_form ($ name, $ email, $ phone_number, $ subject, $ message); // trimiteți mailul send_mail ($ name, $ email, $ phone_number, $ subject, $ message);  // afișați formularul de contact contact_html_form (); 

Amintiți-vă că plugin-ul pentru forma de contact va avea suport pentru coduri scurte. Mai jos este funcția de apel call-back scurt împreună cu add_shortcode care înregistrează codul scurt.

// Înregistrați un nou scurtcod: [cf_contact_form] add_shortcode ('cf_contact_form', 'contact_form_shortcode'); // funcția funcției de apel invers scurtcode contact_form_shortcode () ob_start (); contact_form_function (); returna ob_get_clean (); 

Utilizând pluginul

Utilizați codul scurt [Cf_contact_form] pentru a include formularul de contact într-un post sau o pagină.
Pentru a include formularul de contact în temă, utilizați eticheta șablonului .

rezumat

În acest articol, am aruncat o privire asupra modului de utilizare WP_Error clasa de a gestiona erorile în plugin-uri. Am arătat, de asemenea, un exemplu de utilizare practică a modului de a gestiona erorile în plugin-ul folosind clasa. Puteți găsi fișierul plugin atașat la acest articol.

Codificare fericită!

Cod