我使用单纯新闻模块发送通讯,使用Mandrill服务发送电子邮件。当我向测试用户发送测试通讯时,应该将取消订阅链接重定向到特定的节点,例如node/2。
我怎样才能做到这一点?
发布于 2016-03-08 08:02:37
使用规则模块并使用规则(系统)事件“”(= init)。并添加与取消订阅链接的URL相关的额外条件。添加规则操作以执行对node/2的重定向。
下面的规则应该接近您需要的内容(假设取消订阅链接的路径是Some/Unsubscribe/Path):
{ "rules_redirect_unsubscribe_link" : {
"LABEL" : "Redirect unsubscribe link",
"PLUGIN" : "reaction rule",
"OWNER" : "rules",
"REQUIRES" : [ "rules" ],
"ON" : { "init" : [] },
"IF" : [
{ "text_matches" : {
"text" : [ "site:current-page:path" ],
"match" : "Some\/Unsubscribe\/Path",
"operation" : "regex"
}
}
],
"DO" : [
{ "drupal_message" : {
"message" : "Redirecting URL [site:current-page:url] ...",
"type" : "warning"
}
},
{ "redirect" : { "url" : "node\/2" } }
]
}
}上述规则还没有考虑到只对您的“测试用户”(如在您的问题中)应用规则操作。但是对于任何熟悉规则模块的人来说,这是一个直接的规则条件.
上述规则还在其规则条件中使用正则表达式,可以将其简化为简化版本(不使用此类表达式)。但是,如果您有不同的取消订阅链接,所有这些链接都有相似的模式,您只需在上述规则条件下对该表达式进行按摩,就可以将所有这些链接都放在同一个表达式中。
要在您自己的站点中尝试使用此规则,只需复制上面的整个规则代码,并将其粘贴到您自己的站点中的一个新规则中,该规则是通过“导入”函数创建的(如果启用了规则UI子模块,则可用)。然后进一步编辑/改进,使其适合您自己的环境(例如“重定向URL .”)将显示的信息)。
https://drupal.stackexchange.com/questions/193886
复制相似问题