Queries Kütüphanesi
Queries KütüphanesiInstaWP'den Mailchimp'e Bülten Abonesi Kaydetme

InstaWP'den Mailchimp'e Bülten Abonesi Kaydetme

InstaWP, ziyaretçilerin bir eklentiyi test etmek için sandbox site başlatmasına olanak tanırken bültene abone olmalarına da izin verir:

Gato GraphQL'i test etmek için InstaWP'de test sitesi başlatma
Gato GraphQL'i test etmek için InstaWP'de test sitesi başlatma

Bu e-postaları, şablonun "Advanced Options" sekmesinde InstaWP'ye bir webhook sağlayarak yakalayabiliriz:

InstaWP şablonları için gelişmiş seçenekler
InstaWP şablonları için gelişmiş seçenekler

Webhook, aşağıdaki query ile bir persisted query olacaktır. Bu query, ziyaretçilerin e-postasını yakalar ve bu e-postayı bir Mailchimp listesine abone eder.

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"
      }
    }
  })
}

Ve wp-config.php dosyasında şunu tanımlayın:

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

Bu webhook kullanılarak, InstaWP'de yeni bir test sitesi oluşturulduğunda ve kullanıcı bültene abone olduğunda, ziyaretçinin e-postası otomatik olarak Mailchimp listesine eklenir:

E-posta otomatik olarak Mailchimp listesine eklendi
E-posta otomatik olarak Mailchimp listesine eklendi