如何在续订续订到期时发送电子邮件通知? -- 7 领域 和 emails 领域 和 notifications 领域 drupal 相关 的问题

How to send an email notification when a subcription renewal is due?


0
vote

问题

中文

当订户的每月订阅到期时,自动电子邮件应该转到该用户,指出更新到期。将有两种可能性:

  1. 如果没有对通知的响应,则根据所选当前包时,自动CC将被充电。

  2. 自动电子邮件通知将有一个链接,以便如果订阅者想要升级到不同的包裹。

如何实现这一目标?

英文原文

When a subscriberxe2x80x99s monthly subscription is due for renewal, an automatic email should go to that user stating that the renewal is due. There will be two possibilities:

  1. If there is no response to the notification, automatically the CC will be charged as per the current package selected.

  2. The automatic eMail notification will have a link to upgrade to a different package if the subscriber wants to.

How to achieve this?

        

回答列表

0
 
vote
vote
最佳答案
 

第1部分 - 发送电子邮件通知

使用规则模块以及 Rules Scheduler (一个子它的模块),如下面的步骤所述。这些步骤基于添加到用户配置文件的日期字段,以便为每个用户表示特定包的适当续订日期。要支持多个包,只需创建类似的日期字段(每个包类型为1)。

步骤1:创建一个字段以存储续订日期

将字段添加到"用户" 实体,使用机器名称(例如) field_next_renewal 。只允许1个日期(存储"下一个" 续订)。

步骤2:创建规则"组件"

以下是要创建的规则组件(在规则导出格式中,只需通过Copy-Paste在您自己的环境中导入它):

  { "rules_send_email_notification" : {     "LABEL" : "Send eMail notification",     "PLUGIN" : "action set",     "OWNER" : "rules",     "REQUIRES" : [ "rules" ],     "USES VARIABLES" : { "user_to_notify" : { "label" : "User to be notified", "type" : "user" } },     "ACTION SET" : [       { "mail" : {           "to" : [ "user-to-notify:mail" ],           "subject" : "Friendly reminder about your upcoming renewal",           "message" : "This is a reminder about the upcoming renewal  on [user-to-notify:field_next_renewal] ...",           "from" : "[site:mail]",           "language" : [ "" ]         }       }     ]   } }   
[p>显然,电子邮件中的 主题 和 可能需要审查/调整,而您也可能需要希望使用其他一些 电子邮件ID。它的消息部分也是在其中,您可以在其中添加"链接以升级到其他包" (如您的问题中)。

步骤3:使用规则组件创建"规则"

这是规则要创建,在规则导出格式(仅通过复制粘贴在您自己的环境中导入它):

  { "rules_on_user_renewal" : {     "LABEL" : "On user renewal",     "PLUGIN" : "reaction rule",     "OWNER" : "rules",     "REQUIRES" : [ "rules", "rules_scheduler" ],     "ON" : { "user_update" : [] },     "IF" : [       { "entity_has_field" : { "entity" : [ "account" ], "field" : "field_next_renewal" } }     ],     "DO" : [       { "schedule_delete" : {           "component" : "rules_send_email_notification",           "task" : "[account:name]"         }       },       { "schedule" : {           "component" : "rules_send_email_notification",           "date" : {             "select" : "account:field-next-renewal",             "date_offset" : { "value" : 259200 }           },           "identifier" : "[account:name]",           "param_user_to_notify" : [ "account" ]         }       }     ]   } }   

请注意,上述规则是指从前一步的规则组件。它会在任何时候更新用户配置文件(随意替换可能适合的任何其他事件)的任何时候都会触发。

schedule_delete 这是本规则的一部分,是为了确保在更新数据字段时将删除先前的"计划" 提醒(因此它仅触发1提醒,以及最近的日期)。

步骤4:额外的细化

  • date_offset (= 259200)在上述规则中对应于"提前3天" ,这可能需要审查/调整。

  • 如果需要,您也可以使用 field权限模块设置字段-Level权限编辑,查看和创建此续订字段。

  • 而不是只发送电子邮件(如规则组件中),您可以使用消息模块(也与规则模块具有很大的集成度)。以下是关于该模块的引用(从其项目页面):

    ......在许多不同用例中启用日志记录和显示系统事件。随时间记录的事件有时会调用活动流。可以为具有自定义字段和显示(视图)模式的不同用例创建可导出的消息子类型。

第2部分 - 跟踪可能的响应

如果您还使用标志视图模块),你可以简单地列出你没有一些所需响应的标记用户(那些是没有执行续约的用户)。

