Bibliothèque de queriesCroiser les données utilisateurs de WordPress et Mailchimp
Croiser les données utilisateurs de WordPress et Mailchimp
Cette requête combine les données utilisateurs du site WordPress local avec les données de ces mêmes utilisateurs provenant de Mailchimp, en utilisant l'adresse e-mail de l'utilisateur comme identifiant commun entre les deux systèmes.
Le résultat sera les données utilisateurs email, name et lastname provenant de WordPress, enrichies avec le champ location provenant de 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"
)
}Et définissez dans wp-config.php :
define( 'MAILCHIMP_API_CREDENTIALS_USERNAME', '{ username }' );
define( 'MAILCHIMP_API_CREDENTIALS_PASSWORD', '{ password }' );