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

Silverstripe Elemental Userforms:将FormElement标题传入邮件模板

实现FormElement标题传入表单提交邮件模板

可以实现,以下是具体操作步骤:

  1. 创建扩展类传递表单标题

    • 在项目中新建PHP扩展文件,比如app/src/Extension/ElementUserFormExtension.php,代码如下:

      use DNADesign\ElementalUserForms\Model\ElementUserForm;
      use SilverStripe\Core\Extension;
      use SilverStripe\UserForms\Model\Submission\SubmittedFormEmail;
      
      class ElementUserFormExtension extends Extension
      {
          public function updateSubmittedFormEmail(SubmittedFormEmail $email)
          {
              // 获取当前表单元素的标题
              $formTitle = $this->owner->Title;
              // 将标题注入邮件模板的数据上下文
              $email->setDataField('FormTitle', $formTitle);
          }
      }
      
    • 在项目的app/_config/config.yml中注册该扩展:

      DNADesign\ElementalUserForms\Model\ElementUserForm:
        extensions:
          - App\Extension\ElementUserFormExtension
      
  2. 修改邮件模板显示标题

    • 打开email/SubmittedFormEmail.ss模板文件,在原有表单字段输出前添加标题展示:
      <h3>表单提交:$FormTitle</h3>
      
      <%-- 原有表单字段输出逻辑 --%>
      <% loop $Fields %>
          <p><strong>$Title:</strong> $Value</p>
      <% end_loop %>
      

完成以上操作后,客户收到的提交邮件会显示对应表单的标题,能轻松区分不同表单的提交内容。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 14:59:56