쿼리 라이브러리
쿼리 라이브러리InstaWP에서 Mailchimp로 뉴스레터 구독자 등록

InstaWP에서 Mailchimp로 뉴스레터 구독자 등록

InstaWP를 사용하면 방문자가 플러그인을 테스트하기 위한 샌드박스 사이트를 시작할 수 있으며, 동시에 뉴스레터 구독도 할 수 있습니다:

Gato GraphQL을 테스트하기 위해 InstaWP에서 테스트 사이트 시작하기
Gato GraphQL을 테스트하기 위해 InstaWP에서 테스트 사이트 시작하기

템플릿의 「Advanced Options」 탭에서 InstaWP에 웹훅을 제공하여 이러한 이메일 주소를 수집할 수 있습니다:

InstaWP 템플릿의 고급 옵션
InstaWP 템플릿의 고급 옵션

웹훅은 아래 쿼리를 사용하는 퍼시스티드 쿼리가 됩니다. 이 쿼리는 방문자의 이메일 주소를 캡처하고 해당 이메일 주소를 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 }' );

이 웹훅을 사용하면 InstaWP에서 새 테스트 사이트를 생성할 때 사용자가 뉴스레터에 등록하면 방문자의 이메일 주소가 자동으로 Mailchimp 목록에 추가됩니다:

이메일 주소가 Mailchimp 목록에 자동으로 추가됨
이메일 주소가 Mailchimp 목록에 자동으로 추가됨