Thư viện Queries
Thư viện QueriesĐăng ký người đăng ký newsletter từ InstaWP vào Mailchimp

Đăng ký người đăng ký newsletter từ InstaWP vào Mailchimp

InstaWP cho phép khách truy cập khởi chạy một trang sandbox để kiểm thử plugin, đồng thời cho phép họ đăng ký nhận newsletter:

Khởi chạy trang kiểm thử trên InstaWP để kiểm thử Gato GraphQL
Khởi chạy trang kiểm thử trên InstaWP để kiểm thử Gato GraphQL

Chúng ta có thể thu thập các email này bằng cách cung cấp một webhook cho InstaWP, trong tab "Advanced Options" của template:

Tùy chọn nâng cao cho các template InstaWP
Tùy chọn nâng cao cho các template InstaWP

Webhook sẽ là một persisted query với queries dưới đây. Queries này thu thập email từ khách truy cập và đăng ký email đó vào một danh sách 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"
      }
    }
  })
}

Và định nghĩa trong wp-config.php:

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

Sử dụng webhook này, khi tạo một trang kiểm thử mới trên InstaWP và người dùng đăng ký nhận newsletter, email của khách truy cập sẽ tự động được thêm vào danh sách Mailchimp:

Email được tự động thêm vào danh sách Mailchimp
Email được tự động thêm vào danh sách Mailchimp