Pustaka queries
Pustaka queriesDaftarkan pelanggan newsletter dari InstaWP ke Mailchimp

Daftarkan pelanggan newsletter dari InstaWP ke Mailchimp

InstaWP memungkinkan pengunjung untuk meluncurkan situs sandbox guna menguji sebuah plugin, sekaligus memungkinkan mereka berlangganan newsletter:

Meluncurkan situs pengujian di InstaWP untuk menguji Gato GraphQL
Meluncurkan situs pengujian di InstaWP untuk menguji Gato GraphQL

Kita dapat menangkap email-email ini dengan menyediakan webhook ke InstaWP, di bawah tab "Advanced Options" pada template:

Opsi lanjutan untuk template InstaWP
Opsi lanjutan untuk template InstaWP

Webhook tersebut akan berupa persisted query dengan query di bawah ini. Query ini menangkap email dari pengunjung, dan mendaftarkan email tersebut ke sebuah daftar 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"
      }
    }
  })
}

Dan definisikan di dalam wp-config.php:

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

Dengan menggunakan webhook ini, saat membuat situs pengujian baru di InstaWP, dan pengguna mendaftar ke newsletter, email pengunjung secara otomatis ditambahkan ke daftar Mailchimp:

Email otomatis ditambahkan ke daftar Mailchimp
Email otomatis ditambahkan ke daftar Mailchimp