Le blog de l’agence.

Ajouter un e-mail dans une liste MailChimp via API.

Dans ce tutoriel, nous allons analyser comment ajouter un e-mail dans une liste d’abonnés en profitant des fonctions HTTP de WordPress et en communiquant avec MailChimp via son API.

De nombreuses extensions existent afin de relier un site WordPress à l’outil de gestion de newsletter MailChimp. Il est relativement facile de relier des événements WordPress (inscription utilisateur, achat WooCommerce, soumission de formulaire Contact Form 7) à une base de données MailChimp pour y inscrire des utilisateurs.

Mais rien de mieux que de gérer cela sans extension et uniquement via un code sur-mesure ! L’API MailChimp est simple d’utilisation, extrêmement bien documentée et s’avère être très flexible pour gérer ses données avec un peu de code.

Comment créer un nouvel abonné dans une liste MailChimp via l’API 3.0 ?

Information

L’intégralité du code de ce tutoriel est disponible dans un gist GitHub.

Commenter créer une inscription MailChimp dans un site WordPress ?

Pré-requis

Identifiants d’API

Avant d’analyser la fonction magique qui permet d’ajouter un e-mail à une liste MailChimp, il est nécessaire de :

  1. créer une clé d’API afin d’exécuter des actions sur notre compte MailChimp
  2. connaître l’identifiant de la liste MailChimp dans laquelle ajouter nos futurs abonnés
Créer une clé d’API MailChimp

Rendez-vous dans votre administration MailChimp. Dans la partie Account, cliquez sur l’onglet Extras et visitez la page API keys.

Gagnez un mois de co-working et vacances à Bali !

De là, vous pourrez cliquez sur le bouton Create a key pour générer une clé d’API MailChimp. Copiez-la, elle vous sera nécessaire dans le code ci-dessous !

Où créer une clé d'API MailChimp ?
Où créer une clé d’API MailChimp ?

Pour connaître l’ID (identifiant) de liste MailChimp, allez dans la partie Lists et sélectionnez la liste dans laquelle vous souhaiterez inscrire vos abonnés.

De là, cliquez sur Settings puis sur List name and defaults.

L’identifiant de la liste est inscrit à droite dans la zone intitulée List ID. Copiez-le et gardez-le au chaud, on en aura aussi besoin dans notre fonction ci-dessous !

Où trouver l'identifiant d'une liste MailChimp ?
Où trouver l’identifiant d’une liste MailChimp ?

La fonction magique pour ajouter un e-mail dans une liste MailChimp

Avant de l’analyser en détails, mettez à jour les lignes 17 à 19 afin d’indiquer :

  1. votre clé API récupérée plus tôt (ligne 17)
  2. l’identifiant de la liste MailChimp récupéré plus tôt (ligne 18)
  3. le datacentre de votre compte MailChimp (ligne 19). Il est lisible en toute fin de clé API (us7 ou us18 par exemple)

Regardons un peu les entrailles de cette fonction qui va nous permettre d’inscrire un e-mail dans une liste MailChimp :

  1. lignes 22 à 24 : si nous n’avons pas le nécessaire pour travailler (pas les infos d’API, ou que l’e-mail fournit n’est pas un e-mail), on abandonne.
  2. ligne 26 : on construit l’URL d’API MailChimp (version 3.0) que l’on interrogera en POST pour envoyer nos données et demander l’inscription d’un utilisateur à une liste.
  3. lignes 28 à 31 : on prépare le cœur de notre requête. Deux paramètres ici présents sont obligatoires : l’adresse e-mail à inscrire (ligne 29), et le statut de l’inscription (ligne 30). Ce statut peut être pending si l’on souhaite qu’une confirmation par e-mail soit envoyée à l’utilisateur, ou subscribed si l’inscription doit se faire immédiatement, sans aucune action utilisateur (attention RGPD !)
  4. lignes 33 à 38 : on construit le tableau d’arguments qui sera passé à wp_remote_post() plus bas. Notez, ligne 36, le header HTTP Authorization que nous modifions afin d’identifier notre requête avec la clé API récupérée précédemment.
  5. ligne 40 : on interroge l’API de MailChimp grâce à wp_remote_post().
  6. ligne 42 à 52 : on analyse la réponse de notre appel d’API MailChimp. Si nous récupérons un objet JSON avec une propriété id, on la stocke dans une métadonnée d’utilisateur (nommée ici _mc_user_id). Cet identifiant pourra nous servir à l’avenir pour, notamment, supprimer cette utilisateur de cette liste, ou mettre à jour ses informations.

