WordPress - Criando um formulário de contato sem plugin - Parte 1
Sempre que se pensa em formulários com WordPress, a primeira coisa que vem à mente é: vou usar um plugin! E realmente, existem plugins muito bons para fazer isso. Mas, em alguns momentos, você precisa de um controle maior no seu código.
Mas é possível criar formulários “na mão”, de forma fácil?
Claro que sim! O que não é fácil de fazer com WordPress? ;)
Vem comigo que eu te mostro como faz!
Nessa primeira parte, vamos montar nossa view, o template onde ficará o formulário de contato.
Temos várias formas de fazer isso no WordPress, mas, inicialmente, vamos fazer da forma tradicional: no Painel, crie um nova página chamada Contato, que tenha como slug contato. Então, crie na raiz do tema um arquivo chamado page-contato.php
.
Lembrando que você pode acompanhar as alterações do arquivos dessa série “Criando temas com WordPress”, através deste repositório, no Github.
Agora, o código da page-contato.php
:
1 | <?php |
Deixei o mínimo de código possível para que um formulário de contato possa funcionar corretamente. Obviamente que, quando você for fazer, vai utilizar classes para estilizar os campos. Como esse não é o foco do post, vamos deixar tão simples quanto possível :)
Explicando o código
Até a linha 4
, nada que não tenhamos visto até aqui: adicionamos o arquivo security.php
, que vai impedir que nosso arquivo seja acesso diretamente, adicionamos o header
padrão do nosso tema, e chamamos a função the_post()
, que vai nos permitir usar as Template Tags, trazendo resultados específicos para essa página de contato.
Na linha 5
, a variável $post_response
vai nos retornar o resultado do envio do e-mail. Lembra como fizemos nos posts anteriores? Primeiro, definimos a interface da nossa view, depois, fazemos o código que resopnde à essa interface :)
O $post_response
será um objeto que nos retornará o status do envio: success ou error. Com isso, podemos mostrar ao usuário uma mensagem personalizada, e estilizada com uma cor que defina o status. Posso mostrar a mensagem em verde, por exemplo, para sucesso, e vermelho para erro.
Por isso eu deixei, na linha 9
, uma classe na div
. O status será concatenado à classe alert
. Então podemos estilizar essa mensagem, baseando-se nas classes alert-success
e alert-error
.
Na linha 10
, será mostrada a mensagem de sucesso ou erro.
Mas antes disso, na linha 8
, verificamos se $post_response
tem a mensagem e o status. Se não houver (ou seja, se retornar false
), a div
com a mensagem nem é mostrada. Nós faremos com que $post_response
seja true
somente se o formulário for enviado :)
Na linha 14
, colocamos como action
do nosso formulário o link dessa página mesmo. Ou seja: ao submeter o formulário, o usuário será redirecionado para essa mesma página, com a diferença que ele verá a mensagem de erro ou sucesso após o submit.
Da linha 15
até a linha 37
, adicionamos os campos do nosso formulário. Teremos 4 campos principais: nome, email, assunto e mensagem. Além desses, criamos um campo fake, para nos livrarmos de robôs que enviam SPAM através de formulários.
Nossa view está pronta! Nos próximos artigos, veremos como criar o código que vai tratar os nossos dados e submeter esse formulário!
Até lá :D
Link para o índice dessa série:
https://blog.da2k.com.br/2015/01/11/indice-da-serie-como-criar-temas-para-wordpress/Post anterior:
https://blog.da2k.com.br/2015/02/11/wordpress-controlando-a-exibicao-dos-dados/Próximo post:
https://blog.da2k.com.br/2015/02/24/wordpress-criando-um-formulario-de-contato-sem-plugin-parte-2/
Sobre o #1postperday: https://blog.da2k.com.br/2014/12/31/um-post-por-dia/
Tem alguma sugestão para os próximos posts do #1postperday? Deixe ela aqui: https://github.com/fdaciuk/fdaciuk.github.io/issues/1