
Quer um formulário de contato fácil e rápido para o seu blog WordPress? Basta criar um template para fazer isso sem precisar de plugins.
Salve o código com qualquer nome, por exemplo contato.php, e envie para a pasta do seu tema. Depois basta criar a página onde quer o formulário e selecionar o template Contato na lateral da página.
Lembre de inserir as divs necessárias para que o código se adapte ao layout do seu site.
<?php /* Template Name: Contato */ ?> <?php if(isset($_POST['submitted'])) { if(trim($_POST['contactName']) === '') { $nameError = 'Digite o seu nome.'; $hasError = true; } else { $name = trim($_POST['contactName']); } if(trim($_POST['email']) === '') { $emailError = 'Digite o seu email.'; $hasError = true; } else if (!preg_match("/^[[:alnum:]][a-z0-9_.-]*@[a-z0-9.-]+.[a-z]{2,4}$/i", trim($_POST['email']))) { $emailError = 'Digite um email válido.'; $hasError = true; } else { $email = trim($_POST['email']); } if(trim($_POST['comments']) === '') { $commentError = 'Digite um comentário.'; $hasError = true; } else { if(function_exists('stripslashes')) { $comments = stripslashes(trim($_POST['comments'])); } else { $comments = trim($_POST['comments']); } } if(!isset($hasError)) { $emailTo = get_option('tz_email'); if (!isset($emailTo) || ($emailTo == '') ){ $emailTo = get_option('admin_email'); } $subject = 'Mensagem de '.$name; $body = "Nome: $name nnEmail: $email nComentário: $comments"; $headers = 'From: '.$name.' <'.$emailTo.'>' . "rn" . 'Reply-To: ' . $email; wp_mail($emailTo, $subject, $body, $headers); $emailSent = true; } } ?> <?php get_header(); ?> <?php if (have_posts()) : while (have_posts()) : the_post(); ?> <h1 class="entry-title"><?php the_title(); ?></h1> <?php if(isset($emailSent) && $emailSent == true) { ?> <p>Email enviado com sucesso.</p> <?php } else { ?> <?php the_content(); ?> <?php if(isset($hasError) || isset($captchaError)) { ?> <p class="error">Ocorreu um erro.<p> <?php } ?> <form action="<?php the_permalink(); ?>" id="contactForm" method="post"> <label for="contactName">Nome:</label> <input type="text" name="contactName" id="contactName" value="<?php if(isset($_POST['contactName'])) echo $_POST['contactName'];?>" /> <?php if($nameError != '') { ?> <span class="error"><?=$nameError;?></span> <?php } ?> <label for="email">Email</label> <input type="text" name="email" id="email" value="<?php if(isset($_POST['email'])) echo $_POST['email'];?>" /> <?php if($emailError != '') { ?> <span class="error"><?=$emailError;?></span> <?php } ?> <label for="commentsText">Mensagem:</label> <textarea name="comments" id="commentsText" rows="20" cols="30"><?php if(isset($_POST['comments'])) { if(function_exists('stripslashes')) { echo stripslashes($_POST['comments']); } else { echo $_POST['comments']; } } ?></textarea> <?php if($commentError != '') { ?> <span class="error"><?=$commentError;?></span> <?php } ?> <input type="submit" value="Enviar mensagem"> <input type="hidden" name="submitted" id="submitted" value="true" /> </form> <?php } ?> <?php endwhile; endif; ?> <?php get_sidebar(); ?> <?php get_footer(); ?>
Dica vinda do Cats Who Code
Ola
tem um problema aqui
$headers = ‘From: ‘.$name.’ ‘ . “rn” . ‘Reply-To: ‘ . $email;
quando vamos retornar o email fica tudo (todos os email’s) misturado no campo para
Obrigado
Havia um erro no código:
$headers = ‘From: ‘.$name.” . “rn” . ‘Reply-To: ‘ . $email;
Olá! Como eu faço para enviar os email para todos os administradores? tentei criar mais um usuário do tipo administrador e não foi.. Obrigado
Em primeiro lugar, obrigado por disponibilizar o conhecimento.
Amigo, temo como adicionar uma opção de departamentos, por exemplo, selecionar enviar para Financeiro, Suporte, Outros assuntos
Valeu!
Marcelo, no formulário, você adicionaria algo como:
No php:
if(trim($_POST[‘departamento’])) {
$dept= trim($_POST[‘departamento’]);
}
e também:
$body = “Nome: $name nnEmail: $email $dept nComentário: $comments”;
Valeu… vou implementar aqui. Sucesso!
Se alguém puder me ajudar tenho um contato em meu site no WordPress porém na hospedagem onde desenvolvo o contato funciona e entrega o e-mail mas na Locaweb que é a hospedagem do cliente não funciona já entrei em contato com eles muitas vezes e nada. Fico no aguardo