Gestione errori di WordPress con WP_Error Classe II

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. 

Sviluppo di plugin per moduli di contatto

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.

  1. contact_html_form () conterrà il codice del modulo HTML del plugin.
  2. validate_form () gestisce l'errore del plugin. vedremo la gestione degli errori usando WP_Error in azione in questa funzione.
  3. inviare una mail()gestisce l'invio di email.
  4. contact_form_function ()riunisce ed elabora le funzioni di cui sopra
  5. contact_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:

  • nessun campo deve essere lasciato vuoto
  • il campo del nome deve contenere un carattere alfabetico
  • l'email dovrebbe essere valida
  • il numero di telefono dovrebbe essere numerico

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 (); 

Utilizzando il plugin

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 .

Sommario

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!