طرق مجانية لأتمتة إرسال رسائل دعوة Discourse عبر WordPress (وغيرها من المنصات)

مواصلة للنقاش من أتمتة إرسال رسائل دعوة Discourse عبر Zapier:

أثناء سعيي لتحقيق أهدافي، عثرتُ على هذا الموضوع. إنه رائع، لكن Zapier ليس مجانيًا في النهاية :frowning:، لذا قمت بإنشاء هذين الكودين، وآمل أن يكونا مفيدًا لأحد. ضعهما في ملف functions.php الخاص بمظهر موقعك.

وإذا كان لديك أكواد مفيدة مشابهة لذلك، فأخبرني :smiley:! أريد أن أتعلم المزيد حول واجهة برمجة تطبيقات Discourse والطرق المجانية لربطها بـ WordPress من خلال البرمجة فقط ^^!

إرسال دعوة إلى Discourse بعد تقديم تعليق (حالة معلقة)

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 ) {
  // دعوة المستخدم 
  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' => 'شكرًا لتعليقك، بينما تنتظر المراجعة، لماذا لا تنضم إلى منتدانا؟!')
            )
      );  
     };
    }
    add_action('comment_post', 'invite_forum_from_comment');

دعوة المستخدم إلى Discourse بعد إتمام طلب عبر WooCommerce

  function invite_forum_from_order( $order_id ) {
          // جلب جميع بيانات الطلب
          $order = new WC_Order($order_id);
          // جلب بريد المستخدم من الطلب
          $order_email = $order->billing_email;   
          // دعوة المستخدم 
          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' => 'شكرًا لطلبك، لماذا تضيع وقتك في الانتظار؟ فقط انضم إلى منتدانا!')
                    )
              );  
          
        }
 // أضف هذه الدالة الجديدة إلى صفحة الشكر
  add_action( 'woocommerce_thankyou', 'invite_forum_from_order', 10, 1 );

تحديث: سيؤدي هذا الكود إلى دعوة التعليقات المعتمدة فقط لمنع دعوة بعض المرسلي البريد العشوائي.

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 ) {
  // دعوة المستخدم 
  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' => 'شكرًا لك. تم اعتماد تعليقك وقد حصلت على دعوة للانضمام إلى منتداي.')
        )
  );  
 };
}
add_action('comment_unapproved_to_approved', 'invite_forum_from_approved_comment');

وعندما كنت في طريقي لدعوة جهاتي في نظام Mautic للانضمام إلى المنتدى،
اكتشفت أن Mautic يحتوي بالفعل على وظيفة ويب هوك ممتازة يمكنها إرسال طلب POST إلى Discourse :D، ^^! فقط قم بإنشاء إجراء داخل حملة، وحينها يكون الأمر مكتملاً! لا حاجة لأي كود :smiley:



أتعاطف مع Zapier، فهم يقدمون خدمات جيدة، لكنني أفضل الحلول المجانية بدون قيود :blush: