3ev / tev_mailchimp

该包已被 废弃 并不再维护。未建议替换包。

为您的TYPO3网站集成Mailchimp邮件列表

安装: 227

依赖: 0

建议者: 0

安全: 0

星级: 2

关注者: 10

分支: 1

开放问题: 0

类型:typo3-cms-extension

1.1.6 2020-09-14 10:07 UTC

This package is not auto-updated.

Last update: 2024-06-18 03:49:37 UTC


README

#TYPO3 Mailchimp扩展

Latest Stable Version License

将Mailchimp新闻邮件订阅集成到您的TYPO3网站。

##内容

##概述

此扩展允许您将前端用户订阅到Mailchimp列表。信息通过Mailchimp REST APIwebhooks保持同步。

包含以下功能

  • 一个CLI命令,用于将您的账户中的所有Mailchimp列表下载到本地数据库
  • BE保存钩子,以确保在后台创建或更新用户时,他们的列表订阅偏好从Mailchimp下载
  • Extbase插槽,以确保在前端创建或更新用户时,他们的列表订阅偏好从Mailchimp下载 由于Extbase插槽很难使用,因此不再作为默认选项提供
  • Webhook监听器,以确保当用户在Mailchimp中更新列表订阅偏好时,它们在本地数据库中也被更新
  • 服务,可以轻松地在代码中的任何地方触发Mailchimp订阅或取消订阅请求

##安装

$ composer require "3ev/tev_mailchimp"

###依赖

由于一个TYPO3错误,无法将依赖添加到此项目的composer.json中。相反,您必须将它们添加到您的根composer.json文件中。

请参阅此包的composer.json中的suggests配置,了解您需要添加的依赖项。

##设置和配置

像通常一样通过扩展管理器安装扩展。安装扩展后,您应该访问其设置并设置您的Mailchimp API密钥

使用常量编辑器,您应该然后设置“TEV_MAILCHIMP -> 存储文件夹”常量,最可能是在您的根页面模板上。这是所有Mailchimp列表和订阅存储的文件夹。

最后,清除您的TYPO3缓存,您的扩展就准备好使用了。

###Webhooks

如果您希望您的站点监听来自Mailchimp的传入Webhooks(这有助于保持本地列表数据同步),您可以为您的网站设置一个页面并将其实际地址添加到Mailchimp配置中。

设置一个可以监听Webhooks的页面

  • 在您的页面树中的某个位置创建一个页面。这个页面不应该链接到您的网站上的任何地方

  • 向它添加一个扩展模板,并在其设置字段中添加以下Typoscript

    page < tev_mailchimp_webhook_json
    
  • 将新页面的URL添加到您要监听的每个Mailchimp列表的webhook配置中

然后只需清除您的TYPO3缓存,您就可以准备出发了。

###更改电子邮件字段

默认情况下,扩展程序使用FE Users中的email字段来同步电子邮件偏好设置。您可以通过在扩展程序配置中设置“FE用户电子邮件字段”来更改此设置。这应该是数据库中相同的下划线小写字段名。例如,如果您的用户使用电子邮件地址作为他们的用户名,并且您不使用电子邮件字段,您可能需要这样做。

###更改日志文件路径

默认情况下,扩展程序的日志将写入到typo3temp/logs/mailchimp.log。如果您想更改此设置,只需在扩展程序配置中设置“日志文件路径”。此路径应该是相对于包含您的typo3/源文件夹的绝对路径或相对路径。如果您使用../前缀,则可以将其设置在目录外部。

当然,您可以使用核心TYPO3 API完全更改日志功能,并在Tev\TevMailchimp命名空间下的ext_localconf.php中设置自己的日志配置。

##使用方法

###下载列表

首先,您应该将您的Mailchimp账户中的所有列表下载到TYPO3中。您可以在您的TYPO3安装目录中运行以下Extbase CLI命令(如果您尚未创建,您需要创建cli_lowlevel BE用户)

$ ./typo3/cli_dispatch.phpsh extbase mailchimp:lists

运行此命令后,您将能够在您之前配置的存储文件夹的列表视图中看到所有已下载的列表。您可以为每个列表设置自定义描述,并且您还可以在“订阅者”选项卡下看到订阅了该列表的所有FE用户的完整列表。

注意:如果您经常在Mailchimp账户中更改列表,您应该将此命令放在cron作业或TYPO3调度任务中。

###使用MailchimpService

您可以通过将Tev\TevMailchimp\Services\MailchimpService注入到自己的类中来轻松触发您的Extbase代码中用户的订阅或取消订阅。

该服务提供以下方法来管理订阅

subscribeUserToList(FrontendUser $user, Mlist $list, $confirm = false)

将指定的FE用户订阅到指定的Mailchimp列表。如果确认为true,则从Mailchimp向用户发送确认电子邮件,并且他们不会立即被添加到列表中。这意味着本地数据库不会同步更新,您必须依赖于webhook。

unsubscribeUserFromList(FrontendUser $user, Mlist $list)

从指定的Mailchimp列表中取消指定的FE用户的订阅。

subscribeToList($email, $list, $confirm = false)

将指定的电子邮件地址订阅到指定的Mailchimp列表。如果确认为true,则从Mailchimp向用户发送确认电子邮件,并且他们不会立即被添加到列表中。

unsubscribeFromList($email, $list)

从指定的Mailchimp列表中取消指定的电子邮件地址的订阅。

downloadSubscriptions(FrontendUser $user, $newUser = false)

从Mailchimp下载用户的当前订阅到TYPO3。您可能希望在用户首次在您的网站上注册或更改他们的电子邮件地址时调用此函数。将$newUser设置为true将略微提高下载新用户订阅时的性能

downloadLists()

从Mailchimp下载所有列表到TYPO3。

如果存在Mailchimp API错误,这些方法中的每一个都会触发异常,因此您应确保适当处理它们。

###使用MlistRepository

Tev\TevMailchimp\Domain\Repository\MlistRepository类允许您从本地数据库中获取列表数据。它提供了标准的Extbase存储库API。您可能想要使用的某些最常用的方法包括

findAll()

从本地数据库获取所有列表。

findAllSubscribedToBy(FrontendUser $user)

获取由给定用户订阅的所有列表。

findAllNotSubscribedToBy(FrontendUser $user)

获取所有未被指定用户订阅的列表。

###日志记录

以下事件被系统记录:

  • 成功和失败的webhook处理器
  • 通过CLI成功和失败的列表下载
  • 任何Mailchimp API错误

有关更改日志设置的信息,请参阅上面

##许可证

MIT © 3ev