ไลบรารี Queries
ไลบรารี Queriesลงทะเบียนผู้สมัครรับจดหมายข่าวจาก InstaWP ไปยัง Mailchimp

ลงทะเบียนผู้สมัครรับจดหมายข่าวจาก InstaWP ไปยัง Mailchimp

InstaWP ช่วยให้ผู้เข้าชมสามารถเปิดใช้งานไซต์ทดสอบ (sandbox) เพื่อทดลองใช้ปลั๊กอิน พร้อมทั้งสามารถสมัครรับจดหมายข่าวได้ด้วย:

การเปิดใช้งานไซต์ทดสอบใน InstaWP เพื่อทดลองใช้ Gato GraphQL
การเปิดใช้งานไซต์ทดสอบใน InstaWP เพื่อทดลองใช้ Gato GraphQL

เราสามารถดักจับอีเมลเหล่านี้ได้โดยการกำหนด webhook ให้กับ InstaWP ภายใต้แท็บ "Advanced Options" ของเทมเพลต:

ตัวเลือกขั้นสูงสำหรับเทมเพลต InstaWP
ตัวเลือกขั้นสูงสำหรับเทมเพลต InstaWP

webhook นี้จะเป็น persisted query ด้วย query ด้านล่างนี้ query นี้จะดักจับอีเมลจากผู้เข้าชม และสมัครอีเมลนี้ไปยังลิสต์ของ Mailchimp

query HasSubscribedToNewsletter {
  hasSubscriberOptIn: _httpRequestHasParam(name: "marketing_optin")
  subscriberOptIn: _httpRequestStringParam(name: "marketing_optin")
  isNotSubscriberOptInNAValue: _notEquals(value1: $__subscriberOptIn, value2: "NA")
  subscribedToNewsletter: _and(values: [$__hasSubscriberOptIn, $__isNotSubscriberOptInNAValue])
    @export(as: "subscribedToNewsletter")
}
 
query RegisterNewsletterSubscribeFromInstaWPToMailchimpList(
  # mailchimpDataCenterCode: Code for the data center of your account on Mailchimp (See: https://mailchimp.com/developer/marketing/docs/fundamentals/#api-structure)
  $mailchimpDataCenterCode: String!
  # Audience ID for the list on Mailchimp to which to subscribe the email
  $mailchimpAudienceID: String!
)
   @depends(on: "HasSubscribedToNewsletter")
   @include(if: $subscribedToNewsletter)
{
  subscriberEmail: _httpRequestStringParam(name: "email")
  
  mailchimpUsername: _env(name: "MAILCHIMP_API_CREDENTIALS_USERNAME")
    @remove
  mailchimpPassword: _env(name: "MAILCHIMP_API_CREDENTIALS_PASSWORD")
    @remove
  
  mailchimpAPIEndpoint: _sprintf(
    string: "https://%s.api.mailchimp.com/3.0/lists/%s/members",
    values: [$mailchimpDataCenterCode, $mailchimpAudienceID]
  )
  
  mailchimpListMembersJSONObject: _sendJSONObjectItemHTTPRequest(input: {
    url: $__mailchimpAPIEndpoint,
    method: POST,
    options: {
      auth: {
        username: $__mailchimpUsername,
        password: $__mailchimpPassword
      },
      json: {
        email_address: $__subscriberEmail,
        status: "subscribed"
      }
    }
  })
}

และกำหนดใน wp-config.php:

define( 'MAILCHIMP_API_CREDENTIALS_USERNAME', '{ username }' );
define( 'MAILCHIMP_API_CREDENTIALS_PASSWORD', '{ password }' );

เมื่อใช้ webhook นี้ ในการสร้างไซต์ทดสอบใหม่บน InstaWP และผู้ใช้สมัครรับจดหมายข่าว อีเมลของผู้เข้าชมจะถูกเพิ่มเข้าไปในลิสต์ของ Mailchimp โดยอัตโนมัติ:

อีเมลถูกเพิ่มเข้าไปในลิสต์ของ Mailchimp โดยอัตโนมัติ
อีเมลถูกเพิ่มเข้าไปในลิสต์ของ Mailchimp โดยอัตโนมัติ