Création d’e-mails de commentaires personnalisés comprendre l’API

Lorsqu'il s'agit de travailler avec des courriels dans WordPress, la plupart des utilisateurs sont familiarisés avec les fonctionnalités de base et / ou les notifications.

Plus précisément, nous sommes habitués à voir des courriels pour:

  • Inscriptions d'utilisateurs
  • Rappels de mot de passe
  • Notifications de commentaires
  • … etc.

Lorsqu'il s'agit de créer des thèmes plus avancés, voire des applications, il n'est pas rare d'externaliser les fonctionnalités de messagerie afin de fournir une meilleure expérience à nos utilisateurs..

C'est-à-dire que si nous sommes Aller pour les envoyer par courrier électronique, nous aimerions que le courrier soit aussi beau que possible. Cela nécessite généralement d'inclure une stratégie de marque cohérente, une mise en page plus flexible et un plus grand nombre d'éléments stylisés..

Cela est tout à fait logique pour certains courriels, en particulier lorsqu'il s'agit de recevoir des messages, des bulletins d'information, etc..

Mais si vous souhaitez fournir une expérience cohérente sur l'ensemble de votre site, quelle que soit son apparence, par exemple comment les e-mails de notifications de commentaires apparaissent, vous pouvez le faire avec l'API WordPress native..

Ainsi, dans cette série en deux parties, nous allons examiner l'API pour personnaliser nos courriels de modération et de notification de commentaires..

Dans la première partie de la série, nous allons passer en revue la fonction chargée d’envoyer le courrier électronique et les hooks qu’il fournit. Nous allons examiner les capacités du crochet, puis nous examinerons le fonctionnement de l'ensemble du processus..

Après cela, nous terminerons la série en jetant un coup d’œil à un exemple concret montrant comment nous pouvons complètement personnaliser l’email de notification de commentaires en fonction de nos besoins..


La fonction et les crochets

La fonction responsable de l'envoi d'e-mails de notification de commentaires est la fonction wp_notify_postauthor..

Au moment de la rédaction de cet article, la documentation de cette fonction est un peu faible. Bien qu'elle décrit correctement ce que la fonction accepte et ce qu'elle retourne, sa description est un peu floue.

Ça lit:

Cette fonction peut être remplacée via des plugins. Si les plugins ne redéfinissent pas ces fonctions, elles seront utilisées à la place..

Assainit une URL pour l'utiliser dans une redirection.

Les deux principales conclusions de cette partie de la documentation sont les suivantes:

  • "La fonction peut être remplacée via des plugins."
  • "Assainit une URL pour l'utiliser dans une redirection."

La partie la plus cryptée de la documentation est peut-être que la fonction peut être remplacée en gros via des plugins; Cependant, la fonction propose également plusieurs filtres auxquels nous pouvons nous accrocher afin de manipuler les données..

En fait, cela fait apparaître une stratégie importante pour développer des projets open source.

Une stratégie de développement open source

L'un des aspects les plus puissants du développement open source est sa nature même: le fait qu'il soit open source.

Exemple: lorsque la documentation laisse à désirer, la meilleure chose à faire est d'ouvrir le code source et de faire le point avec précision sur ce qui se passe..

Pour ce faire, il suffit de localiser la fonction dans l'application principale. Vous pouvez le faire par votre IDE ou en parcourant le WordPress Trac.

Quoi qu’il en soit, pour les besoins de ce poste, la fonction en question est située dans wp-includes / pluggable.php.

Une fois que nous l'avons localisé, nous pouvons alors commencer à localiser les aspects du plugin qui peuvent être remplacés par des plugins..


Ses capacités

Notez qu'une partie de ce qui rend WordPress si puissant est son système de raccordement. Rappelez-vous d'un article précédent qu'il existe deux types de points d'ancrage: Actions et Filtres..

  • Les actions sont des événements qui se déclenchent dans le cycle de vie d'une page WordPress lorsque certains événements se sont produits..
  • Les filtres sont des fonctions principalement chargées d'intercepter, de gérer et de renvoyer les données avant de les restituer au navigateur..

Parce que nous voulons modifier le contenu et / ou le style d'un courrier électronique, nous recherchons des fonctionnalités spécifiques au rendu du contenu d'un courrier électronique. Par conséquent, nous devons rechercher un filtre.

Et comme nous recherchons des fonctionnalités spécifiques au rendu du contenu d'un email, nous devons rechercher un filtre..

Donc, avec tout cela dit, nous recherchons un appel (ou des appels) à apply_filters et cette fonction fournit trois:

  • $ notify_message = apply_filters ('comment_notification_text', $ notify_message, $ comment_id);
  • $ subject = apply_filters ('comment_notification_subject', $ subject, $ comment_id);
  • $ message_headers = apply_filters ('comment_notification_headers', $ message_headers, $ comment_id);

Mais à quoi sert de localiser les filtres si on ne sait pas vraiment comment les utiliser?


Comment ça marche

En examinant le code ci-dessus, vous verrez que WordPress filtre les données au moyen de trois fonctions spécifiques, chacune d’elles semblant relativement claire, à droite.?

  • comment_notification_text est responsable de la gestion du contenu actuel de l'email
  • comment_notification_subject gomme la ligne d'objet de l'email
  • comment_notification_headers traiter de la manière dont le courrier électronique est rendu (en général, c'est ici que nous plaçons du texte brut par rapport au HTML, par exemple).

Assez facile, non? Bien sûr, ce n'est vraiment que la moitié.

En plus de comprendre le rôle de chaque fonction, cela ne vaut rien tant que nous ne savons pas utiliser les filtres..


Conclusion

Dans le prochain article, nous allons créer notre propre plugin qui fournit des emails de notification de commentaires personnalisés.

Plus précisément, nous viserons à fournir une expérience plus cohérente avec le reste du site, nous personnaliserons le contenu de l'e-mail et nous examinerons comment et pourquoi nous devrions gérer les en-têtes envoyés avec chaque e-mail..

Nous utiliserons également le dernier thème - Twentytwelve - fourni avec WordPress 3.5. En attendant, installez-vous dans votre environnement de développement pour être prêt à utiliser le prochain article..


Une note sur la documentation

Une des plus belles choses sur le développement open source est la possibilité pour quiconque de contribuer au projet. Lorsque nous, développeurs, pensons contribuer à un projet, nous pensons souvent à contribuer à son code base.

Mais un projet open source, c'est beaucoup plus: il inclut de la documentation, des ressources d'image, diverses dépendances, etc..

Au moment de la rédaction de cet article, la documentation de wp_notify_postauthor devait être améliorée. En tant que tel, j'ai contribué à la mise à jour du Codex en écrivant cet article..

Un appel à l'action

Si vous êtes impliqué dans la communauté WordPress à quelque titre que ce soit et que vous êtes capable de contribuer d'une manière ou d'une autre - même si la documentation est mise à jour -, je vous encourage vivement à le faire car cela aide les milliers de personnes dans le monde qui utilisent WordPress..


Ressources

  • wp_notify_postauthor
  • WordPress Trac
  • Comprendre les actions et les filtres
  • WordPress 3.5 RC3
  • Vingt douze