Gestion des emails avec WooCommerce , Licence Manager WC et SendinBlue
Constat : J’ai un site e-commerce basé sur wordpress avec un plugin WooCommerce. Pour mes besoins j’ai ajouté un autre plugin « Licence Manager for WooCommerce ». Ce dernier me permet de générer une clé de licence lors d’un achat d’un produit numérique. Comme un jeu vidéo. On peut automatiser l’envoi de cette clé au moment ou la commande passe dans le statut « terminé » (order completed) Ceci est activable avec l’option coché ci dessous (dans WooCommerce – Réglage – Onglet Gestionnaire de licences) Ce qui nous envoi cet email, après avoir commandé un produit (numérique). On reçoit donc bien notre clé de licence (MRY-VVY) Besoins J’aimerais pouvoir cutomiser cet email. Le rendre plus joli déjà, mais surtout ajouter un lien vers mon application avec la clé en paramètre pour démarrer le jeu directement, sans que l’utilisateur n’ait à écrire lui même cette clé de licence. J’ai contacté un dev du plugin, il a pas su me répondre et pourrait éventuellement inclure cette fonctionnalité dans une prochaine version (inchallah) Donc on va se débrouiller sans et le faire nous même. Les fichiers emails WooCommerce est un plugin qui embarque des templates d’emails par défault. Si l’on souhaite les cutomiser, il faut les recopier dans le path de votre theme. Pourquoi ? Car si vous modifiez directement les fichiers dans le répertoire du plugin, ils seront effacés lors de la prochaine mise à jour et vous allez devoir remodifier ceux la. En recopiant le template d’email dans le path de votre theme, vous sauvegarder celui ci, même apres une mise à jour du plugin. Cependant, ceci ne garantit pas une compatibilité futur. Gardez à l’esprit qu’un jour, ça peut merder… De même, Licence Manager for WooCommerce est un plugin. Il a aussi ses templates d’emails par défaut. Le code Le fichier qui m’intéresse est le suivant : lmfwc-email-customer-deliver-license-keys.php Et le bout de code suivant affiche la clé de licence dans l’email. <td class="td" style="text-align: left; vertical-align: middle; font-family: ‘Helvetica Neue’, Helvetica, Roboto, Arial, sans-serif;" colspan="<?php echo ($license->getExpiresAt()) ? ‘1’ : ‘2’; ?>"> <code><?php echo esc_html($license->getDecryptedLicenseKey()); ?></code> </td> Donc à ce stade, je n’ai plus qu’une ligne à rajouter : <?php $key = $license->getDecryptedLicenseKey(); echo "<a href=’http://game.outquest.fr/activation/$key’>Avec le téléphone qui va servir à jouer, cliquez sur ce lien</a>"; ?> Sauvegardez vos modifs et placer le fichier lmfwc-email-customer-deliver-license-keys.php dans le repertoire /wp-content/themes/{votre-Theme/woocommerce/emails/ Notez que c’est pas : /wp-content/themes/{votre-Theme/license-manager-for-woocommerce/emails/ Voici le résultat par email SendinBlue SendinBlue est la plateforme par laquelle je passe pour envoyer mes emails. J’ai commencé avec une simple newsletter sur ma landing page. Ensuite j’ai demandé à SendinBlue de gérer aussi l’envoi des email de confirmation de commande effectué. Cela permet de déléguer l’envoi à une société spécialisé (moins de risque de spam, quand c’est bien fait) mais aussi d’avoir tout un tas de données marketing (ouverture du mail, clic, call to action etc..) Une fois qu’on a autorisé SendinBlue à envoyer tout nos emails,il va légérement modifier tous les liens pour les tracer. Par exemple, le lien ci dessus était http://game.outquest.fr/activation/XXX-XXX Et devient : https://dfjfdhi.r.af.d.sendibt2.com/tr/cl/9TxMauVboi221d-fV6iZOAOP-8Gjao1SU9XET3Lz8pl3S_15GogAHUQ0qMN_vwJXGJKZdFP3dVXOD91R4fgkGwgS-luPEmKwSZjQZd5mIWPpQbjhKvaNxdSfY_uwHjdvsFZdi0Ph5juUWKPmNXRAM8DpsuSUiFj-AiL6tBjes4JoG2Xgih98xhgNLY1Mj-LsrmCC1_48j7MxwfvKjHoNAaZ7lRwfiiySLJxNKoRa6K0crle9dt9nfbSx6MwDnOCWGKU Gestion des emails par SendinBlue Je vous passe l’installation du plugin SendinBlue sur wordpress. Ya dla doc en ligne. Ouvrir le menu WooCommerce – Sendinblue et cliquer en haut a droite sur réglage. On se retrouve sur le backoffice de SendinBlue. Donc celui gère notre site qq part. Allez dans la section Emails Options : et coché la case : Ensuite, je suis plus sûr de moi. J’ai coché ceci : C’est un peu obscure, mais en cochant la case de « Completed Order » mes emails de résumé de commandes partent. Sinon je ne les reçois plus. Scénario SendinBlue Pour les besoins de mon jeu, je voudrais envoyer un email supplémentaire pour informer l’utilisateur du déroulement du jeu. Pour cela SendinBlue propose des « Workflows » automatisé. En voici un concernant la commande terminé : Ici est représenté les séquences du workflow, lorsque qu’un évenement de type « order_completed » est détecté, on attend 1 minute (le minimum, je sais pas pourquoi faut absolument attendre…) et on envoit l’email « Email de début du jeu Quête Salamandre »‘ que j’ai au préalable configuré. Et voila, une minute plus tard, en plus du précédent email, je reçois celui ci : Pour aller plus loin Pour moi l’idéal serait que lien d’activation se trouve dans le second email. Ceci implique d’inclure cette clé de licence dans les paramètres géré par sendinblue, lors de la construction de l’email. Car lors de la création de l’automatisation d’un workflows sur un évenement commande terminé (ou produit acheté) je me suis vu proposé un template par défaut : qui présente des infos de la commande. Si j’avais en plus qq chose comme {{params.licenceKey}} je serais en mesure de finir cet email.