You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Simplenews邮件开发:如何将GDPR链接插入正文而非尾部?

解决Simplenews邮件中插入GDPR链接的问题

你说得没错,模板里做str_replace确实太晚了——因为render($build)输出的是已经完成渲染的内容,这时候替换占位符自然不会生效。要把GDPR链接插入到邮件正文指定位置,得在邮件内容构建的早期阶段动手,下面给你两个可行的方案:

方案1:使用hook_simplenews_mail_alter钩子(推荐)

这个钩子会在邮件准备发送前触发,正好可以在内容还没被最终渲染前替换占位符,同时支持处理HTML和纯文本两种邮件版本。

在你的自定义模块里添加以下代码:

/**
 * Implements hook_simplenews_mail_alter().
 */
function YOUR_CUSTOM_MODULE_simplenews_mail_alter(&$message, $context) {
    // 先确认是你要处理的新闻通讯类型(比如检查节点类型)
    if (isset($context['node']) && $context['node']->type == 'your_newsletter_content_type') {
        // 获取Scald图片的GDPR链接(这里替换成你实际的获取逻辑)
        $rgpd_url = '';
        if (!empty($context['node']->field_scald_image)) {
            $scald_id = $context['node']->field_scald_image[LANGUAGE_NONE][0]['sid'];
            $scald_entity = scald_load($scald_id);
            $rgpd_url = file_create_url($scald_entity->file->uri);
        }

        // 替换HTML邮件里的占位符(比如你在Simplenews HTML版里写的[[GDPR_LINK]])
        $message['body'] = str_replace('[[GDPR_LINK]]', '<a href="' . $rgpd_url . '">查看GDPR合规详情</a>', $message['body']);
        // 别忘了处理纯文本版本的邮件
        $message['plain'] = str_replace('[[GDPR_LINK]]', $rgpd_url, $message['plain']);
    }
}

方案2:使用hook_preprocess_simplenews_mail预处理函数

如果你习惯用模板预处理的思路,这个钩子可以在邮件模板渲染前修改内容变量:

/**
 * Implements hook_preprocess_simplenews_mail().
 */
function YOUR_CUSTOM_MODULE_preprocess_simplenews_mail(&$variables) {
    // 同样先获取Scald图片的GDPR链接
    $rgpd_url = '';
    if (!empty($variables['node']->field_scald_image)) {
        $scald_id = $variables['node']->field_scald_image[LANGUAGE_NONE][0]['sid'];
        $scald_entity = scald_load($scald_id);
        $rgpd_url = file_create_url($scald_entity->file->uri);
    }

    // 替换正文里的占位符
    $variables['body'] = str_replace('[[GDPR_LINK]]', '<a href="' . $rgpd_url . '">查看GDPR合规详情</a>', $variables['body']);
}

最后一步:在Simplenews编辑器里添加占位符

打开你的Simplenews HTML版编辑界面,在你想要插入GDPR链接的位置写上[[GDPR_LINK]]就行,剩下的就交给钩子来替换成实际链接了。

内容的提问来源于stack exchange,提问作者Bryan Shinra

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 08:09:42