aelvan / mailchimp-subscribe
用于订阅 MailChimp 听众的简单 Craft 插件。
Requires
- php: ^8.0
- craftcms/cms: ^4.0.0
- guzzlehttp/guzzle: ^6.5.5|^7.2.0
- illuminate/support: ^8.0|^9.0
This package is auto-updated.
Last update: 2023-11-28 20:51:12 UTC
README
自从它问世以来已有九年(在插件年数中,这相当于108个人年),现在是时候让这个插件退休了。我已创建了一个 Craft 4 版本以简化过渡,但将不再进行开发,也不会提供支持。现在是时候开始寻找/创建替代方案了。
Craft CMS 4.x 的 Mailchimp Subscribe 插件
为 Craft 的 Mailchimp Subscribe 是一个用于处理 Mailchimp 听众的插件。
要求
此插件需要 Craft CMS 4.0.0 或更高版本。
更新说明
从 3.x 版本升级到 4.x 版本
这是一个最低限度的 Craft 4 升级,没有变化。
从 2.x 版本升级到 3.x 版本
太多,请参阅更改日志以获取信息。
从 1.x 版本(Craft 2)升级到 2.x 版本(Craft 3)
- 插件不再可以通过控制面板进行配置,您需要使用配置文件。
- 动作输入中使用的插件处理程序已从
mailchimpSubscribe
更改为mailchimp-subscribe
。 - 重定向 URL 现在需要在重定向输入中进行哈希处理。
安装
要安装插件,可以从插件商店安装,或按照以下说明进行操作
- 通过在项目目录中使用
composer require aelvan/mailchimp-subscribe
通过 composer 安装。 - 在 Craft 控制面板的“设置”→“插件”下安装插件,或通过命令行使用
./craft install/plugin mailchimp-subscribe
安装。 - 吃一个香蕉,继续阅读!
配置
必须通过在您的 Craft 配置文件夹(通常为 /config
)中创建一个名为 mailchimp-subscribe.php
的文件来配置 Mailchimp Subscribe,并根据需要配置设置。
apiKey [字符串]
默认值: ''
您的 Mailchimp 账户的 API 密钥。此设置是必需的。
audienceId [字符串]
默认值: ''
您希望用户订阅的默认听众 ID。您也可以通过在表单中提交此内容来配置 audienceID(见下文)。
doubleOptIn [布尔值]
默认值: true
表示在订阅时是否应使用双确认订阅。如果启用,用户在添加到受众之前将收到一封确认订阅的电子邮件。
示例配置文件
<?php
return [
'apiKey' => 'xxxxxxxxxxxxxxxxxxx-us2',
'audienceId' => '7fw6eq98ca',
'doubleOptIn' => true,
];
插件配置还支持根据每个站点使用不同的设置。这与Craft的一般配置类似
<?php
return [
'apiKey' => [
'siteHandleA' => 'xxxxxxxxxxxxxxxxxxx-us2',
'siteHandleB' => 'xxxxxxxxxxxxxxxxxxx-us2',
],
'audienceId' => [
'siteHandleA' => '7fw6eq98ca',
'siteHandleB' => '3fa8ew9fce',
],
'doubleOptIn' => [
'siteHandleA' => true,
'siteHandleB' => false,
],
];
用法
Mailchimp Subscribe 允许您订阅、退订和从/到 Mailchimp 受众中删除成员。
将成员订阅到受众
在最简单的形式中,您可以通过只有一个电子邮件输入字段的简单表单来订阅用户
<form class="newsletter-form" action="" method="post">
{{ csrfInput() }}
<input type="hidden" name="action" value="mailchimp-subscribe/audience/subscribe">
{% set subscribeResponse = mailchimpSubscribe is defined and mailchimpSubscribe.action == 'subscribe' ? mailchimpSubscribe : null %}
{% if subscribeResponse %}
{% if subscribeResponse.success %}
<p>Subscribed successfully!</p>
{% else %}
<p>An error occured: {{ subscribeResponse.message }}</p>
{% endif %}
{% endif %}
<div>
<label for="emailInput"{% if subscribeResponse and subscribeResponse.errorCode=='1000' %} class="error"{% endif %}>
Email:
</label>
<input id="emailInput" type="text" name="email"
{% if subscribeResponse and not subscribeResponse.success %}value="{{ subscribeResponse.values.email ?? '' }}"{% endif %}/>
</div>
<input type="submit" name="" value="Subscribe"/>
</form>
如果您想在成功后重定向用户,您可以提供重定向参数(就像在任何craft前端表单中做的那样)。您还可以直接从表单中设置或覆盖 audienceId
<form class="newsletter-form" action="" method="post">
{{ csrfInput() }}
{{ redirectInput('thankyou') }}
<input type="hidden" name="action" value="mailchimp-subscribe/audience/subscribe">
<input type="hidden" name="audienceId" value="1fr4ew09qv">
{% set subscribeResponse = mailchimpSubscribe is defined and mailchimpSubscribe.action == 'subscribe' ? mailchimpSubscribe : null %}
{% if subscribeResponse %}
{% if not subscribeResponse.success %}
<p>An error occured: {{ subscribeResponse.message }}</p>
{% endif %}
{% endif %}
<div>
<label for="emailInput"{% if subscribeResponse and subscribeResponse.errorCode=='1000' %} class="error"{% endif %}>
Email:
</label>
<input id="emailInput" type="text" name="email"
{% if subscribeResponse and not subscribeResponse.success %}value="{{ subscribeResponse.values.email ?? '' }}"{% endif %}/>
</div>
<input type="submit" name="" value="Subscribe"/>
</form>
您还可以根据Mailchimp API 文档设置或覆盖 email_type
、merge_fields
、interests
、language
、vip
、marketing_permissions
和 tags
以下示例显示了所有选项的应用 - 显然,您应该根据您的需求进行修改
<form class="newsletter-form" action="" method="post">
{{ csrfInput() }}
{{ redirectInput('thankyou') }}
<input type="hidden" name="action" value="mailchimp-subscribe/audience/subscribe">
<input type="hidden" name="audienceId" value="2a34d0978q">
<input type="hidden" name="email_type" value="text">
<input type="hidden" name="language" value="no">
<input type="hidden" name="vip" value="yes">
{% set subscribeResponse = mailchimpSubscribe is defined and mailchimpSubscribe.action == 'subscribe' ? mailchimpSubscribe : null %}
{% if subscribeResponse %}
{% if not subscribeResponse.success %}
<p>An error occured: {{ subscribeResponse.message }}</p>
{% endif %}
{% endif %}
<div>
<label for="emailInput"{% if subscribeResponse and subscribeResponse.errorCode=='1000' %} class="error"{% endif %}>
Email:
</label>
<input id="emailInput" type="text" name="email"
{% if subscribeResponse and not subscribeResponse.success %}value="{{ subscribeResponse.values.email ?? '' }}"{% endif %}/>
</div>
<div>
<label for="firstNameInput">First name:</label>
<input id="firstNameInput" type="text" name="merge_fields[FNAME]"
{% if subscribeResponse and not subscribeResponse.success %}value="{{ subscribeResponse.values.FNAME ?? '' }}"{% endif %}/>
</div>
<div>
<label for="lastNameInput">Last name:</label>
<input id="lastNameInput" type="text" name="merge_fields[LNAME]"
{% if subscribeResponse and not subscribeResponse.success %}value="{{ subscribeResponse.values.LNAME ?? '' }}"{% endif %}/>
</div>
<div>
<h4>Marketing permissions</h4>
<input type="hidden" name="marketing_permissions" value="">
<input type="checkbox" value="1c862d81f1" name="marketing_permissions[]">Weekly newsletter<br>
<input type="checkbox" value="46712a192a" name="marketing_permissions[]">Special offers<br>
<input type="checkbox" value="46acfd7a2b" name="marketing_permissions[]">Special offers from partners<br>
</div>
<div>
<h4>Tags</h4>
<input type="hidden" value="" name="tags">
<input type="checkbox" value="One tag" name="tags[]">One tag<br>
<input type="checkbox" value="Two tag" name="tags[]">Two tag<br>
<input type="checkbox" value="Three tag" name="tags[]">Three tag<br>
</div>
{% set interestGroups = craft.mailchimpSubscribe.getInterestGroups('2a34d0978q') %}
{% if interestGroups and (interestGroups | length > 0) %}
{% for group in interestGroups %}
<div>
<h4>{{ group.title }}</h4>
<input type="hidden" value="" name="interests[{{ group.title }}]">
{% if group.type=='checkboxes' %}
{% for interest in group.interests %}
<input type="checkbox" value="{{ interest.id }}" name="interests[{{ group.title }}][]">{{ interest.name }}<br>
{% endfor %}
{% endif %}
{% if group.type=='radio' %}
{% for interest in group.interests %}
<input type="radio" value="{{ interest.id }}" name="interests[{{ group.title }}][]">{{ interest.name }}<br>
{% endfor %}
{% endif %}
{% if group.type=='dropdown' %}
<select name="interests[{{ group.title }}][]">
{% for interest in group.interests %}
<option value="{{ interest.id }}">{{ interest.name }}</option>
{% endfor %}
</select>
{% endif %}
</div>
{% endfor %}
{% endif %}
<br>
<input type="submit" name="" value="Subscribe"/>
</form>
请注意
-
您可以使用模板变量
getInterestGroups
获取与列表关联的兴趣组,如示例中所示。Mailchimp 允许您创建不同类型的组,复选框、单选按钮、下拉菜单等,但它实际上并没有限制添加功能仅限于基于类型的组。您必须根据组类型来执行此操作。 -
如果您想覆盖/重置任何现有的标签和营销权限,请确保您添加了上面显示的隐藏输入。如果只想追加标签,则省略它。
-
有关营销权限的更多信息,请参阅下面的 GDPR 部分。
-
如果您提交的电子邮件地址已订阅您的受众,则不会收到错误消息 - 这是预期的行为。如果您想检查电子邮件是否已在您的受众中,可以使用模板变量
craft.mailchimpSubscribe.getMemberByEmail
或控制器操作mailchimp-subscribe/audience/get-member-by-email
,并检查响应是否为null
或成员的状态。
从受众中退订成员
您可以通过提交电子邮件地址到退订控制器操作来订阅用户
<form class="newsletter-form" action="" method="post">
{{ csrfInput() }}
<input type="hidden" name="action" value="mailchimp-subscribe/audience/unsubscribe">
{% set unsubscribeResponse = mailchimpSubscribe is defined and mailchimpSubscribe.action == 'unsubscribe' ? mailchimpSubscribe : null %}
{% if unsubscribeResponse %}
{% if unsubscribeResponse.success %}
<p>Unsubscribed successfully!</p>
{% else %}
<p>An error occured: {{ unsubscribeResponse.message }}</p>
{% endif %}
{% endif %}
<div class="field-line">
<label for="emailInput"{% if unsubscribeResponse and unsubscribeResponse.errorCode=='1000' %} class="error"{% endif %}>
Email:
</label>
<input id="emailInput" type="text" name="email"
{% if unsubscribeResponse and not unsubscribeResponse.success %}value="{{ unsubscribeResponse.values.email ?? '' }}"{% endif %}/>
</div>
<input type="submit" name="" value="Unsubscribe"/>
</form>
从受众中删除成员
您可以通过提交电子邮件地址到退订控制器操作来删除用户
<form class="newsletter-form" action="" method="post">
{{ csrfInput() }}
<input type="hidden" name="action" value="mailchimp-subscribe/audience/delete">
{% set deleteResponse = mailchimpSubscribe is defined and mailchimpSubscribe.action == 'delete' ? mailchimpSubscribe : null %}
{% if deleteResponse %}
{% if deleteResponse.success %}
<p>Deleted successfully!</p>
{% else %}
<p>An error occured: {{ deleteResponse.message }}</p>
{% endif %}
{% endif %}
<div>
<label for="emailInput"{% if deleteResponse and deleteResponse.errorCode=='1000' %} class="error"{% endif %}>
Email:
</label>
<input id="emailInput" type="text" name="email"
{% if deleteResponse and not deleteResponse.success %}value="{{ deleteResponse.values.email ?? '' }}"{% endif %}/>
</div>
<div>
<label><input type="checkbox" name="permanent"/> Permanent</label>
</div>
<input type="submit" name="" value="Delete"/>
</form>
permanent
参数是可选的,当启用时,它创建一个永久/硬删除。
退订、删除和永久/硬删除之间的差异
当从受众中退订用户时,该成员的状态被设置为 unsubscribed
。所有关于该成员的信息都将保留在 Mailchimp 中,数据可以查询,您可以在 Mailchimp 控制面板中查看它,以后可以将其状态更改为 subscribed
。
当(软)删除用户时,它与退订基本上相同,除了成员将有一个空的状态,不会在 Mailchimp 控制面板中可见。
当永久(硬)删除用户时,与该成员相关的所有可识别的个人信息均被删除,并且成员将从观众中移除。这是在请求下删除成员的GDPR合规方式。这将使得以后无法重新导入或重新订阅该成员,成员只能通过Mailchimp托管、GDPR合规的订阅表单重新订阅。
获取成员或观众信息
如果您需要获取成员或观众的信息,可以使用模板变量craft.mailchimpSubscribe.getMemberByEmail
和craft.mailchimpSubscribe.getAudienceById
,或者相应的控制器操作mailchimp-subscribe/audience/get-member-by-email
和mailchimp-subscribe/audience/get-audience-by-id
(见下文文档)。
返回的数据包含所有来自Mailchimp API的信息,如成员和观众的API文档所述。
在Mailchimp Subscribe的先前版本中,有模板变量checkIfInList
和checkIfSubscribed
。这些现在已被弃用,您应该获取成员信息并检查成员的状态
。
GDPR和营销权限
在撰写本文(2019年6月)时,是否通过API订阅被视为Mailchimp的GDPR合规尚不清楚,因此,如果您为欧盟客户提供服务,最安全的方式可能是假设不合规,并使用他们托管的表单。
尽管如此,API支持更新营销权限,因此请随意实验。目前创建和编辑营销权限的唯一方法是创建一个GDPR启用的观众的新注册表单,并编辑附加的“营销权限”块。要在您自己的表单中创建输入复选框,您需要获取每个权限的ID。目前获取权限ID的唯一方法是获取已订阅列表的成员的信息。因此,先订阅一个用户,然后执行(仅在devMode
启用时dump
可用)
{{ dump(craft.mailchimpSubscribe.getMarketingPermissionsByEmail('myemail@domain.com')) }}
这将输出一个包含营销权限的数组,其中重要部分是您需要添加到表单中的marketing_permission_id
:
...
<input type="hidden" name="marketing_permissions" value="">
<input type="checkbox" value="1c862d81f1" name="marketing_permissions[]">Weekly newsletter<br>
<input type="checkbox" value="46712a192a" name="marketing_permissions[]">Special offers<br>
<input type="checkbox" value="46acfd7a2b" name="marketing_permissions[]">Special offers from partners<br>
...
再次强调,请确保您的表单实际上是GDPR合规的,并且不要责怪我。
事件
有多个事件可以触发您触发自定义代码的能力。目前我们有订阅、取消订阅和删除动作发生时的事件。所有事件都应该使用MailchimpSubscribeService类来监听,以下是一些示例
onAfterSubscribe
onAfterSubscribe事件会在成功订阅动作发生时触发。SubscribeEvent类将包含以下属性
- (string) email
- (string) audienceId
use aelvan\mailchimpsubscribe\events\SubscribeEvent; use aelvan\mailchimpsubscribe\services\MailchimpSubscribeService; Event::on( MailchimpSubscribeService::class, MailchimpSubscribeService::EVENT_AFTER_SUBSCRIBE, function (SubscribeEvent $event) { // custom logic } );
onAfterUnsubscribe
onAfterSubscribe事件会在成功取消订阅动作发生时触发。UnsubscribeEvent类将包含以下属性
- (string) email
- (string) audienceId
use aelvan\mailchimpsubscribe\events\UnsubscribeEvent; use aelvan\mailchimpsubscribe\services\MailchimpSubscribeService; Event::on( MailchimpSubscribeService::class, MailchimpSubscribeService::EVENT_AFTER_UNSUBSCRIBE, function (UnsubscribeEvent $event) { // custom logic } );
onAfterDelete
onAfterDelete事件会在成功删除动作发生时触发。DeleteEvent类将包含以下属性
- (string) email
- (string) audienceId
- (bool) permanent
use aelvan\mailchimpsubscribe\events\DeleteEvent; use aelvan\mailchimpsubscribe\services\MailchimpSubscribeService; Event::on( MailchimpSubscribeService::class, MailchimpSubscribeService::EVENT_AFTER_DELETE, function (DeleteEvent $event) { // custom logic } );
控制器操作
所有控制器操作
- 需要
POST
,请确保在请求中添加CSRF令牌。 - 如果请求是AJAX请求/具有正确的头信息,则返回JSON。
- 如果发生错误,或者在没有重定向的情况下返回到相同的模板,则模板中将可用名为
mailchimpSubscribe
的变量(参见上面的示例)。
mailchimp-subscribe/audience/subscribe
将成员订阅到受众。可以提交以下变量
email(必需):要订阅的成员的电子邮件。
redirect:成功时重定向到的路由。如果没有设置,则将使用设置mailchimpSubscribe
变量的相同路由加载。
audienceId:要订阅成员的受众ID。如果没有设置,将使用配置的audienceId
。
email_type:成员偏好的电子邮件类型。可以是html
(默认)或text
language:成员偏好的语言(请参阅文档了解可能的语言代码)。
vip:设置成员的VIP状态,接受的值为true
、yes
、1
(对于true
),其他任何内容都视为false
(默认)。
merge_fields:在Mailchimp中定义的额外字段的数组(目前在Mailchimp中称为“受众字段和|MERGE|标签”)。
marketing_permissions:应为成员启用的营销权限的数组。
interests:应为成员启用的组兴趣的数组(您可以在Mailchimp中的“管理联系人”>“组”下找到这些兴趣)。
tags:应为成员启用的标签的数组(您可以在Mailchimp中的“管理联系人”>“标签”下找到这些标签)。新标签将在Mailchimp中自动创建。
该操作将返回一个SubscribeResponse
,其中action
属性设置为subscribe
。
mailchimp-subscribe/audience/unsubscribe
从受众中取消成员的订阅。可以提交以下变量
email(必需):要取消订阅的成员的电子邮件。
redirect:成功时重定向到的路由。如果没有设置,则将使用设置mailchimpSubscribe
变量的相同路由加载。
audienceId:要从中取消订阅成员的受众ID。如果没有设置,将使用配置的audienceId
。
该操作将返回一个SubscribeResponse
,其中action
属性设置为unsubscribe
。
mailchimp-subscribe/audience/delete
从受众中删除成员。可以提交以下变量
email(必需):要删除的成员的电子邮件。
redirect:成功时重定向到的路由。如果没有设置,则将使用设置mailchimpSubscribe
变量的相同路由加载。
audienceId:要从中删除成员的受众ID。如果没有设置,将使用配置的audienceId
。
permanent:如果成员应被永久删除,则设置为true
。有关此含义的更多信息,请参阅上面的“取消订阅、删除和永久删除之间的区别”部分。
该操作将返回一个SubscribeResponse
,其中action
属性设置为delete
。
mailchimp-subscribe/audience/get-member-by-email
通过电子邮件获取受众中成员的信息。可以提交以下变量
email(必需):要查询的电子邮件。
redirect:成功时重定向到的路由。如果没有设置,则将使用设置mailchimpSubscribe
变量的相同路由加载。
audienceId:要取消订阅成员的受众ID。如果没有设置,将使用配置的audienceId
。
该操作将返回一个MemberResponse
,其中action
属性设置为get-member
。
mailchimp-subscribe/audience/get-audience-by-id
通过其ID获取有关受众的信息。以下变量可以提交
audienceId:要获取信息的受众ID。如果未设置,将使用配置的 audienceId
。
redirect:成功时重定向到的路由。如果没有设置,则将使用设置mailchimpSubscribe
变量的相同路由加载。
操作将返回一个 AudienceResponse,其中 action
属性设置为 get-audience
。
模板变量
在以下定义中,方括号表示可选参数。如果未提交受众ID,则将使用配置文件中的ID。
如果发生错误,所有方法都将返回 null
,请参阅您的日志/调试工具栏以获取错误消息。
craft.mailchimpSubscribe.getInterestGroups([$id=''])
以下结构返回受众的兴趣组
[
0 => [
'title' => 'Job position'
'type' => 'radio'
'interests' => [
0 => [
'id' => '3ba93a1818'
'name' => 'Developer'
]
1 => [
'id' => '98a725d885'
'name' => 'Designer'
]
2 => [
'id' => 'e54cdea2b8'
'name' => 'Project Manager'
]
]
]
1 => [
'title' => 'Interests'
'type' => 'checkboxes'
'interests' => [
0 => [
'id' => '517e7129x5'
'name' => 'Donating'
]
1 => [
'id' => '15128d2daf'
'name' => 'Volunteering'
]
2 => [
'id' => 'f254817294'
'name' => 'Events'
]
]
]
]
craft.mailchimpSubscribe.getAudienceById([$id=''])
查询Mailchimp API以获取受众,并返回完整响应对象。请参阅API文档以获取详细信息。
craft.mailchimpSubscribe.getMemberByEmail($email [, $id = ''])
查询Mailchimp API以获取成员,并返回完整响应对象。请参阅API文档以获取详细信息。
craft.mailchimpSubscribe.getMarketingPermissionsByEmail($email [, $id = ''])
查询Mailchimp API以获取成员,并返回以下结构的该成员的市场营销权限
[
0 => stdClass#1
(
[marketing_permission_id] => '0e963d96x1'
[text] => 'Weekly newsletter'
[enabled] => true
)
1 => stdClass#2
(
[marketing_permission_id] => '42723a122x'
[text] => 'Special offers'
[enabled] => false
)
2 => stdClass#3
(
[marketing_permission_id] => '36cxbd1a8b'
[text] => 'Special offers from partners'
[enabled] => false
)
]
您也可以直接从成员那里获取此信息,此方法仅为了方便。
craft.mailchimpSubscribe.getMemberTagsByEmail($email [, $id = ''])
查询Mailchimp API以获取成员的标签,并按以下结构返回它们
[
0 => stdClass#1
(
[id] => 32608
[name] => 'One tag'
[date_added] => '2019-06-24T18:35:07+00:00'
)
1 => stdClass#2
(
[id] => 32611
[name] => 'Three tag'
[date_added] => '2019-06-24T18:35:07+00:00'
)
]
您也可以直接从成员那里获取此信息,此方法仅为了方便。
服务方法
您可以通过执行类似以下操作的方式从自己的插件或模块中访问Mailchimp Subscribe的服务方法
$msPlugin = Craft::$app->plugins->getPlugin('mailchimp-subscribe');
if ($msPlugin && $msPlugin instanceof \aelvan\mailchimpsubscribe\MailchimpSubscribe) {
$msPlugin->mailchimpSubscribe->subscribe('my_email@domain.com', '2a34d0978q');
}
可用的公共方法如下(请注意,方括号表示可选参数)
subscribe($email, $audienceId[, $opts=null]): SubscribeResponse
将成员订阅到受众。第三个参数是可选的,是一个数组,其中包含上面文档中记录的所有可能的参数。响应始终是一个SubscribeResponse,如下所示。示例
$response = $msPlugin->mailchimpSubscribe->subscribe('myemail@domain.com', '2a34d0978q', [
'email_type' => 'html',
'language' => 'no',
'merge_fields' => [
'FNAME' => 'Lorem',
'LNAME' => 'Ipsum'
]
]);
unsubscribe($email, $audienceId): SubscribeResponse
从受众中取消成员的订阅。响应始终是一个SubscribeResponse,如下所示。示例
$response = $msPlugin->mailchimpSubscribe->unsubscribe('myemail@domain.com', '2a34d0978q');
delete($email, $audienceId[, $permanent = false]): SubscribeResponse
从受众中删除一个成员。如果第三个参数为true
,则执行硬删除,参见上面的解释以了解取消订阅、删除和硬删除之间的区别。响应始终为下面的SubscribeResponse。示例
$response = $msPlugin->mailchimpSubscribe->delete('myemail@domain.com', '2a34d0978q', true);
getMemberByEmail($email, $audienceId): Collection|null
从受众中获取成员信息。如果发生错误,则响应为null
(请参阅日志/调试工具栏以获取错误消息),如果请求成功,则返回Collection对象。集合将包含有关成员的所有信息,如在Mailchimp API中记录。示例
$member = $msPlugin->mailchimpSubscribe->getMemberByEmail('myemail@domain.com', '2a34d0978q');
getAudienceById($audienceId): Collection|null
获取受众信息。如果发生错误,则响应为null
(请参阅日志/调试工具栏以获取错误消息),如果请求成功,则返回Collection对象。集合将包含有关受众的所有信息,如在Mailchimp API中记录。示例
$member = $msPlugin->mailchimpSubscribe->getAudienceById('2a34d0978q');
getMarketingPermissionsByEmail($email, $audienceId): array|null
从成员中获取营销权限。如果发生错误,则响应为null
(请参阅日志/调试工具栏以获取错误消息),如果请求成功,则返回数组。有关返回数据的示例,请参阅相应模板变量的文档。
getInterestGroups($audienceId): array|null
从受众中获取兴趣组。如果发生错误,则响应为null
(请参阅日志/调试工具栏以获取错误消息),如果请求成功,则返回数组。有关返回数据的示例,请参阅相应模板变量的文档。
getMemberTagsByEmail($email, $audienceId): array|null
从成员中获取标签。如果发生错误,则响应为null
(请参阅日志/调试工具栏以获取错误消息),如果请求成功,则返回数组。有关返回数据的示例,请参阅相应模板变量的文档。
模型
SubscribeResponse
由subscribe
、unsubscribe
和delete
控制器操作返回。具有以下属性
action:指示触发响应所使用的操作之一。如果您在单个模板上具有多种类型的表单,则此方法可用于区分哪个表单已提交。
success:布尔值,指示请求是否成功。
errorCode:如果发生错误,则设置错误代码。1000
表示无效的电子邮件,2000
表示无效的API密钥或audienceId。对于所有其他错误代码,请参阅Mailchimp API文档。
message:如果发生错误,则返回错误消息。
values:表单提交的值。
response:请求导致的完整Mailchimp响应。
MemberResponse
由 get-member-by-email
控制器操作返回。具有以下属性
action:指示哪个操作被用来触发响应,对于这个响应,始终是 'get-member'
。
success:布尔值,指示请求是否成功。
response:请求导致的完整Mailchimp响应。
AudienceResponse
由 get-audience-by-id
控制器操作返回。具有以下属性
action:指示哪个操作被用来触发响应,对于这个响应,始终是 'get-audience'
。
success:布尔值,指示请求是否成功。
response:请求导致的完整Mailchimp响应。
价格、许可证和支持
插件采用 MIT 许可证发布,这意味着只要不怪我,你可以用它做任何你想做的事情。它是免费的,这意味着绝对不提供任何支持。
变更日志
查看 CHANGELOG.md。