Gestion des erreurs WordPress avec WP_Error Class II

Dans la première partie de cette série sur la gestion des erreurs dans WordPress avec le WP_Error classe, nous avons examiné une introduction à la classe PHP, nous avons examiné les propriétés et les méthodes de la classe ainsi que leurs rôles et fonctions, complétés par des exemples de code..

Dans cette dernière partie de la série, nous allons créer un plug-in de formulaire de contact assez simple pour montrer comment gérer les erreurs de développement de plug-in. Le plugin contact-form aura shortcodeet prise en charge des balises de modèle afin qu’elle puisse être implémentée dans les publications et les pages utilisant la première et dans un thème utilisant la seconde. 

Développement de plugins de formulaire de contact

Le formulaire de contact comportera cinq champs - quatre contribution éléments et un zone de texte élément.

Je suis sûr que vous connaissez tout le champ du formulaire de contact. Notez que lorsqu'un email est envoyé via le formulaire de contact, le numéro de téléphone est ajouté au message. Ceci est évident dans le envoyer un mail une fonction.

Commençons par coder le plugin. Tout d'abord l'en-tête du plugin:

Le plugin sera composé de cinq fonctions PHP comme indiqué ci-dessous.

  1. contact_html_form () contiendra le code de formulaire HTML du plugin.
  2. validate_form () gère l'erreur du plugin. nous verrons le traitement des erreurs en utilisant WP_Error en action dans cette fonction.
  3. envoyer un mail()gère l'envoi de courrier électronique.
  4. contact_form_function ()rassemble et traite les fonctions ci-dessus
  5. contact_form_shortcode ()est la fonction de rappel du shortcode.

Le code de formulaire HTML du plugin contenu dans contact_html_form () la fonction est la suivante.

function contact_html_form () nom global $, $ email, $ numéro_phone, $ sujet, $ message; écho '
';

Suivant est la fonction de gestion des erreurs validate_form ().

Ce qui suit est la contrainte à implémenter par le plugin qui sera appliquée par le la gestion des erreurs une fonction.

Notez que:

  • aucun champ ne doit être laissé vide
  • le champ du nom doit contenir un caractère alphabétique
  • l'e-mail doit être valide
  • le numéro de téléphone doit être numérique

le validate_form () function acceptera les champs de formulaire en tant qu’argument afin de pouvoir valider les données de formulaire pour les erreurs. Vous trouverez ci-dessous le code de la fonction de gestion des erreurs qui applique la contrainte du plug-in ci-dessus entièrement commentée, de sorte que vous puissiez tracer facilement son code.

function validate_form ($ name, $ email, $ numéro_phone, $ sujet, $ message) // Rendre l'objet WP_Error global global $ formulaire_erreur; // instancie la classe $ form_error = new WP_Error; // Si un champ est vide, ajoutez le message d'erreur à l'objet d'erreur si (vide ($ nom) || vide ($ email) || vide ($ numéro_phone) || vide ($ sujet) || vide ($ message)) $ form_error-> add ('champ', 'Aucun champ ne doit être laissé vide');  // si le champ de nom n'est pas alphabétique, ajoutez le message d'erreur if (! ctype_alpha ($ name)) $ form_error-> add ('nom_invalide', 'Nom non valide entré');  // Vérifiez si l'email est valide si (! Is_email ($ email)) $ form_error-> add ('invalid_email', 'l'email n'est pas valide');  // si le numéro de téléphone n'est pas numérique, générez une erreur if (! is_numeric ($ phone_number)) $ form_error-> add ('phone_number', 'Le numéro de téléphone n'est pas un nombre');  // si $ form_error est une erreur WordPress, parcourez l'objet d'erreur // et reproduisez l'erreur if (is_wp_error ($ form_error)) foreach ($ form_error-> get_error_messages () as $ error) echo '
'; écho 'ERREUR: '; echo $ error. '
'; écho '
';

le envoyer un mail fonction gère l'envoi d'email.

function send_mail ($ name, $ email, $ numéro_phone, $ sujet, $ message) global $ formulaire_erreur; // Assurez-vous que l'objet WP_Error ($ formulaire_erreur) ne contient aucune erreur if (1> count ($ formulaire_error>> get_error_messages ())) // Entrée du formulaire de l'utilisateur saisie $ name = sanitize_text_field ($ name); $ email = sanitize_email ($ email); $ phone_number = esc_attr ($ phone_number); $ subject = sanitize_text_field ($ subject); $ message = esc_textarea ($ message); // définit l'argument variable utilisé par le message wp_mail $. = '\ n Numéro de téléphone:'. $ phone_number; $ to = '[email protected]'; $ headers = "De: $ name <$email>"." \ r \ n "; // Si un e-mail a été envoyé, affichez un message de réussite if (wp_mail ($ to, $ subject, $ message, $ headers)) echo" Merci de me contacter. "; 

Jetons un coup d'oeil à ce qui se passe dans le envoyer un mail une fonction.

Premièrement le $ form_error L'objet est rendu global afin qu'il soit accessible en dehors de la portée de la fonction. Un contrôle est effectué pour s'assurer que $ form_error objet ne contient pas de message d'erreur. Si true, la saisie du formulaire de contact est nettoyée.

le $ à variable stocke l'adresse e-mail à laquelle le message envoyé via le formulaire de contact sera envoyé. Sur un plugin de contact standard, la variable doit contenir le courrier électronique de l'administrateur WordPress récupéré à partir de la base de données ou des paramètres du plugin..
Prenez note de la concaténation du numéro de téléphone avec le message..
Finalement, le wp_mail fonction envoie le mail. 

le contact_form_function () function traite la fonction et sert également de balise de modèle de plugin.

function contact_form_function () global $ nom, $ email, $ numéro_phone, $ sujet, $ message; if (isset ($ _ POST ['send_message']))) // Récupère les données du formulaire $ name = $ _POST ['sender_name']; $ email = $ _POST ['sender_email']; $ phone_number = $ _POST ['sender_phonenumber']; $ subject = $ _POST ['email_subject']; $ message = $ _POST ['email_message']; // valider la saisie du formulaire utilisateur validate_form ($ name, $ email, $ numéro_phone, $ sujet, $ message); // envoyer le mail send_mail ($ name, $ email, $ numéro_phone, $ sujet, $ message);  // affiche le formulaire de contact contact_html_form (); 

Rappelez-vous que le plugin contact-form va avoir un support shortcode. Vous trouverez ci-dessous la fonction de rappel par shortcode ainsi que le add_shortcode fonction qui enregistre le shortcode.

// Enregistrez un nouveau code court: [cf_contact_form] add_shortcode ('cf_contact_form', 'contact_form_shortcode'); // fonction de rappel de shortcode function contact_form_shortcode () ob_start (); contact_form_function (); return ob_get_clean (); 

Utiliser le plugin

Utilisez le shortcode [cf_contact_form] inclure le formulaire de contact dans un message ou une page.
Pour inclure le formulaire de contact dans votre thème, utilisez la balise template .

Résumé

Dans cet article, nous avons examiné comment utiliser le WP_Error classe pour gérer les erreurs dans les plugins. Je nous ai également montré un cas d'utilisation pratique sur la façon de gérer les erreurs dans le plugin en utilisant la classe. Vous pouvez trouver le fichier de plug-in joint à cet article.

Code heureux!