Biblioteka queriesKorelowanie danych użytkowników z WordPress i Mailchimp
Korelowanie danych użytkowników z WordPress i Mailchimp
To query łączy dane użytkowników z lokalnej witryny WordPress z danymi tych samych użytkowników w Mailchimp, używając adresu e-mail użytkownika jako wspólnego identyfikatora między obydwoma systemami.
Wynikiem będą dane email, name i lastname użytkowników pochodzące z WordPress, wzbogacone o pole location z 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"
)
}I zdefiniuj w wp-config.php:
define( 'MAILCHIMP_API_CREDENTIALS_USERNAME', '{ username }' );
define( 'MAILCHIMP_API_CREDENTIALS_PASSWORD', '{ password }' );