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.

Foi útil?

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.

    .
  1. primeiro login no seu administrador magento
  2. Vá para o seu CMS> Gerenciar páginas interface
  3. uma vez, insira seu HTML como você normalmente faria em qualquer outra página
  4. Uma vez que você está feliz com a parte html, adicione esta linhas:
  5. .

    {{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"}}
Licenciado em: CC-BY-SA com atribuição
Não afiliado a magento.stackexchange
scroll top