happy 规则 -ing!

 

Part 1 - Sending eMail notifications

Use the Rules module together with Rules Scheduler (a sub-module of it), as explained in the steps below. These steps are based on a date field which is added to the user profile, so that for each user you can indicate an appropriate renewal date of a specific package. To support multiple packages, just create similar date fields (1 for each package type).

Step 1: Create a field to store the renewal date

Add a field to the "user" entity with machine name (say) field_next_renewal. Allow only 1 date (to store the "next" renewal).

Step 2: Create a Rules "Component"

Here is the Rules Component to be created (in Rules export format, just import it in your own environment via copy-paste):

{ "rules_send_email_notification" : {     "LABEL" : "Send eMail notification",     "PLUGIN" : "action set",     "OWNER" : "rules",     "REQUIRES" : [ "rules" ],     "USES VARIABLES" : { "user_to_notify" : { "label" : "User to be notified", "type" : "user" } },     "ACTION SET" : [       { "mail" : {           "to" : [ "user-to-notify:mail" ],           "subject" : "Friendly reminder about your upcoming renewal",           "message" : "This is a reminder about the upcoming renewal  on [user-to-notify:field_next_renewal] ...",           "from" : "[site:mail]",           "language" : [ "" ]         }       }     ]   } } 

Obviously, the Subject and Message of the eMail may need review / tuning, while you might also want to use some other From eMail ID. The Message-part of it is also where you can add the "link to upgrade to a different package" (as in your question).

Step 3: Create a "Rule" using the Rules Component

Here is the Rule to be created, in Rules export format (just import it in your own environment via copy-paste):

{ "rules_on_user_renewal" : {     "LABEL" : "On user renewal",     "PLUGIN" : "reaction rule",     "OWNER" : "rules",     "REQUIRES" : [ "rules", "rules_scheduler" ],     "ON" : { "user_update" : [] },     "IF" : [       { "entity_has_field" : { "entity" : [ "account" ], "field" : "field_next_renewal" } }     ],     "DO" : [       { "schedule_delete" : {           "component" : "rules_send_email_notification",           "task" : "[account:name]"         }       },       { "schedule" : {           "component" : "rules_send_email_notification",           "date" : {             "select" : "account:field-next-renewal",             "date_offset" : { "value" : 259200 }           },           "identifier" : "[account:name]",           "param_user_to_notify" : [ "account" ]         }       }     ]   } } 

Note that the above rule refers to the Rules Component from the previous step. It gets triggered any time a user profile is updated (feel free to replace that Rules Event with any other event that might fit).

The schedule_delete that is part of this rule is to ensure that previously "scheduled" reminders will get removed when updating the data field (so that it only triggers 1 reminder, and with the most recent date).

Step 4: additional refinements

  • The date_offset (=259200) in the above rule corresponds to "3 days in advance", which may need review / tuning.

  • If needed, you could also use the Field Permissions module to set field-level permissions to edit, view and create this renewal field.

  • Instead of just sending an eMail (as in the Rules Component), you could replace that by a more advanced option using the Message module (which has great integrations with the Rules module also). Here is an quote about that module (from its project page):

    ... enables logging and displaying system events in a number of different use cases. Events that are recorded over time are sometimes call activity streams. Exportable messages subtypes can be created for different use cases with custom fields and display (view) modes.

Part 2 - Tracking possible responses

