Thư viện Queries
Thư viện QueriesTương quan dữ liệu người dùng từ WordPress và Mailchimp

Tương quan dữ liệu người dùng từ WordPress và Mailchimp

Query này kết hợp dữ liệu người dùng từ trang WordPress cục bộ với dữ liệu của những người dùng đó từ Mailchimp, sử dụng địa chỉ email của người dùng làm định danh chung giữa hai hệ thống.

Kết quả sẽ là dữ liệu người dùng email, namelastname đến từ WordPress, được bổ sung thêm trường location từ 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"
  )
}

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

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