A interação dos visitantes com o conteúdo e autores de um blog, é item indispensável da lista de funcionalidades presentes em um projeto de qualquer profissional que deseja gerenciar seu próprio projeto. A abertura do espaço de comentários a cada artigo publicado é um excelente exemplo da relação entre visitante e administrador que o WordPress oferece de modo genuíno, com a funcionalidade incorporada a ferramenta por padrão.
Outra maneira de receber um melhor feedback do público é a utilização de um formulário de contato. Nesse diferente modelo de comunicação, as informações não são levadas ao público tornando a comunicação mais pessoal e privativa. Essa solução é ideal para conseguir contatos profissionais, propostas e outros assuntos que são tratados com maior cuidado e sigilo, por assim dizer.
Abaixo serão apresentadas algumas técnicas para realização de um formulário de contato próprio para seu site WordPress.
LINK DE EMAIL
Uma simples e rápida alternativa a ser aplicada é o uso de links de contatos. Esses links são ligações comuns que irão chamar o software padrão para envio e recebimento de emails do usuário:
<a href="mailto:contato@dominio.com" title="Fale Conosco">Fale Conosco</a>
Além de informar o email para o qual a mensagem será destinada, através do ‘mailto’ é possível identificar também:
- Múltiplos endereços – Deve-se usar vírgulas separando cada endereço
- Assunto da mensagem – Informar o parâmetro ‘subject’
- Envio de cópias – Com a utilização do parâmetro ‘cc’
- Envio de cópias ocultas – Parâmetro ‘bcc’
- Texto padrão no corpo da mensagem – Identificado através do parâmetro ‘body’
Como exemplo, um link com todos os parâmetros passados ficaria da seguinte forma:
<a href="mailto:contato@dominio.com,teste@dominio.com?cc=email@dominio.com&bcc=webmaster@dominio.com&subject=Fale Conosco&body=Enviando email através do link de contato" title="Fale Conosco">Fale Conosco</a>
Essa prática pode não ser a melhor escolha para um projeto, dado que nem todos usuários se utilizam de um software para trabalhar com seus emails. Nesses casos o melhor a se fazer é proporcionar ao visitante uma página contendo um formulário de contato.
CONTACT FORM
São muitos os plugins disponíveis que permitem a criação de formulários no WordPress, porém poucos são tão eficientes quanto o Contact Form 7. Através dele é possível criar inúmeros formulários especificando os campos que cada um possuirá. Todos os formatos de campos são aceitos incluindo campos que se encarregarão de enviar arquivos anexos ao email informado nas configurações do formulário.
O uso do Contact Form é intuitivo, bastanta ao usuário criar os campos, o conteúdo do email que será enviado e informar para qual endereços aquele formulário deverá enviar as informações. Realizadas as configurações, a inserção do formulário em uma página ou post do blog se dá através do shortcode que a página administrativa do plugin informará, algo como:
[ contact-form 1 "Nome do formulário" ]
No entanto a utilização do plugin, mesmo que eficiente contento validação de campos e outros recursos mais, pode não corresponder as suas necessidades, seja pela ocupação do espaço em disco e banco de dados ou até mesmo por falta de familiariedade com o recurso. Em uma solução mais simplificada é possível criar seu próprio formulário sem o uso de plugins.
FORMULÁRIO DE CONTATO PRÓPRIO
Para criação de um formulário de contato personalizado será feito o uso dos Modelos de páginas do WordPress. O modelo de página de nome ‘Contato’ será criado através do arquivo ‘page-contact.php’ localizado na pasta do tema possuindo as seguintes instruções:
<?php /* Template Name: Contato */ get_header(); ?> <div id="content"> <?php if ( have_posts() ) : the_post(); the_content(); ?> <form method="post" id="contact" action=""> <fieldset> <legend>Formulário de contato</legend> <ul> <li> <label for="txt_nome">Nome</label> <input type="text" id="txt_nome" name="txt_nome" /> </li> <li> <label for="txt_email">Email</label> <input type="text" id="txt_email" name="txt_email" /> </li> <li> <label for="txt_msg">Descrição</label> <textarea name="txt_msg" id="txt_msg" rows="10" cols="50"></textarea> </li> <li> <input type="submit" class="submit" name="enviar-email" value="Enviar" /> </li> </ul> </fieldset> </form> <?php endif; ?> </div><!-- #content --> <?php get_sidebar(); get_footer(); ?>
Conforme especificado na tag form, o envio do formulário será para a mesma página que está sendo exibida. Desse modo a verificação do envio das informações será feita no cabeçalho do mesmo arquivo; caso o formulário tenha sido submetido será chamado o arquivo ‘contact.php’ localizado em uma nova pasta chamada ‘contact’ dentro da pasta do tema:
<?php /* Template Name: Contato */ if ( $_POST[ 'enviar-email' ] ) require TEMPLATEPATH . "/contact/contact.php"; get_header(); ?>
A criação da pasta ‘contact’ será em razão de uma melhor organização dos arquivos. Dentro da referida pasta será criado o arquivo ‘contact.php’ responsável por receber as informações, embutí-las em uma mensagem que será enviada por email ao administrador do blog:
<?php $msg = ''; $status = 'err'; $nome = trim( $_POST[ 'txt_nome' ] ); $email = trim( $_POST[ 'txt_email' ] ); $texto = trim( $_POST[ 'txt_msg' ] ); if ( ( $nome == '' ) || ( $email == '' ) || ( $texto == '' ) ) { $msg = 'Preencha todos os campos!'; } else { $destinatario = 'contato@dominio.com'; $assunto = 'Formulário de Contato'; $data_hora = date( 'd-m-Y | H:i:s' ); $mensagem = file_get_contents( TEMPLATEPATH . '/contact/contact.htm' ); $mensagem = str_replace( '[nome]', $nome, $mensagem ); $mensagem = str_replace( '[email]', $email, $mensagem ); $mensagem = str_replace( '[data_hora]', $data_hora, $mensagem ); $mensagem = str_replace( '[mensagem]', nl2br( $texto ), $mensagem ); $cabecalhos = array( 'From: '.$email, 'Subject: '.$assunto, 'Return-Path: '.$email, 'MIME-Version: 1.0', 'X-Priority: 3', 'Content-Type: text/html' ); $cabecalhos = implode( '\r\n', $cabecalhos ); if ( !@mail( $destinatario, $assunto, $mensagem, $cabecalhos ) ) { $msg = 'A mensagem não pôde ser enviada...'; } else { $status = 'ok'; $msg = 'Mensagem enviada com sucesso!'; } } ?>
O referido arquivo irá obter a formatação do email de um arquivo HTML externo de nome ‘contact.html’; esse por sua vez deverá possuir os campos para posterior substituição com a informação enviada pelo visitante do blog. Veja o exemplo de uso:
<h1>Formulário de contato</h1> <table> <p><strong>Data de envio</strong>: [data_hora]</p> <p><strong>Nome</strong>: [nome]</p> <p><strong>Email</strong>: [mail]</p> <p><strong>Mensagem</strong>:<br />[mensagem]</p> </table>
De volta ao arquivo do modelo de página, um aviso será impresso em tela para o visitante indicando se as informações foram ou não corretamente enviadas inserindo o seguinte código:
<?php // Em continuação ao arquivo... the_post(); if ( $msg ) echo '<h3 class="'.$status.'">'.$msg.'</h3>'; the_content(); ?>
Abraços