If you'd also use the Flag module, you could enhance the above Rules logic to also "flag" the user (to indicate that you're waiting for some kind of response to the renewal eMail. By creating a view (using the Views module), you could then simply list the flagged users for which you do not have some desired response (those are the users who didn't perform a renewal).

Happy Rules-ing!

 
 

相关问题

-1  在ELMSLN中没有更多编码工具生成器?  ( No more coding with tool builder in elmsln ) 
我不是编码者,但有很多我想要意识的想法。最近,来自 btopro (Bryan Olledyke)的博客,从榆树学习网络,显示了 https://www.elmsln.org/blog/post/tool-builder 假设你有一个想法,但在drupal中并不擅长。在视频中,您可以看到,当您可以创建视图时,内容类...

1  如何在不使用统计模块的情况下列出5个大多数视图节点?  ( How to list 5 most view nodes without using the statistic module ) 
我正在尝试在不使用模块的情况下创建最常见的节点的视图/块。 如果是不可能的,则可以在不使用统计模块的情况下执行此操作? ...

1  日历模块翻译  ( Calendar module translation ) 
我已经安装了 calendar 模块,并希望翻译几个字段: 在上面的屏幕截图中,我正在寻找日子字符串("太阳" ,"mon" ,"tue" ,Wed",......)。我一直在搜索到处都是在哪里,但找不到哪里它们位于。 我在哪里可以找到这些字符串,所以我可以用我更喜欢的语言翻译它们? ...

1  在重写视图期间删除了HTML标记  ( Html tags removed during views rewriting ) 
hello我创建了一个带有模块"视图和数据导出" 的站点地图。我的页面的站点地图工作正常,但我会将图像添加到我的页面。 站点地图应该看第一捕获,我用数字进行测试,它们很好地放置。当我"重写结果" 时,标签被忽略。 如何实现这些标签?自从我上面已经几个星期了。 谢谢 如果我用文本数据替换HTML标签,它可以工作: ...

2  用户浏览器信息和IP地址可用作规则中的令牌吗?  ( Are user browser information and ip address available as tokens in rules ) 
我正在从联系人表单发送电子邮件到管理员。在电子邮件中,我想发送浏览器名称和版本等用户浏览器信息和用户IP地址。但我无法看到这些值的令牌? 我想要登录和匿名用户的浏览器信息和IP地址。 是在规则模块中的这些令牌?或者我必须创建自定义令牌? ...

0  我创建的新视图的代码在哪里?  ( Where is the code of a new view ive created ) 
我正在使用Drupal 7,其中Zen的启动主题。我在块上创建了一个视图,现在我需要自定义 html / css 的某些部分,以便只添加媒体查询(CSS部分)并添加 <a> 标记 display:none 对于桌面版和 display:block 移动。所以我需要修改此视图的HTML和CSS。我正在寻找这个视图的PH...

4  我如何每3个月执行一次功能?  ( How do i execute a function every 3 months ) 
每3个月执行功能的正确方法是什么?看门狗变量似乎在一定时间后似乎没有可用。我可以创建另一个表来插入执行函数日期以比较,但似乎并不是最好的方法。 此类功能的功能是: 发送电子邮件 标记非活动用户 ...

2  如何防止用户从系统上传图像?  ( How to prevent users uploading images from their system ) 
我的网站上有一些图像字段。 我的要求是用户不应该上载图像。而是将有一个目录,我将放置一些图像。用户只能通过图像字段从这些图像中选择图像。 是可能的吗? ...

0  使用SimpleNews添加订阅时事务通讯登记页面上的复选框  ( Add a checkbox on registration page for subscription newsletter with simplenews ) 
我想添加一个复选框,以便订阅用户注册页面上的新闻通讯。 我正在使用。 我怎么能这样做? ...

0  如何为任意用户组实施某种类型的私人消息?  ( How to implement some type of private messaging to arbitrary groups of users ) 
我想向用户组发送私信(用电子邮件通知)。这些组可以是预先定义的或ad-hoc选择。是否有任何方法可以在Drupal网站中实现此功能? 我找到了 privatemsg ,它似乎很有希望,因为它有视图 - 和规则 - 融合。但毕竟它没有符合要求:我找不到一种方法来使用多个用户填充收件人字段(我想使用具有公开过滤器的视...

0  允许角色仅更改内容类型的审核状态,而无需编辑内容字段  ( Allow role to change only moderation state of content type without possibility t ) 
我们构建的系统有一个角色出版商。 它的任务是更改内容的审核状态(News Content_type)而不可能是编辑实际内容的可能性。 简而言之,扮演角色发布者中的用户看到其他用户创建的所有新闻,只有有权更改其状态。 简而言之,如何允许用户在角色中编辑1个字段并阻止其余的? ...

0  使用目录和子目录迁移文件  ( Migrate files with directories and sub directories ) 
我正在遇到问题在我的计算机上迁移我的文件。即时使用迁移ui和我的 source_dir = /Users/cwahlfeldt/Sites/dev.urbanaillinois.us/sites/default/files/ 这是我尝试迁移的文件的完整路径。 destination_dir = public:// ...

1  修改代码以使用批处理API?  ( Modify code to use batch api ) 
我有一个自定义模块编写的模块,以通过从组中添加/更新/删除成员来从Salesforce API导入数据并更新有机组信息。我最初将其写为疏松的命令,以便于开发,现在我将它移动到一组从Cron_cron()发起的函数使用Cron队列。额外要求是导入过程能够从表单提交中运行。该过程长时间运行,即从简单的表单提交运行时它会超...

5  如何使用属性同时添加多个产品到购物车  ( How to add multiple products to cart at the same time with attributes ) 
我有不同的视图块,在同一页面上显示多个产品,每个产品都有自己的属性,如产品捆绑和自定义线项,这些是主要产品的选项设置/标准。选项滑块的结果将是隐藏的海关线项的值。 我计划完成的是用只需一个按钮,同时将所有这些所选产品添加到购物车上的所有这些选定的产品。 示例: 产品1: 产品2: 这些是我尝试过的...

0  Bulsizer内部有一个诡计格式化图像字段吗?  ( Inside panelizer is there a trick to formatting image fields ) 
摘要 在Bullizer中,我创建了一个面板。在本面板的内容中,存在一个图像字段。我无法找到更改图像样式的选项。 从Manage Display中的内容类型中,我能为各种显示设置选择图像样式,但这对Panelizer的面板中的图像没有差异。 我不在哪里? 详细信息 在Plaizer for Content类...

1  ALTER ELEMENT_INFO并解决已更改的元素  ( Alter element info and troubleshoot changed elements ) 
ubercart定义以下 uc_price uc_store_element_info : $types['uc_price'] = array( '#input' => TRUE, '#size' => 15, '#maxlength' => 15, '#autocomplete_path'...

6  如何使用规则从WebForm创建节点?  ( How to create a node from a webform using rules ) 
我想使用规则模块基于webform数据创建节点。这是因为相关CRM系统内的围绕关系的复杂性。 我已经在我拥有webform创建的那一点上,并且在规则中必须进入以下(和工作)点: { "rules_member_news_import_" : { "LABEL" : "Member News (cloned)",...

1  如何在完全单独的页面上显示用户登录表单? [复制]  ( How to show a user login form on a completely separate page ) 
这个问题已经在这里有答案: 仅显示登录页面 (3个答案) 关闭 4年前。 ...

4  删除节点有300,000条评论时500错误  ( 500 error when deleting node with 300 000 comments ) 
我有一个已垃圾邮件的节点,有300,000个评论。每当我尝试删除它时,我会得到500个内部服务器错误。 通过数据库删除所有注释不是一个选项,因为我需要在其他节点上保留大量合法注释。但是,此特定节点已被垃圾邮件发送,我希望删除节点和所有关联注释,但我不能。我已经禁用了节点的评论,但我如何删除这些评论?任何想法? ...

1  MailJet HTML和跟踪  ( Mailjet html and tracking ) 
由于模块开发人员没有响应 https://www.drupal.org/node / 2032343 &amp; https://www.drupal.org/node/2611824 我在这里尝试运气: 我有一个网站通过两个规则和simplenews发送电子邮件。我已经安装了MailJet,mailsystem...




© 2021 it.wenda123.org All Rights Reserved. 问答之家 版权所有


Licensed under cc by-sa 3.0 with attribution required.