Moyens gratuits pour automatiser l'envoi d'e-mails d'invitation Discourse avec WordPress (et d'autres plateformes)

Suite à la discussion sur Automatiser l’envoi d’e-mails d’invitation Discourse avec Zapier :

En chemin vers mes objectifs, j’ai trouvé ce sujet. C’est génial, mais Zapier n’est pas gratuit pour autant, :frowning: alors j’ai créé ces deux snippets, j’espère qu’ils seront utiles à quelqu’un. Ajoutez-les dans le fichier functions.php de votre thème.

Et si vous avez des codes utiles similaires, faites-le-moi savoir :smiley: Je veux en apprendre davantage sur l’API Discourse et sur les moyens gratuits de les connecter à WordPress simplement en codant ^^ !

Envoyer une invitation Discourse après la soumission d’un commentaire (statut en attente)

function invite_forum_from_comment($comment_ID) {
 $comment = get_comment( $comment_ID );
 $comment_email = get_comment_author_email($comment);
 $maybe_notify = ( '0' == $comment->comment_approved );
 if ( $maybe_notify ) {
  // inviter l'utilisateur 
  wp_remote_post( 'https://forum.yourdomain.com/invites', array(
      'method' => 'POST',
      'headers' => array('Content-Type' => 'multipart/form-data', 
                         'Api-key' => 'yourapikey',
                         'Api-Username' => 'yourusername'),
                          'body' => array('email' => $comment_email,
  'custom_message' => 'Merci pour votre commentaire, pendant que vous attendez la modération, pourquoi ne pas rejoindre notre forum ?!')
            )
      );  
     };
    }
    add_action('comment_post', 'invite_forum_from_comment');

Inviter un utilisateur à Discourse après avoir passé une commande WooCommerce

  function invite_forum_from_order( $order_id ) {
          // récupérer toutes les données de la commande
          $order = new WC_Order($order_id);
          // récupérer l'e-mail de l'utilisateur depuis la commande
          $order_email = $order->billing_email;   
          // inviter l'utilisateur 
          wp_remote_post( 'https://forum.yourdomain.com/invites', array(
              'method' => 'POST',
              'headers' => array('Content-Type' => 'multipart/form-data', 
                                 'Api-key' => 'yourapikey',
                                 'Api-Username' => 'yourusername'),
              'body' => array('email' => $order_email,
  'custom_message' => 'Merci pour votre commande, pourquoi perdre votre temps à attendre, rejoignez simplement notre forum !')
                    )
              );  
          
        }
 // ajouter cette nouvelle fonction à la page de remerciement
  add_action( 'woocommerce_thankyou', 'invite_forum_from_order', 10, 1 );

Mise à jour : Ce code n’invitera que les commentaires approuvés afin d’éviter d’inviter des spammeurs.

function invite_forum_from_approved_comment($comment_ID) {
 $comment = get_comment( $comment_ID );
 $comment_email = get_comment_author_email($comment);
 $maybe_notify = ( '1' == $comment->comment_approved );
 if ( $maybe_notify ) {
  // Inviter l'utilisateur 
  wp_remote_post( 'https://forum.fususu.com/invites', array(
      'method' => 'POST',
      'headers' => array('Content-Type' => 'multipart/form-data', 
                         'Api-key' => 'xxxxxxxxxxxxxxxxxxxx',
                         'Api-Username' => 'xxxx'),
      'body' => array('email' => $comment_email, 
                     'custom_message' => 'Merci. Votre commentaire a été approuvé et vous avez gagné une invitation à rejoindre mon forum.')
        )
  );  
 };
}
add_action('comment_unapproved_to_approved', 'invite_forum_from_approved_comment');

Et en chemin pour inviter mes contacts d’un système Mautic vers le forum, j’ai découvert que Mautic disposait déjà d’une excellente fonctionnalité de webhook capable d’envoyer une requête POST vers Discourse :D, ^^ ! Il suffit de créer une action dans une campagne, et c’est terminé ! Aucun code nécessaire :smiley:



Je m’excuse auprès de Zapier, ils sont bons, mais j’apprécie les solutions gratuites sans limitations :blush: