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.
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.
contact_html_form ()
contiendra le code de formulaire HTML du plugin.validate_form ()
gère l'erreur du plugin. nous verrons le traitement des erreurs en utilisantWP_Error
en action dans cette fonction.envoyer un mail()
gère l'envoi de courrier électronique.contact_form_function ()
rassemble et traite les fonctions ci-dessuscontact_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:
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 ();
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 .
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!