Как указать Пользовательской контактной форме использовать определенный шаблон транзакции
Я создал файл custom_form.phtml
и поместил его рядом с обычным form.phtml
.
На странице CMS я добавил этот блок:
{{block type="core/template" name="contactForm" form_action="/contacts/index/post" template="contacts/custom_form.phtml"}}
...но теперь я хотел бы, чтобы в этой форме использовался определенный шаблон транзакций, который я создал соответствующим образом, с именем "Custom Transactional
" и созданный в разделе Система > Транзакционные письма.
Как я мог бы связать как .phtml, так и шаблон транзакции с несколькими полями, такими как {{var data.address}} {{var data.country}} {{var data.postcode}}
и т. Д.?
Большое спасибо за любой вклад.
1 answers
Если вы посмотрите на контроллер контактов , используемый в действии формы, вы обнаружите, что
- шаблон транзакции взят непосредственно из конфигурации
- все данные POST передаются в шаблон (как переменная шаблона
data
), так что вы можете добавить любые дополнительные поля в шаблон формы и использовать их в шаблоне электронной почты. Но проверка жестко запрограммирована для "имени", "комментария", "электронной почты" и "скрыть".
Итак, если вам нужен полностью другой шаблон электронной почты или дополнительная/измененная проверка ввода, лучше всего создать пользовательский контроллер с измененной копией postAction
Mage_Contacts_IndexController
.
Но есть другое решение, которое немного ограничено, но без какого-либо пользовательского кода:
- создайте скрытый ввод, который определяет тип формы. Это может быть просто
<input type="hidden" name="custom" value="1" />
. -
В шаблоне электронной почты для транзакций контактов используйте директиву
if
, чтобы отображать различное содержимое в зависимости от формы тип:{{if data.custom}} ... custom contact form email ... {{else}} ... standard contact form email ... {{/if}}