I den första delen av denna serie om hantering av fel i WordPress med WP_Error
klass, vi tittade på en introduktion av PHP-klassen, vi undersökte klassegenskaperna och metoderna och deras roller och funktioner kompletterade med kodexempel.
I den här sista delen av serien kommer vi att bygga ett ganska enkelt kontaktformulär plugin för att visa hur man hanterar fel i pluginutveckling. Kontaktformulärets plugin har kortnummeroch mall taggar stöd så det kan implementeras i inlägg och sidor med hjälp av den tidigare och i ett tema med den senare.
Kontaktformuläret kommer att bestå av fem formulärfält - fyra inmatning
element och a textarea
element.
Jag är säker på att du är bekant med alla kontaktformulärfält. Observera att när ett e-postmeddelande skickas via kontaktformuläret bifogas telefonnumret till meddelandet. Detta framgår av skicka brev
fungera.
Låt oss börja koda pluginprogrammet. Först pluginrubriken:
';Plugin kommer att bestå av fem PHP-funktioner som beskrivs nedan.
contact_html_form ()
kommer att innehålla HTML-formulärkoden för plugin.validate_form ()
hanterar pluginfelet. vi kommer se felhantering medWP_Error
i funktion i denna funktion.skicka brev()
hanterar sändningen av e-post.contact_form_function ()
samlar och bearbetar ovanstående funktionercontact_form_shortcode ()
är kortnummer återuppringningsfunktionen.HTML-formulärkoden för pluginet finns i
contact_html_form ()
funktionen är enligt följande.funktion contact_html_form () globalt $ namn, $ email, $ phone_number, $ subject, $ message; eko "
Nästa är felhanteringsfunktionen validate_form ()
.
Följande är den begränsning som ska genomföras av plugin som kommer att verkställas av felhantering fungera.
Anteckna det:
De validate_form ()
funktionen accepterar formulärfälten som argument, så det kan validera formulärdata för fel. Nedan finns koden för den felhanteringsfunktion som verkställer ovanstående plugin-begränsning fullt kommenterad så att du enkelt kan spåra sin kod
funktion validate_form ($ namn, $ email, $ phone_number, $ subject, $ message) // Gör WP_Error-objektet globalt globalt $ form_error; // instansera klassen $ form_error = new WP_Error; // Om något fält är tomt, lägg till felmeddelandet till felobjektet om (tomt ($ namn) || tomt ($ email) || tomt ($ phone_number) || empty ($ subject) || empty ($ meddelande)) $ form_error-> add ('field', 'Inga fält ska lämnas tomma'); // om namnfältet inte är alfabetiskt, lägg till felmeddelandet om (! ctype_alpha ($ name)) $ form_error-> add ('invalid_name', 'Invalid name entered'); // Kontrollera om e-postadressen är giltig om (! Is_email ($ email)) $ form_error-> add ('invalid_email', 'E-post är inte giltig'); // om telefonnumret inte är numeriskt, kasta ett fel om (! is_numeric ($ phone_number)) $ form_error-> add ('phone_number', 'Telefonnummer är inte tal'); // if $ form_error är WordPress Error, loop genom felobjektet // och echo felet om (is_wp_error ($ form_error)) foreach ($ form_error-> get_error_messages () som $ error) echo ''; eko "FEL: '; echo $ error. '';
'; eko "
De skicka brev
funktion hanterar e-postsändningen.
funktion send_mail ($ namn, $ email, $ phone_number, $ subject, $ message) global $ form_error; // Se till att WP_Error-objektet ($ form_error) innehåller inget fel om (1> count ($ form_error-> get_error_messages ())) // sanitera användarformulärinsats $ name = sanitize_text_field ($ name); $ email = sanitize_email ($ email); $ phone_number = esc_attr ($ phone_number); $ subject = sanitize_text_field ($ subject); $ message = esc_textarea ($ message); // ställa in det variabla argumentet använd av wp_mail $ message. = '\ n Telefonnummer:'. $ PHONE_NUMBER; $ till = '[email protected]'; $ headers = "Från: $ namn <$email>". \ r \ n"; // Om e-post har varit process för att skicka, visa ett succémeddelande om (wp_mail ($ till, $ subject, $ message, $ headers)) echo "Tack för att du kontaktade mig.";
Låt oss ta en titt på vad som händer i skicka brev
fungera.
Först, det $ form_error
objektet är gjort globalt så att det kan nås utanför funktionsomfånget. En kontroll görs för att säkerställa $ form_error
Objektet innehåller inget felmeddelande. Om det är sant är kontaktformatinsatsen sanerat.
De $ till
variabel lagrar e-postadressen meddelandet som skickas via kontaktformuläret kommer att skickas till. I en standard plugin för kontaktformulär ska variabeln innehålla WordPress-administratörs-e-posthämtning från databasen eller från plugin-inställningarna.
Observera hur telefonnumret blir sammanfogat till meddelandet.
Slutligen, den wp_mail
funktion skickar posten.
De contact_form_function ()
Funktionen behandlar funktionen och fungerar också som plugin template taggen.
funktion contact_form_function () globalt $ namn, $ email, $ phone_number, $ subject, $ message; om (isset ($ _ POST ['send_message'])) // Hämta formdata $ name = $ _POST ['avsändarens namn']; $ email = $ _POST ['sender_email']; $ phone_number = $ _POST ['avsändare_numret']; $ subject = $ _POST ['email_subject']; $ message = $ _POST ['email_message']; // validera användarformuläret input validate_form ($ namn, $ email, $ phone_number, $ subject, $ message); // skicka posten send_mail ($ namn, $ email, $ phone_number, $ subject, $ message); // visa kontaktformuläret kontakt_html_form ();
Kom ihåg att kontaktformulärets plugin ska ha kortkodsstöd. Nedan är kortnummeruppringningsfunktionen tillsammans med add_shortcode
funktion som registrerar kortnumret.
// Registrera en ny kortnummer: [cf_contact_form] add_shortcode ('cf_contact_form', 'contact_form_shortcode'); // Kortnummer återuppringningsfunktionsfunktion contact_form_shortcode () ob_start (); contact_form_function (); returnera ob_get_clean ();
Använd kortnumret [Cf_contact_form]
att inkludera kontaktformuläret i ett inlägg eller en sida.
Om du vill inkludera kontaktformuläret i ditt tema använder du malltaggen .
I den här artikeln tog vi en titt på hur man använder WP_Error
klass för att hantera fel i plugins. Jag visade oss också ett praktiskt användningsfall om hur man hanterar fel i plugin med klassen. Du kan hitta pluginfilen som bifogas denna artikel.
Glad kodning!