Î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 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.
contact_html_form ()
va conține codul HTML format al pluginului.validate_form ()
gestionează eroarea pluginului. vom vedea utilizarea de eroare folosindWP_Error
în acțiune în această funcție.send_mail ()
gestionează trimiterea de e-mailuri.contact_form_function ()
reunește și prelucrează funcțiile de mai suscontact_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ă:
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 ();
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 .
Î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ă!