zwo3/newsletter_subscribe

订阅/取消订阅扩展(例如用于通讯录),依赖于 tt_address

安装: 2,157

依赖项: 0

建议者: 0

安全: 0

星标: 2

关注者: 6

分支: 5

开放问题: 11

类型:typo3-cms-extension


README

  • 为TYPO3 >= 9.5 订阅和取消订阅通讯录
  • 依赖于 tt_address
  • 调度任务在一段时间后删除未确认的订阅者(自v3.1.0起)

它做什么?

  • 提供一个插件以进行双重确认订阅
  • 提供一个插件以进行双重确认取消订阅
  • 在 tt_address 中提供字段以生成 direct_mail 邮件中的取消订阅链接

5.0 版本中的破坏性更改

  • 如果您使用默认模板和样式,您必须将类 form-input 添加到输入字段,将 form-checkbox 添加到复选框。前一种方法覆盖了包含此扩展静态模板的页面上的每个复选框的外观。

注意事项

此扩展更改了 tt_address 的行为并禁用了软删除功能,这意味着已删除的记录将直接从数据库中删除,而不是被标记为已删除。

这可能会导致您在 tt_address 表中已有现有记录集的情况下出现问题。

为了减轻这种行为,您可以清除 tt_address 中的所有已删除记录。
或者,您可以通过将此代码添加到您的 sitepackage 中的 Configuration/TCA/Overrides/tt_address.php 来重新启用原始行为

$GLOBALS['TCA']['tt_address']['ctrl']['delete'] = 'deleted';

已删除 tt_address 记录的硬删除。由于 https://docs.typo3.org/m/typo3/reference-coreapi/main/en-us/ExtensionArchitecture/FileStructure/ExtTablesSql.html#auto-generated-structure 字段 "delete" 否则不会被生成。请使用调度任务来删除软删除的记录。

安装

  • 通过扩展管理器安装或
  • 通过 composer 安装
  • 包含静态模板

配置

站点配置(用于订阅者邮件中的更美观链接)

routeEnhancers:
  UnSubscribe:
    type: Extbase
    extension: NewsletterSubscribe
    plugin: Unsubscribe
    routes:
      -
        routePath: '/unsubscribe/{unsubscribe}/{uid}'
        _controller: 'Subscribe::unsubscribe'
        _arguments:
          unsubscribe: subscriptionHash
          uid: uid
  Subscribe:
    type: Extbase
    extension: NewsletterSubscribe
    plugin: Subscribe
    routes:
      -
        routePath: '/confirm/create'
        _controller: 'Subscribe::createConfirmation'
      -
        routePath: '/confirm/{confirm}/{uid}'
        _controller: 'Subscribe::doConfirm'
        _arguments:
          confirm: subscriptionHash
          uid: uid
      -
        routePath: '/unsubscribe/{unsubscribe}/{uid}'
        _controller: 'Subscribe::unsubscribe'
        _arguments:
          unsubscribe: subscriptionHash
          uid: uid

direct_mail 中的取消订阅链接

  1. 首先,在 direct mail 的扩展配置中添加字段 subscription_hash 到 direct mail 字段中: direct mail configuration
  2. 在您的邮件模板中添加链接
    <a href="http://www.domain.tld/page/unsubscribe/###USER_subscription_hash###/###USER_uid###">取消订阅</a> 其中这个 unsubscribe/###USER_subscription_hash###/###USER_uid###" 是重要部分。
    注意:订阅插件必须插入到该 URL 中的 "page" 页面。

direct_mail 中的问候语

  1. 添加 'salutation' 字段(见上面的 'subscription_hash')
  2. 在页面上添加 ###USER_salutation###

调度任务/控制台命令

有可用的调度任务/控制台命令(仅TYPO3 v10)以填充 tt_address 中的空数据库字段

  • newslettersubscribe:fillsalutation
    根据 tt_address 记录的 sys_language_uid 和 gender 字段更新问候语字段。问候语可以通过 TypoScript 配置。
  • newslettersubscribe:fillsubscriptionhash
    更新 subscription_hash 字段。这特别方便如果已手动在 TYPO3 后端添加订阅或在 tt_address 中有旧数据。subscription_hash 对于 direct_mail 中的取消订阅链接正常工作是必要的。

待办事项

  • 创建 AJAX 提交
  • 更新文档