0
Como colocar um formulário de contato no wordpress sem o uso de plugin
Posted by Neusa Rodrigues
on
06:30
in
Formulário de Contato
Nada contra plugins, são muito bons, mas em determinadas situação é bom evitar, na minha opinião formulário de contato é uma delas, pois evita de ficar carregando o script do formulário em todas as página, desta forma que vou mostrar o script só carrega na própria página de contato. E para isso acontecer vamos criar um template especifico para página de contato.
Todos templates do wordpress tem o arquivo “page.php”, ele é o arquivo responsável em exibir todas páginas separadas, sabendo disto vamos fazer o seguinte: Entre na pasta do template, faça uma copia do “page.php” e romei-a para “contato.php” e abra a mesma em seu editor.
No topo dela vai ter o seguinte comentário.
/**
2.
* The template for displaying all pages.
3.
* ...
4.
*/
Mude para:
1.
/**
2.
* The template name: Contato
3.
* ...
4.
*/
Este “The template name: Contato” é a linha que vai fazer toda a diferença, com isso este template vai aparecer na lista de “modelos” de página para selecionar.
< ?php
02.
function
h(
$str
) {
03.
return
htmlentities(
$str
);
04.
}
05.
06.
function
noempty(
$str
) {
07.
if
(preg_match(
'/[a-z]/'
,
$str
))
08.
return
true;
09.
else
10.
return
false;
11.
}
12.
13.
if
(isset(
$_POST
[
'enviar'
])) {
14.
if
(!noempty(
$_POST
[
'nome'
])
or
!noempty(
$_POST
[
'assunto'
])
or
!is_email(
$_POST
[
'email'
])
or
!noempty(
$_POST
[
'msg'
])) {
15.
$_SESSION
[
'info'
] =
'Preencha todos campos corretamente.'
;
16.
}
17.
18.
else
{
19.
$headers
=
'From: '
.
$_POST
[
'email'
] .
"\r\n"
.
20.
'Reply-To: '
.
$_POST
[
'email'
] .
"\r\n"
.
21.
'X-Mailer: PHP/'
. phpversion();
22.
23.
if
(@mail(get_bloginfo(
'admin_email'
),
$_POST
[
'assunto'
],
$_POST
[
'msg'
],
$headers
)) {
24.
$_SESSION
[
'info'
] =
'E-mail enviado com sucesso.'
;
25.
header(
'Location: http://'
.
$_SERVER
[
'SERVER_NAME'
] .
$_SERVER
[
'REQUEST_URI'
]);
26.
exit
;
27.
}
else
{
28.
$_SESSION
[
'info'
] =
'Erro no servidor.'
;
29.
}
30.
}
31.
}
32.
?>
01.
<form method=
"post"
action=
""
class
=
"contato"
>
02.
< ?php
03.
if
(isset(
$_SESSION
[
'info'
])) {
04.
echo
'<div class="info">'
.
$_SESSION
[
'info'
] .
''
;
05.
unset(
$_SESSION
[
'info'
]);
06.
}
07.
?>
08.
<div>
09.
<label
for
=
"nome"
>* Nome</label><br />
10.
<input type=
"text"
name=
"nome"
value=
"<?php echo h(@$_POST['nome']) ?/>"
id=
"nome"
/>
11.
</div>
12.
<div>
13.
<label
for
=
"email"
>* E-mail</label><br />
14.
<input type=
"text"
name=
"email"
value=
"<?php echo h(@$_POST['email']) ?/>"
id=
"email"
/>
15.
</div>
16.
<div>
17.
<label
for
=
"assunto"
>* Assunto</label><br />
18.
<input type=
"text"
name=
"assunto"
value=
"<?php echo h(@$_POST['assunto']) ?/>"
id=
"assunto"
/>
19.
</div>
20.
<div>
21.
<label
for
=
"msg"
>* Mensagem</label><br />
22.
<textarea name=
"msg"
>< ?php
echo
h(@
$_POST
[
'msg'
]) ?></textarea>
23.
</div>
24.
<div>
25.
<input type=
"submit"
name=
"enviar"
value=
"Enviar"
/>
26.
</div>
27.
</form>
E está pronto, é só editar ou criar a página de contato e na hora de salvar selecionar o modelo “contato” nas opções “Atributos de Página”. Este é só um exemplo você pode faze o formulário como desejar.
[update]: Formulário de contato melhorado.
referência: http://www.pinceladasdaweb.com.br/blog/2010/10/15/como-colocar-um-formulario-de-contato-no-wordpress-sem-o-uso-de-plugin/
Postar um comentário