Utilisation de cette fonction

add_email_to_mailchimp_list( 'adresse@email.fr', 12, false )

Le premier paramètre, seul obligatoire, est l’e-mail à inscrire dans notre liste.

Le second, facultatif, est l’identifiant d’utilisateur WordPress relié à cet e-mail. S’il est fourni, on stockera l’identifiant MailChimp dans une métadonnée de cette utilisateur.

Le dernier paramètre est un boolean afin d’activer ou désactiver l’opt-in de MailChimp. S’il est activé, l’inscription de l’adresse e-mail dans la liste ne sera finalisée qu’après confirmation par e-mail de l’utilisateur.

Aller plus loin

Comme vous pouvez le lire dans la doc officielle, il est également possible d’envoyer un paramètre merge_fields à MailChimp pour indiquer divers Member Merge Variables qui seront réutilisables dans vos templates MailChimp.

Cela peut être très pratique si vous faites l’inscription utilisateur juste après la soumission d’un formulaire par exemple : vous disposez probablement de métadonnées utiles à associer à l’utilisateur (son prénom, son entreprise, etc.) et qui mériteraient d’être réutilisées dans vos campagnes d’e-mail pour personnaliser les contenus envoyés.

Il est donc possible d’envoyer ces informations à MailChimp en les intégrant au corps défini ligne 28 dans la variable $body (passez un tableau associatif de données dans la clé merge_fields).

Conseil

N’hésitez pas à vous référer à la documentation MailChimp de cette route d’API pour découvrir les autres paramètres disponibles lors de l’ajout d’un nouveau membre dans une liste.

Bonus : abonner des utilisateurs dans MailChimp lors d’événements WordPress

Cette fonction, à elle seule, va vous permettre d’inscrire des utilisateurs de votre site WordPress à votre liste MailChimp.

Mais allons un peu plus loin et regardons comment intégrer l’usage de cette fonction avec certaines extensions WordPress populaires.

Inscrire un nouvel e-mail dans MailChimp après l’inscription d’un utilisateur WordPress

On se hooke ici sur l’action user_register pour ajouter dans notre liste MailChimp un utilisateur fraichement inscrit sur notre site WordPress.

Attention

Encore une fois, attention au RGPD ! Il est judicieux d’aller plus loin et d’intégrer une case à cocher de consentement dans votre formulaire. Inscrivez l’utilisateur à votre newsletter seulement s’il en a expressément formulé le besoin !

Inscrire un nouvel e-mail dans MailChimp suite à une commande WooCommerce

Ici, on se hooke sur woocommerce_thankyou pour automatiquement ajouter l’e-mail d’un acheteur qui vient de passer commande sur notre boutique WooCommerce.

Inscrire un nouvel e-mail dans MailChimp après l’envoi d’un formulaire Contact Form 7

Contact Form 7 propose l’action wpcf7_mail_sent afin d’exécuter des logiques quand un e-mail est envoyé suite à la soumission d’un formulaire.

Notez bien ici que le champ CF7 contenant l’adresse e-mail à inscrire possède le nom your-email (comme dans le formulaire par défaut créé par le plugin). Mettez-le à jour si vous utilisez un nom différent !

Inscrire un nouvel e-mail dans MailChimp après l’envoi d’un formulaire Gravity Forms

Ici, on se hooke sur gform_after_submission_1 pour agir lorsqu’un formulaire Gravity Forms (d’ID 1) est envoyé.

Regardez comment est construit votre tableau $data pour trouver le champ stockant l’adresse e-mail qui vous intéresse !

Ajouter un e-mail dans une liste MailChimp via API 1

Soyez le premier à publier un commentaire.

Laisser un commentaire