Silverstripe Elemental Userforms:将FormElement标题传入邮件模板
实现FormElement标题传入表单提交邮件模板
可以实现,以下是具体操作步骤:
创建扩展类传递表单标题
在项目中新建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
修改邮件模板显示标题
- 打开
email/SubmittedFormEmail.ss模板文件,在原有表单字段输出前添加标题展示:<h3>表单提交:$FormTitle</h3> <%-- 原有表单字段输出逻辑 --%> <% loop $Fields %> <p><strong>$Title:</strong> $Value</p> <% end_loop %>
- 打开
完成以上操作后,客户收到的提交邮件会显示对应表单的标题,能轻松区分不同表单的提交内容。
内容的提问来源于stack exchange,提问作者galilee
相关产品推荐
相关产品推荐

