Formulário de contato Magento na página CMS
-
12-12-2019 - |
Pergunta
Sou novo no magento e gostaria de saber como criar um formulário em uma página CMS e receber as informações por email.
Fiz algumas pesquisas na internet mas não encontrei respostas explícitas.
Solução
Primeiro você faz login Administrador Magento -> CMS -> Páginas
Selecione sua página e insira seu código HTML como faria normalmente em qualquer outra informação incluída na página e selecione Contente guia e adicione-o.
As linhas abaixo para adicionar seu cms -> página:
{{block type="core/template" name="contactForm" form_action="{{store direct_url='contacts'}}/index/post" template="contacts/form.phtml"}}
Outras dicas
A resposta do @mbalparda está certa, mas responde parcialmente à pergunta.Resumindo, dá uma dica perfeita sobre como incluir um bloco de formulário de contato dentro da página cms.Mas que tal adicionar um formulário personalizado na página CMS?Para isso, você pode consultar a resposta abaixo.
Passo 1 :Crie um formulário
Primeiro, você precisa criar um formulário que deseja incluir nas páginas CMS.Na sua forma mais simples, você deve definir um novo modelo de formulário para isso.
Arquivo : app\design\frontend\[package]\[theme]\template\custom\yourform.phtml
<form action="some/action/" name="form-name" id="form-id" >
<!-- form inputs come here -->
</form>
Passo 2 :Incluir seu formulário personalizado na página CMS
Vá para a seção de conteúdo da página CMS e adicione o conteúdo abaixo.
{{block type="core/template" template="custom/yourform.phtml"}}
Estamos aproveitando diretivas de bloco aqui.Você pode inserir qualquer bloco na página CMS como este.Isso usará seu modelo de formulário personalizado e renderizará seu conteúdo dentro da página CMS.
A resposta acima está correta, mas há algumas sugestões para este caso.
1. Alterar o URL da postagem de ação do formulário:
Alterar o formulário de ação /contacts/index/post
para URL personalizado como /contacts/index/custompost
.Por causa do envio do formulário.Custom irá redirecionar para contacts/index/index
em vez de custom cms page
por causa do código em pós-ação função de Mage_Contacts_IndexController ($this->_redirect('*/*/');)
.
Então, você precisa substituir o controlador de índice Mage_Contacts e vai add a new
Ação custompostAction
.
Copie todo o código de postAction
função para custompostAction
e apenas mude
$this->_redirect('*/*/'); to $backUrl=Mage::getUrl().'cmsPageInd'; $this->getResponse()->setRedirect($backUrl);
Bloco de formulário de chamada na guia Design:
Em vez de chamar o formulário do Conteúdo, chame o código na aba Design (Layout Update XML)
<reference name="content">
<block type="core/template" name="CmscontactForm" form_action="/contacts/index/custompost"/ >
</reference>
Usar
<!– CONTACT FORM –>
{{block type="core/template" name="contactForm" form_action="/contacts/index/post" template="contacts/form.phtml"}}
<!– END OF CONTACT FORM –>
em qualquer página CMS.Ver esse página para mais algumas informações.
- .
- primeiro login no seu administrador magento
- Vá para o seu CMS> Gerenciar páginas interface
- uma vez, insira seu HTML como você normalmente faria em qualquer outra página
- Uma vez que você está feliz com a parte html, adicione esta linhas:
.{{block type="núcleo / modelo" nome="contactform" form_action="{{loy Direct_url="Contatos"}} / index / post "modelo=" Contatos / form.phtml "}}
Deixe-me saber se você tem alguma dúvida
Pelo que vale a pena - estou usando o Magento 2 e as respostas aqui são para o Magento 1.x.
Esta é a sintaxe do shortcode que funcionou para mim no Magento 2:
{{block class="Magento\Framework\View\Element\Template" name="contactForm" form_action="/contacts/index/post" template="Magento_Contact::form.phtml"}}