Estrutura

Formmail: ative o script e use forms de contato no WordPress

Google+ Pinterest LinkedIn Tumblr
Anúncios Google

Se você usa WordPress e tem um formulário de contato no seu blog, é quase certo que o criou usando algum plugin. O que muitos blogueiros não sabem, por desconhecimento técnico, é que vários servidores oferecem sem custo adicional um serviço interno de e-mail que por padrão é desativado. Basta ativá-lo pelo painel do WHM e criar o formulário.

O serviço em questão é o Formmail, script que pega dados enviados via formulário e encaminha para um e-mail, normalmente algum dos criados no próprios servidor. Assim, se você já configurou uma conta interna de e-mail  (por exemplo, se seu domínio é www.seublog.com.br, o e-mail é [email protected]), pode encaminhar mensagens da página de contato pra lá.

É muito fácil de fazer e você se livra dos plugins. Veja como.

Ative o Formmail CGI

Comece acessando o WHM de seu servidor. Procure pela opção Tweak Settings, em Server Configuration. Lá, clique na guia Software e verifique se “Enable FormMail-clone CGI” está ativo. O padrão é Off.

tweaking settingd formmail cgi

Nota: se seu servidor não dá acesso ao WHM (caso de compartilhados), é provável que o Formmail já esteja ativo. Se não tiver certeza, entre em contato com eles e pergunte.

Criando o formulário

Com o script formmail ativo, é hora de criar o formulário. Como vamos precisar de um pouco de Javascript para a validação (checar se os campos foram preenchidos antes do envio), não adianta só jogar a marcação em uma página comum do WordPress. É melhor criar um modelo de página.

Procure na instalação do seu blog, na pasta do tema usado, pelo arquivo page.php. Duplique-o e nomeie como “contato.php”.

No começo da página, logo depois da abertura <?php, coloque o comentário:

/*
Template Name: Contato
*/

Isso define o nome do modelo. Se já tiver um “template name”, mude para Contato. Na porção que carrega o conteúdo da página (geralmente dentro de uma div “content”), coloque a marcação do form.

Esse é conteúdo da “contato.php”, baseado no tema TwentyThirteen:

<?php
/*
Template Name: Contato
*/

get_header(); ?>

	<div id="primary" class="content-area">
		<div id="content" class="site-content" role="main">

			<?php /* The loop */ ?>
			<?php while ( have_posts() ) : the_post(); ?>

				<article id="post-<?php the_ID(); ?>" <?php post_class(); ?>>
					<header class="entry-header">
						<?php if ( has_post_thumbnail() && ! post_password_required() ) : ?>
						<div class="entry-thumbnail">
							<?php the_post_thumbnail(); ?>
						</div>
						<?php endif; ?>

						<h1 class="entry-title"><?php the_title(); ?></h1>
					</header><!-- .entry-header -->

					<div class="entry-content">
<script type="text/javascript">
function validar()
{
if (/S+/.test(document.meumailer.Nome.value) == false) alert ("Você não disse seu nome!");
else if (/^[email protected][a-z0-9_.-]+.[a-z]{2,6}$/i.test(document.meumailer.Email.value) == false) alert ("Você não forneceu um e-mail válido!");
 else if (/S+/.test(document.meumailer.Mensagem.value) == false) alert ("Digite sua mensagem!");
  else {
       document.meumailer.submit();
       alert ('Obrigado, confirme agora para enviar!');
       }
}
</script>
<form action="http://www.seublog.com.br/cgi-sys/formmail.pl" method="post" name="meumailer">
<input type="hidden" name="recipient" value="[email protected]">
<input type="hidden" name="subject" value="Contato via Meu Blog">
Envie sua mensagem<br /><br />
Nome: <input type="text" name="Nome" size="30" value=""><br />
E-Mail: <input type="text" name="Email" size="30" value=""><br />
Mensagem: <textarea name="Mensagem" cols="50" rows="5"></textarea><br />
<input type="button" value="Enviar!" onclick="validar();">
<input type="hidden" name="redirect" value="http://www.seublog.com.br/">
<input type=hidden name="env_report" value="REMOTE_HOST,HTTP_USER_AGENT">
</form>		
						<?php wp_link_pages( array( 'before' => '<div class="page-links"><span class="page-links-title">' . __( 'Pages:', 'twentythirteen' ) . '</span>', 'after' => '</div>', 'link_before' => '<span>', 'link_after' => '</span>' ) ); ?>
					</div><!-- .entry-content -->

					<footer class="entry-meta">
						<?php edit_post_link( __( 'Edit', 'twentythirteen' ), '<span class="edit-link">', '</span>' ); ?>
					</footer><!-- .entry-meta -->
				</article><!-- #post -->

				<?php comments_template(); ?>
			<?php endwhile; ?>

		</div><!-- #content -->
	</div><!-- #primary -->

<?php get_sidebar(); ?>
<?php get_footer(); ?>

O trecho que você vai usar é o script e o formulário, esse:

<script type="text/javascript">
function validar()
{
if (/S+/.test(document.meumailer.Nome.value) == false) alert ("Você não disse seu nome!");
else if (/^[email protected][a-z0-9_.-]+.[a-z]{2,6}$/i.test(document.meumailer.Email.value) == false) alert ("Você não forneceu um e-mail válido!");
 else if (/S+/.test(document.meumailer.Mensagem.value) == false) alert ("Digite sua mensagem!");
  else {
       document.meumailer.submit();
       alert ('Obrigado, confirme agora para enviar!');
       }
}
</script>
<form action="http://www.seublog.com.br/cgi-sys/formmail.pl" method="post" name="meumailer">
<input type="hidden" name="recipient" value="[email protected]">
<input type="hidden" name="subject" value="Contato via Meu Blog">
Envie sua mensagem<br /><br />
Nome: <input type="text" name="Nome" size="30" value=""><br />
E-Mail: <input type="text" name="Email" size="30" value=""><br />
Mensagem: <textarea name="Mensagem" cols="50" rows="5"></textarea><br />
<input type="button" value="Enviar!" onclick="validar();">
<input type="hidden" name="redirect" value="http://www.seublog.com.br/">
<input type=hidden name="env_report" value="REMOTE_HOST,HTTP_USER_AGENT">
</form>

Altere os dados conforme sua necessidade.

  • Em www.seublog.com.br, coloque o endereço do seu blog, claro.
  • No campo recipient, coloque o e-mail que vai receber a mensagem. Evite e-mail externos.
  • O redirect é para onde o leitor será redirecionado ao enviar a mensagem. Se quiser direcionar o visitante para uma página de agradecimento, por exemplo, altere o url do redirect:
    <input type="hidden" name="redirect" value="http://www.seublog.com.br/">

Se precisar de opções avançadas como campos de envio de imagem, data, etc, pesquise por aí por “formmail cgi form”, tem muitas opções.

Se seu tema for outro, procure pelo lugar (dentro da div content) e insira esse código. Salve o arquivo contato.php, envie para o servidor. Se tiver dúvida sobre a criação de Modelos de Página, consulte  o WordPress Codex.

Crie a página

Crie uma nova página do seu blog WordPress e aplique o modelo da página de contato.

page template wordpress

Se tudo estiver certo, a página carrega o que você colocou no modelo criado, e quando o usuário clicar em Enviar, a mensagem será direcionada através do Formmail para o e-mail que você especificou.

Fundador do Tutoriart em 2010, é ex-instrutor de Photoshop, design web e gráfico. Em quase uma década de redação online, tem cerca de 1500 artigos publicados. Gerencia também o Memória BIT.

Pin