π¨π»βπ« GraphQL query Π΄Π»Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ ΠΏΠΎΠ΄ΠΏΠΈΡΡΠΈΠΊΠΎΠ² ΡΠ°ΡΡΡΠ»ΠΊΠΈ ΠΈΠ· InstaWP Π² Mailchimp
(ΠΡΠΎΡΠΈΡΠ°ΠΉΡΠ΅ Π·Π°ΠΏΠΈΡΡ Π±Π»ΠΎΠ³Π° π ΠΠ²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠ°Ρ ΠΎΡΠΏΡΠ°Π²ΠΊΠ° ΠΏΠΎΠ΄ΠΏΠΈΡΡΠΈΠΊΠΎΠ² ΡΠ°ΡΡΡΠ»ΠΊΠΈ ΠΈΠ· InstaWP Π² Mailchimp, ΡΡΠΎΠ±Ρ ΡΠ²ΠΈΠ΄Π΅ΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ ΡΡΠΎΠ³ΠΎ Π·Π°ΠΏΡΠΎΡΠ°.)
ΠΡΠΎΡ GraphQL query Π·Π°Ρ Π²Π°ΡΡΠ²Π°Π΅Ρ email ΠΏΠΎΡΠ΅ΡΠΈΡΠ΅Π»Π΅ΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΡΡΠ°Π²ΠΈΠ»ΠΈ Π³Π°Π»ΠΎΡΠΊΡ Β«Subscribe to mailing listΒ» Π² InstaWP (ΠΏΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ Π½ΠΎΠ²ΠΎΠ³ΠΎ sandbox-ΡΠ°ΠΉΡΠ°), ΠΈ ΠΏΠΎΠ΄ΠΏΠΈΡΡΠ²Π°Π΅Ρ ΡΡΠΎΡ email Π½Π° ΡΠΏΠΈΡΠΎΠΊ Mailchimp:
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 MaybeCreateContactOnMailchimp
@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
mailchimpListMembersJSONObject: _sendJSONObjectItemHTTPRequest(input: {
url: "https://us7.api.mailchimp.com/3.0/lists/{listCode}/members",
method: POST,
options: {
auth: {
username: $__mailchimpUsername,
password: $__mailchimpPassword
},
json: {
email_address: $__subscriberEmail,
status: "subscribed"
}
}
})
}ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΏΠΎΠ΄ΠΏΠΈΡΡΠΈΠΊΠΎΠ² Π² Π²Π°ΡΠ΅ΠΌ ΠΏΠ»Π°Π³ΠΈΠ½Π΅ ΡΠ°ΡΡΡΠ»ΠΊΠΈ Π΄Π»Ρ WordPress (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Noptin ΠΈΠ»ΠΈ Π΄ΡΡΠ³ΠΎΠΌ).
ΠΠ°Π²Π°ΠΉΡΠ΅ ΡΠ°Π·Π±Π΅ΡΡΠΌ, ΠΊΠ°ΠΊ ΡΡΠΎΡ GraphQL query Π΄Π΅Π»Π°Π΅Ρ ΡΠ²ΠΎΡ Π΄Π΅Π»ΠΎ.
Π Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ GraphQL query Π½Π° Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΡΠ΅ Π΅Π΄ΠΈΠ½ΠΈΡΡ
GraphQL-Π΄ΠΎΠΊΡΠΌΠ΅Π½Ρ ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ (queries ΠΈ mutations), Π½ΠΎ Π²ΡΠΏΠΎΠ»Π½Π΅Π½Π° Π±ΡΠ΄Π΅Ρ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄Π½Π° ΠΈΠ· Π½ΠΈΡ
. ΠΡΠΆΠ½ΡΡ ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΠΌ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° ?operationName=... Π² GraphQL-ΡΠ½Π΄ΠΏΠΎΠΈΠ½ΡΠ΅; Π² ΠΏΡΠΎΡΠΈΠ²Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π±ΡΠ΄Π΅Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½Π° ΠΏΠΎΡΠ»Π΅Π΄Π½ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ.
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ Π² ΠΏΡΠΈΠ²Π΅Π΄ΡΠ½Π½ΠΎΠΌ Π²ΡΡΠ΅ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ΅ Π΅ΡΡΡ 2 ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ query:
HasSubscribedToNewsletterMaybeCreateContactOnMailchimp
URL Π²Π΅Π±Ρ
ΡΠΊΠ° ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ?operationName=MaybeCreateContactOnMailchimp, ΠΏΠΎΡΡΠΎΠΌΡ ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΡΠ° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ Π±ΡΠ΄Π΅Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½Π°.
ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΡ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ Multiple Query Execution MaybeCreateContactOnMailchimp ΡΠ½Π°ΡΠ°Π»Π° Π²ΡΠΏΠΎΠ»Π½ΠΈΡ HasSubscribedToNewsletter, ΠΊΠ°ΠΊ ΡΠΊΠ°Π·Π°Π½ΠΎ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²ΠΎΠΉ @depends:
query MaybeCreateContactOnMailchimp
@depends(on: "HasSubscribedToNewsletter")
# ...
{
#
}ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, MaybeCreateContactOnMailchimp Π±ΡΠ΄Π΅Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½Π° ΡΡΠ»ΠΎΠ²Π½ΠΎ β ΡΠΎΠ»ΡΠΊΠΎ Π΅ΡΠ»ΠΈ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ $subscribedToNewsletter ΡΠ°Π²Π½ΠΎ true:
query MaybeCreateContactOnMailchimp
@depends(on: "HasSubscribedToNewsletter")
@include(if: $subscribedToNewsletter)
{
#
}$subscribedToNewsletter β ΡΡΠΎ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠ°Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ, ΡΠΊΡΠΏΠΎΡΡΠΈΡΠΎΠ²Π°Π½Π½Π°Ρ Π²Π½ΡΡΡΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ HasSubscribedToNewsletter:
query HasSubscribedToNewsletter {
# ...
subscribedToNewsletter: _and(values: [$__hasSubscriberOptIn, $__isNotSubscriberOptInNAValue])
@export(as: "subscribedToNewsletter")
}Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ MaybeCreateContactOnMailchimp Π±ΡΠ΄Π΅Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½Π° ΡΠΎΠ»ΡΠΊΠΎ ΡΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΏΠΎΡΡΠ°Π²ΠΈΠ» Π³Π°Π»ΠΎΡΠΊΡ Β«Subscribe to mailing listΒ».
ΠΡΡΠΈΡΠ»Π΅Π½ΠΈΠ΅ ΡΠΎΠ³ΠΎ, ΠΏΠΎΡΡΠ°Π²ΠΈΠ» Π»ΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π³Π°Π»ΠΎΡΠΊΡ
ΠΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ ΠΏΠΎ Π²Π΅Π±Ρ ΡΠΊΡ InstaWP ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ, ΡΡΠΎ Π΄Π°Π½Π½ΡΠ΅ payload ΡΠΎΠ΄Π΅ΡΠΆΠ°Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΠΏΠΎΠ»Ρ (ΡΡΠ΅Π΄ΠΈ ΠΏΡΠΎΡΠΈΡ ):
marketing_optin: Π£ΠΊΠ°Π·ΡΠ²Π°Π΅Ρ, ΠΏΠΎΡΡΠ°Π²ΠΈΠ» Π»ΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π³Π°Π»ΠΎΡΠΊΡemail: Email ΠΏΠΎΡΠ΅ΡΠΈΡΠ΅Π»Ρ
ΠΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ Π»ΠΈΡΡ ΠΏΠΎΡΡΠ½ΡΠ΅Ρ, ΡΡΠΎ ΠΏΠΎΠ»Π΅ marketing_optin ΠΈΠΌΠ΅Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ NA, ΠΊΠΎΠ³Π΄Π° Π³Π°Π»ΠΎΡΠΊΠ° Π½Π΅ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π°, ΠΏΠΎΡΡΠΎΠΌΡ Π½Π°ΠΌ ΠΏΡΠΈΠ΄ΡΡΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ ΡΡΠΈΠΌ.
Π§ΡΠΎΠ±Ρ Π²ΡΡΡΠ½ΠΈΡΡ, ΠΏΠΎΡΡΠ°Π²ΠΈΠ» Π»ΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π³Π°Π»ΠΎΡΠΊΡ, Π»ΠΎΠ³ΠΈΠΊΠ° ΡΠ°ΠΊΠΎΠ²Π°:
- ΠΡΠΎΠ²Π΅ΡΠΈΡΡ, ΠΏΡΠΈΡΡΡΡΡΠ²ΡΠ΅Ρ Π»ΠΈ ΠΏΠΎΠ»Π΅
marketing_optin, ΠΈ - ΠΡΠΎΠ²Π΅ΡΠΈΡΡ, ΡΡΠΎ Π΅Π³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π½Π΅ ΡΠ°Π²Π½ΠΎ
NA
ΠΡΠΎ Π²ΡΡΠΈΡΠ»ΡΠ΅ΡΡΡ Π² ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ HasSubscribedToNewsletter. ΠΠΎΡ ΠΎΠ½Π° Ρ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΡΠΌΠΈ, ΠΎΠ±ΡΡΡΠ½ΡΡΡΠΈΠΌΠΈ, ΡΡΠΎ Π΄Π΅Π»Π°Π΅Ρ ΠΊΠ°ΠΆΠ΄Π°Ρ ΡΡΡΠΎΠΊΠ° query:
query HasSubscribedToNewsletter {
# Check if field `marketing_optin` is present
hasSubscriberOptIn: _httpRequestHasParam(name: "marketing_optin")
# Get the value of field `marketing_optin`
subscriberOptIn: _httpRequestStringParam(name: "marketing_optin")
# Check if the value of the field is not "NA"
isNotSubscriberOptInNAValue: _notEquals(value1: $__subscriberOptIn, value2: "NA")
# Perform an AND operation: field present && value != "NA"
subscribedToNewsletter: _and(values: [$__hasSubscriberOptIn, $__isNotSubscriberOptInNAValue])
# Export the result under dynamic variable $subscribedToNewsletter
@export(as: "subscribedToNewsletter")
}Π ΡΡΠΎΠΌ query Π΅ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΡΡ Π²Π΅ΡΠ΅ΠΉ.
Global Fields
ΠΡ Π·Π°ΠΌΠ΅ΡΠΈΠ»ΠΈ ΠΏΠΎΠ»Ρ, Π½Π°ΡΠΈΠ½Π°ΡΡΠΈΠ΅ΡΡ Ρ _? Π ΠΈΠΌΠ΅Π½Π½ΠΎ:
_httpRequestHasParam_httpRequestStringParam_notEquals_and
ΠΡΠΎ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΡΠ΅ ΠΏΠΎΠ»Ρ β ΠΏΠΎΠ»Ρ, Π΄ΠΎΡΡΡΠΏΠ½ΡΠ΅ Π²ΠΎ Π²ΡΠ΅Ρ
ΡΠΈΠΏΠ°Ρ
ΡΡ
Π΅ΠΌΡ GraphQL. ΠΠ»ΠΎΠ±Π°Π»ΡΠ½ΡΠ΅ ΠΏΠΎΠ»Ρ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ, Π° Π½Π΅ Π΄Π°Π½Π½ΡΠ΅, ΠΈ ΠΏΠΎ ΡΠΎΠ³Π»Π°ΡΠ΅Π½ΠΈΡ Π½Π°ΡΠΈΠ½Π°ΡΡΡΡ Ρ _.
Field to Input
ΠΡ Π·Π°ΠΌΠ΅ΡΠΈΠ»ΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅, Π½Π°ΡΠΈΠ½Π°ΡΡΠΈΠ΅ΡΡ Ρ $__? Π ΠΈΠΌΠ΅Π½Π½ΠΎ:
$__subscriberOptIn$__hasSubscriberOptIn$__isNotSubscriberOptInNAValue
ΠΡΠΎ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠΈΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ»Ρ, ΠΎΠ±ΡΡΠ²Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΏΠ΅ΡΠ΅Π΄ Π½ΠΈΠΌΠΈ Π² ΡΠ°ΠΌΠΊΠ°Ρ
ΡΠΎΠΉ ΠΆΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ $__subscriberOptIn ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ»Ρ subscriberOptIn, ΠΎΠ±ΡΡΠ²Π»Π΅Π½Π½ΠΎΠ³ΠΎ Π²ΡΡΠ΅.
ΠΡΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅ΠΌΠ°Ρ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ΠΌ Field to Input, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π²ΡΠ²ΠΎΠ΄ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ»Ρ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π²Ρ ΠΎΠ΄Π½ΡΡ Π΄Π°Π½Π½ΡΡ Π΄Π»Ρ Π΄ΡΡΠ³ΠΎΠ³ΠΎ ΠΏΠΎΠ»Ρ. ΠΠΌΠ΅Π½Π½ΠΎ ΡΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ Π²Π½ΡΡΡΠΈ GraphQL query.
Π query ΠΏΠΎΠ»Π΅ isNotSubscriberOptInNAValue ΠΏΡΠΎΠ²Π΅ΡΡΠ΅Ρ, ΡΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠ°Π½Π΅Π΅ Π·Π°ΠΏΡΠΎΡΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ»Ρ subscriberOptIn Π½Π΅ ΡΠ°Π²Π½ΠΎ "NA", Π° subscribedToNewsletter Π²ΡΡΠΈΡΠ»ΡΠ΅Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ AND, Π²ΠΊΠ»ΡΡΠ°ΡΡΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΠΎΠ»Π΅ΠΉ hasSubscriberOptIn ΠΈ isNotSubscriberOptInNAValue.
ΠΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΊ Mailchimp
ΠΠΏΠ΅ΡΠ°ΡΠΈΡ MaybeCreateContactOnMailchimp ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π»ΠΎΠ³ΠΈΠΊΡ Π΄Π»Ρ ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ
ΠΈΠ· payload ΠΈ Π²ΡΠ·ΠΎΠ²Π° API Mailchimp Π΄Π»Ρ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ email Π² ΡΠΏΠΈΡΠΎΠΊ ΡΠ°ΡΡΡΠ»ΠΊΠΈ.
ΠΠΎΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ Ρ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΡΠΌΠΈ, ΠΎΠ±ΡΡΡΠ½ΡΡΡΠΈΠΌΠΈ, ΡΡΠΎ Π΄Π΅Π»Π°Π΅Ρ ΠΊΠ°ΠΆΠ΄Π°Ρ ΡΡΡΠΎΠΊΠ°:
query MaybeCreateContactOnMailchimp
@depends(on: "HasSubscribedToNewsletter")
@include(if: $subscribedToNewsletter)
{
# Extract form field `email` from the body of the request
subscriberEmail: _httpRequestStringParam(name: "email")
# Obtain Mailchimp credentials, defined in wp-config.php
mailchimpUsername: _env(name: "MAILCHIMP_API_CREDENTIALS_USERNAME")
# Do not print the credentials in the response
@remove
mailchimpPassword: _env(name: "MAILCHIMP_API_CREDENTIALS_PASSWORD")
@remove
# Connect to Mailchimp to add a new member to the list
mailchimpListMembersJSONObject: _sendJSONObjectItemHTTPRequest(input: {
url: "https://us7.api.mailchimp.com/3.0/lists/{listCode}/members",
method: POST,
options: {
# Provide credentials to connect to the API
auth: {
username: $__mailchimpUsername,
password: $__mailchimpPassword
},
# Provide form data
json: {
email_address: $__subscriberEmail,
status: "subscribed"
}
}
})
}Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ Π² ΡΡΠΎΠΌ query.
ΠΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ
ΠΠ°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈΡΡ Π½Π°ΡΠΈ ΡΡΡΡΠ½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΠΏΡΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠΈ ΠΊ API Mailchimp. ΠΠ΄Π½Π°ΠΊΠΎ ΠΌΡ Π½Π΅ Ρ ΠΎΡΠΈΠΌ Π²Π²ΠΎΠ΄ΠΈΡΡ ΠΈΡ Π½Π°ΠΏΡΡΠΌΡΡ Π² GraphQL query, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡΡ Π³Π΄Π΅-ΡΠΎ ΡΡΠ΅ΡΡ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΌΠΎΠ³ΡΡ ΠΏΠΎΠΏΠ°ΡΡΡ Π² ΠΊΠ°ΠΊΠΎΠΉ-Π½ΠΈΠ±ΡΠ΄Ρ Π»ΠΎΠ³).
ΠΠΌΠ΅Π½Π½ΠΎ ΠΏΠΎΡΡΠΎΠΌΡ ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΠΎΠ΅ ΠΏΠΎΠ»Π΅ _env (ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅ΠΌΠΎΠ΅ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ΠΌ PHP Constants and Environment via Schema) Π΄Π»Ρ ΡΡΠ΅Π½ΠΈΡ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡ ΠΈΠ»ΠΈ PHP-ΠΊΠΎΠ½ΡΡΠ°Π½ΡΡ, Π²ΠΌΠ΅ΡΡΠ΅ Ρ Π΄ΠΈΡΠ΅ΠΊΡΠΈΠ²ΠΎΠΉ @remove (ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅ΠΌΠΎΠΉ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ΠΌ Field Response Removal), ΡΡΠΎΠ±Ρ Π½Π΅ Π²ΡΠ²ΠΎΠ΄ΠΈΡΡ ΡΡΡΡΠ½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ Π² ΠΎΡΠ²Π΅ΡΠ΅.
Π’Π΅ΠΏΠ΅ΡΡ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΎΠ±ΡΡΠ²ΠΈΡΡ Π½Π°ΡΠΈ ΡΡΡΡΠ½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ Π² wp-config.php:
define( 'MAILCHIMP_API_CREDENTIALS_USERNAME', '{ username }' );
define( 'MAILCHIMP_API_CREDENTIALS_PASSWORD', '{ password }' );ΠΡΠΏΡΠ°Π²ΠΊΠ° HTTP-Π·Π°ΠΏΡΠΎΡΠ° Π² Mailchimp
ΠΠΎΡΠ»Π΅Π΄Π½Π΅ΠΉ ΡΠ°ΡΡΡΡ Π»ΠΎΠ³ΠΈΠΊΠΈ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΠΎΠ»Π΅ _sendJSONObjectItemHTTPRequest, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ HTTP-Π·Π°ΠΏΡΠΎΡ ΠΊ Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠΌΡ ΡΠ΅ΡΠ²ΠΈΡΡ.
ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΌΡ Ρ
ΠΎΡΠΈΠΌ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡΡΡ ΠΊ API Mailchimp, ΠΏΠΎΠ»Π΅ mailchimpListMembersJSONObject ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π΄Π°Π½Π½ΡΠ΅, Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΡΠ΅ Π΄Π»Ρ REST API-ΡΠ½Π΄ΠΏΠΎΠΈΠ½ΡΠ° Mailchimp, ΠΊΠ°ΠΊ ΡΠΊΠ°Π·Π°Π½ΠΎ Π² Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ ΠΏΠΎ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ ΡΡΠ°ΡΡΠ½ΠΈΠΊΠ° Π² ΡΠΏΠΈΡΠΎΠΊ Mailchimp:
- ΠΡΠΏΡΠ°Π²ΠΈΡΡ Π·Π°ΠΏΡΠΎΡ
POST - ΠΠ½Π΄ΠΏΠΎΠΈΠ½Ρ:
https://{subdomain}.api.mailchimp.com/3.0/lists/{listCode}/members - Π’Π΅Π»ΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π²ΠΊΠ»ΡΡΠ°ΡΡ ΠΏΠΎΠ»Ρ
email_addressΠΈstatus
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π²Π΅Π±Ρ ΡΠΊΠ° Π΄Π»Ρ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ Ρ Π»ΡΠ±ΡΠΌ API
GraphQL query Π² ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΠΏΠ΅ΡΠ΅ΡΡΠ»Π°Π΅Ρ Π΄Π°Π½Π½ΡΠ΅ ΠΈΠ· InstaWP Π² Mailchimp.
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΡ ΡΡ ΠΆΠ΅ ΠΈΠ΄Π΅Ρ Π΄Π»Ρ Π»ΡΠ±ΠΎΠΉ Π½ΡΠΆΠ½ΠΎΠΉ Π²Π°ΠΌ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΠΈ: ΠΈΠ·Π²Π»Π΅ΠΊΠ°Ρ Π΄Π°Π½Π½ΡΠ΅ ΠΈΠ· ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Π»ΠΈΠ±ΠΎ ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠ΅ΡΠ²ΠΈΡΠ° (Π»ΡΠ±ΠΎΠ³ΠΎ), Π°Π΄Π°ΠΏΡΠΈΡΡΡ ΠΈΡ ΠΈ ΠΎΡΠΏΡΠ°Π²Π»ΡΡ Π² ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ ΡΠ΅Π»Π΅Π²ΠΎΠΉ ΡΠ΅ΡΠ²ΠΈΡ (Π»ΡΠ±ΠΎΠΉ).
Π£Π΄Π°ΡΠΈ!