Pustaka queries
Pustaka queriesKorelasikan data pengguna dari WordPress dan Mailchimp

Korelasikan data pengguna dari WordPress dan Mailchimp

Query ini menggabungkan data pengguna dari situs WordPress lokal dengan data pengguna yang sama dari Mailchimp, menggunakan email pengguna sebagai pengenal bersama antara kedua sistem.

Hasilnya adalah data pengguna email, name, dan lastname yang berasal dari WordPress, diperkaya dengan field location dari Mailchimp.

query FetchUserDataFromMailchimpList(
  # 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!
) {
  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]
  )
    @remove
  
  mailchimpListMembersJSONObject: _sendJSONObjectItemHTTPRequest(input: {
    url: $__mailchimpAPIEndpoint,
    method: GET,
    options: {
      auth: {
        username: $__mailchimpUsername,
        password: $__mailchimpPassword
      }
    }
  })
    @remove
  mailchimpUserData: _objectProperty(
    object: $__mailchimpListMembersJSONObject,
    by: { key: "members"}
  )
    @underEachArrayItem
      @objectKeepProperties(keys: ["email_address", "location"])
    @export(as: "mailchimpUserData")
}
 
query FetchUserDataFromWordPress {
  users(pagination: { limit: -1 }) {
    id
    email_address: email
    name
    lastName
      @export(
        as: "wordpressUserData",
        type: LIST,
        affectAdditionalFieldsUnderPos: [1, 2, 3]
      )
  }
}
 
query CombineUserDataFromMailchimpAndWordPress
  @depends(on: [
    "FetchUserDataFromMailchimpList",
    "FetchUserDataFromWordPress"
  ])
{
  combinedWordPressAndMailchimpUserData: _arrayInnerJoinJSONObjectProperties(
    source: $mailchimpUserData,
    target: $wordpressUserData,
    index: "email_address"
  )
}

Dan definisikan dalam wp-config.php:

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