Modi gratuiti per automatizzare l'invio di email di invito Discourse con WordPress (e altre piattaforme)

Continuando la discussione da Automatizzare l’invio di email di invito a Discourse con Zapier:

Nel percorso per raggiungere i miei obiettivi, ho trovato questo argomento. È fantastico, ma Zapier non è gratuito, :frowning: quindi ho creato questi due snippet, spero siano utili per qualcuno. Inseriteli nel file functions.php del vostro tema.

E se avete altri codici utili simili a questi, fatemelo sapere :smiley: Voglio imparare di più sulla API di Discourse e sui modi gratuiti per collegarla a WordPress semplicemente scrivendo codice ^^!

Invita un utente a Discourse dopo che ha inviato un commento (stato in attesa)

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 ) {
  // invita l'utente 
  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' => 'Grazie per il commento, mentre aspetti la moderazione, perché non unirti al nostro forum?!')
            )
      );  
     };
    }
    add_action('comment_post', 'invite_forum_from_comment');

Invita un utente a Discourse dopo aver effettuato un ordine WooCommerce

  function invite_forum_from_order( $order_id ) {
          // ottieni tutti i dati dell'ordine
          $order = new WC_Order($order_id);
          // ottieni l'email dell'utente dall'ordine
          $order_email = $order->billing_email;   
          // invita l'utente 
          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' => 'Grazie per il tuo ordine, perché perdere tempo in attesa? Unisciti subito al nostro forum!')
                    )
              );  
          
        }
 // aggiungi questa nuova funzione alla pagina di ringraziamento
  add_action( 'woocommerce_thankyou', 'invite_forum_from_order', 10, 1 );

Aggiornamento: Questo codice inviterà solo i commenti approvati per evitare di invitare alcuni spammer.

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 ) {
  // invita utente 
  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' => 'Grazie. Il tuo commento è stato approvato e hai guadagnato un invito per unirti al mio forum.')
        )
  );  
 };
}
add_action('comment_unapproved_to_approved', 'invite_forum_from_approved_comment');

E mentre invitavo i miei contatti su un sistema Mautic a iscriversi al forum, ho scoperto che Mautic dispone già di una funzione webhook molto efficace che può inviare una richiesta POST a Discourse :D, ^^! Basta creare un’azione all’interno di una campagna e il gioco è fatto! Non serve scrivere codice :smiley:



Mi dispiace per Zapier, sono ottimi, ma preferisco una soluzione gratuita senza limitazioni :blush: