Kostenlose Möglichkeiten, das Versenden von Discourse-Einladungsmails mit WordPress (und anderen Plattformen) zu automatisieren

Fortsetzung der Diskussion aus Automatisches Senden von Discourse-Einladungs-E-Mails mit Zapier:

Auf dem Weg zu meinen Zielen bin ich auf dieses Thema gestoßen. Das ist großartig, aber Zapier ist schließlich nicht kostenlos :frowning:, also habe ich diese beiden erstellt. Ich hoffe, sie sind für jemanden nützlich. Fügen Sie sie in Ihre Theme-Datei functions.php ein.

Und wenn Sie ähnliche nützliche Codes haben, teilen Sie sie mir mit :smiley: Ich möchte mehr über die Discourse-API und kostenlose Möglichkeiten lernen, sie nur durch Codierung mit WordPress zu verbinden ^^!

Discourse-Einladung senden, nachdem ein Kommentar eingereicht wurde (ausstehender Status)

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 ) {
  // Benutzer einladen 
  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' => 'Danke für den Kommentar. Warten Sie nicht auf die Moderation, sondern treten Sie doch unserem Forum bei?!')
            )
      );  
     };
    }
    add_action('comment_post', 'invite_forum_from_comment');

Benutzer nach einer WooCommerce-Bestellung zu Discourse einladen

  function invite_forum_from_order( $order_id ) {
          // Alle Bestelldaten abrufen
          $order = new WC_Order($order_id);
          // E-Mail-Adresse des Benutzers aus der Bestellung holen
          $order_email = $order->billing_email;   
          // Benutzer einladen 
          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' => 'Danke für Ihre Bestellung. Warum Zeit verschwenden? Treten Sie einfach unserem Forum bei!')
                    )
              );  
          
        }
 // Fügen Sie diese neu erstellte Funktion zur Dankes-Seite hinzu
  add_action( 'woocommerce_thankyou', 'invite_forum_from_order', 10, 1 );

Update: Dieser Code lädt nur genehmigte Kommentare ein, um zu verhindern, dass Spammer eingeladen werden.

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 ) {
  // Benutzer einladen 
  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' => 'Vielen Dank. Ihr Kommentar wurde genehmigt und Sie haben eine Einladung erhalten, um meinem Forum beizutreten.')
        )
  );  
 };
}
add_action('comment_unapproved_to_approved', 'invite_forum_from_approved_comment');

Und auf dem Weg, meine Kontakte auf einem Mautic-System zum Forum einzuladen, habe ich festgestellt, dass Mautic bereits eine sehr gute Webhook-Funktion hat, die einen POST an Discourse senden kann :D, ^^! Einfach eine Aktion innerhalb einer Kampagne erstellen, und dann ist es erledigt! Kein Code erforderlich :smiley:



Es tut mir leid für Zapier, sie sind gut, aber ich mag kostenlose Lösungen ohne Einschränkungen :blush: