已实现GravityForms注册同步MailChimp,如何用其发送激活通知?
解决方案:用MailChimp自动化+GravityForms字段传递激活链接
你说得没错——GravityForms默认的MailChimp Feed只是负责把用户添加到邮件列表,并不处理注册后的触发式通知(比如激活链接这类个性化事务邮件)。要想用MailChimp的定制模板发送这类通知,得结合字段同步和自动化流程来实现,具体步骤如下:
1. 在MailChimp列表中添加自定义字段存储激活链接
- 登录MailChimp,进入你的目标列表,点击「Settings」→「List fields and |MERGE| tags」
- 添加一个新的文本字段,比如命名为「激活链接」,对应的合并标签设为
*|ACTIVATION_LINK|*(一定要记住这个标签,后面会用到)
2. 在GravityForms中配置MailChimp Feed,同步激活链接
- 回到GravityForms的表单编辑器,进入「Settings」→「MailChimp」→ 编辑你已有的Feed
- 在「Field Mapping」部分,找到刚才在MailChimp创建的「激活链接」字段,把它映射到GravityForms生成的激活链接字段:
- 如果你的激活链接是通过GravityForms User Registration插件生成的,它会作为动态字段存在,直接选择对应的「用户激活链接」字段即可
- 保存Feed设置,确保用户提交表单时,激活链接会同步到MailChimp的自定义字段里
3. 在MailChimp中创建触发式自动化邮件
- 进入MailChimp的「Automations」页面,点击「Create Automation」
- 选择「Subscriber activity」下的「When a subscriber joins your list」,选中你的目标列表后点击「Begin」
- 设置触发时机:可以选择「immediately」(用户加入列表后立即发送),也可以根据需求设置延迟
- 下一步创建邮件内容:选择你已有的定制化模板,或者新建模板
- 在模板中需要插入激活链接的位置,直接插入之前创建的合并标签
*|ACTIVATION_LINK|* - 完成邮件主题、发件人信息的设置后,激活这个自动化流程即可
备选方案:用GravityForms钩子+MailChimp Transactional Email API
如果你的激活通知需要更灵活的触发逻辑(比如仅给满足特定条件的用户发送),可以通过代码钩子实现:
- 先在MailChimp Transactional Email(原Mandrill)中创建好模板,记下模板ID和API密钥
- 在WordPress主题的
functions.php文件中添加以下代码(替换对应的参数):
add_action( 'gform_after_submission_{FORM_ID}', 'send_activation_via_mailchimp_transactional', 10, 2 ); function send_activation_via_mailchimp_transactional( $entry, $form ) { // 获取激活链接(假设激活链接在表单字段ID为5的位置) $activation_link = rgar( $entry, '5' ); $user_email = rgar( $entry, 'email' ); // 配置MailChimp Transactional参数 $api_key = '你的Transactional API密钥'; $template_id = '你的模板ID'; $request_data = array( 'key' => $api_key, 'template_name' => '你的模板名称', 'template_content' => array(), 'message' => array( 'to' => array( array( 'email' => $user_email ) ), 'merge_vars' => array( array( 'rcpt' => $user_email, 'vars' => array( array( 'name' => 'ACTIVATION_LINK', 'content' => $activation_link ) ) ) ) ) ); // 发送API请求 $ch = curl_init(); curl_setopt( $ch, CURLOPT_URL, 'https://mandrillapp.com/api/1.0/messages/send-template.json' ); curl_setopt( $ch, CURLOPT_POST, true ); curl_setopt( $ch, CURLOPT_POSTFIELDS, json_encode( $request_data ) ); curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true ); $response = curl_exec( $ch ); curl_close( $ch ); }
- 替换代码中的
{FORM_ID}为你的GravityForms表单ID,以及对应的API密钥、模板ID和字段ID
小提醒
激活链接这类事务性邮件更适合用MailChimp Transactional Email发送,避免和批量营销邮件混淆,降低进入垃圾邮件的概率,同时也能满足即时触发的需求。
内容的提问来源于stack exchange,提问作者GRoston




