Nella prima parte di questa serie sulla gestione degli errori in WordPress con WP_Error
classe, abbiamo dato un'occhiata a un'introduzione della classe PHP, abbiamo esaminato le proprietà e i metodi della classe e i loro ruoli e funzioni integrati da esempi di codice.
In questa parte finale della serie, costruiremo un plugin per moduli di contatto abbastanza semplice per dimostrare come gestire gli errori nello sviluppo di plugin. Il plug-in del modulo di contatto avrà uno shortcodee il supporto per i tag di modello in modo che possa essere implementato nei post e nelle pagine utilizzando il precedente e in un tema che utilizza quest'ultimo.
Il modulo di contatto sarà composto da cinque campi modulo: quattro ingresso
elementi e a textarea
elemento.
Sono sicuro che tu abbia familiarità con tutto il campo del modulo di contatto. Tieni presente che quando un'email viene inviata tramite il modulo di contatto, il numero di telefono viene aggiunto al messaggio. Questo è evidente nel inviare una mail
funzione.
Iniziamo a codificare il plug-in. Prima l'intestazione del plugin:
';Il plugin sarà composto da cinque funzioni PHP come descritto di seguito.
contact_html_form ()
conterrà il codice del modulo HTML del plugin.validate_form ()
gestisce l'errore del plugin. vedremo la gestione degli errori usandoWP_Error
in azione in questa funzione.inviare una mail()
gestisce l'invio di email.contact_form_function ()
riunisce ed elabora le funzioni di cui sopracontact_form_shortcode ()
è la funzione di callback shortcode.Il codice del modulo HTML del plug-in contenuto in
contact_html_form ()
la funzione è la seguente.function contact_html_form () global $ name, $ email, $ phone_number, $ subject, $ message; eco '
La prossima è la funzione di gestione degli errori validate_form ()
.
I seguenti sono i vincoli che devono essere implementati dal plugin che verranno applicati da gestione degli errori funzione.
Nota che:
Il validate_form ()
la funzione accetterà i campi del modulo come argomento in modo che possa convalidare i dati del modulo per gli errori. Di seguito è riportato il codice per la funzione di gestione degli errori che applica il suddetto limite del plug-in completamente commentato in modo da tracciare facilmente il codice
function validate_form ($ name, $ email, $ phone_number, $ subject, $ message) // Crea l'oggetto WP_Error global global $ form_error; // istanzia la classe $ form_error = new WP_Error; // Se un campo è vuoto, aggiungi il messaggio di errore all'oggetto error if (vuoto ($ nome) || vuoto ($ email) || vuoto ($ numero_telefono) || vuoto ($ oggetto) || vuoto ($ messaggio)) $ form_error-> add ('campo', 'Nessun campo deve essere lasciato vuoto'); // se il campo del nome non è alfabetico, aggiungere il messaggio di errore se (! ctype_alpha ($ name)) $ $ form_error-> add ('invalid_name', 'Nome non valido immesso'); // Controlla se l'email è valida se (! Is_email ($ email)) $ form_error-> add ('invalid_email', 'Email non è valida'); // se il numero di telefono non è numerico, genera un errore se (! is_numeric ($ numero di telefono)) $ form_error-> add ('numero di telefono', 'Numero di telefono non è un numero'); // se $ form_error è WordPress Error, passa attraverso l'oggetto error // ed echo l'errore if (is_wp_error ($ form_error)) foreach ($ form_error-> get_error_messages () come $ error) echo ''; eco 'ERRORE: '; echo $ errore. '';
'; eco '
Il inviare una mail
la funzione gestisce l'invio di e-mail.
funzione send_mail ($ name, $ email, $ phone_number, $ subject, $ message) global $ form_error; // Accertati che l'oggetto WP_Error ($ form_error) non contenga errori se (1> conta ($ form_error-> get_error_messages ())) // sanitizza l'input del form utente $ name = sanitize_text_field ($ name); $ email = sanitize_email ($ email); $ phone_number = esc_attr ($ phone_number); $ subject = sanitize_text_field ($ subject); $ message = esc_textarea ($ message); // imposta l'argomento variabile usato dal messaggio $ wp_mail. = '\ n Numero di telefono:'. $ PHONE_NUMBER; $ a = '[email protected]'; $ intestazioni = "Da: $ nome <$email>"." \ r \ n "; // Se l'email è stata elaborata per l'invio, visualizza un messaggio di successo se (wp_mail ($ a, $ subject, $ message, $ headers)) echo" Grazie per avermi contattato. ";
Diamo un'occhiata a cosa sta succedendo nel inviare una mail
funzione.
Prima il $ form_error
l'oggetto è reso globale, quindi è possibile accedervi al di fuori dell'ambito della funzione. Viene effettuato un controllo per garantire il $ form_error
l'oggetto non contiene messaggi di errore. Se vero, l'input del modulo di contatto viene disinfettato.
Il $ a
variabile memorizza l'indirizzo e-mail al quale verrà inviato il messaggio inviato tramite il modulo di contatto. Su un plug-in di modulo di contatto standard, la variabile deve contenere l'e-mail di amministratore di WordPress recuperata dal database o dalle impostazioni del plug-in.
Prendi nota di come il numero di telefono viene concatenato al messaggio.
Finalmente, il wp_mail
la funzione invia la posta.
Il contact_form_function ()
la funzione elabora la funzione e funge anche da tag del modello di plugin.
function contact_form_function () global $ name, $ email, $ phone_number, $ subject, $ message; if (isset ($ _ POST ['send_message'])) // Ottieni i dati del modulo $ name = $ _POST ['sender_name']; $ email = $ _POST ['sender_email']; $ phone_number = $ _POST ['sender_phonenumber']; $ subject = $ _POST ['email_subject']; $ message = $ _POST ['email_message']; // convalidare il modulo utente input validate_form ($ name, $ email, $ phone_number, $ subject, $ message); // invia la posta send_mail ($ name, $ email, $ phone_number, $ subject, $ message); // mostra il modulo di contatto contact_html_form ();
Ricorda che il plug-in del modulo di contatto avrà il supporto di shortcode. Di seguito è riportata la funzione di richiamo dello shortcode insieme a add_shortcode
funzione che registra lo shortcode.
// Registra un nuovo shortcode: [cf_contact_form] add_shortcode ('cf_contact_form', 'contact_form_shortcode'); // Funzione funzione callback shortcode contact_form_shortcode () ob_start (); contact_form_function (); return ob_get_clean ();
Utilizza lo shortcode [Cf_contact_form]
per includere il modulo di contatto in un post o una pagina.
Per includere il modulo di contatto nel tema, usa il tag del modello .
In questo articolo, abbiamo dato un'occhiata a come usare l'errore WP_Error
classe per gestire gli errori nei plugin. Ho anche mostrato un pratico caso d'uso su come gestire gli errori nel plugin usando la classe. Puoi trovare il file plugin allegato a questo articolo.
Felice codifica!