splash_page_template_chooser

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

(Visited 4 times, 1 visits today)

7 Comments

  1. Avatar of Moises Moises 16 de dezembro de 2013 at 23:57

    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

    Reply
    1. Avatar of Angel Costa Angel Costa - Site Author 18 de dezembro de 2013 at 16:59

      Havia um erro no código:

      $headers = ‘From: ‘.$name.” . “rn” . ‘Reply-To: ‘ . $email;

      Reply
  2. Avatar of Marcos Lingner Marcos Lingner 15 de janeiro de 2014 at 10:11

    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

    Reply
  3. Avatar of Marcelo Araujo Marcelo Araujo 6 de fevereiro de 2014 at 08:12

    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!

    Reply
    1. Avatar of Angel Costa Angel Costa - Site Author 6 de fevereiro de 2014 at 22:26

      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”;

      Reply
      1. Avatar of Marcelo Araujo Marcelo Araujo 7 de fevereiro de 2014 at 03:19

        Valeu… vou implementar aqui. Sucesso!

        Reply
  4. Avatar of Marcus Marcus 2 de junho de 2015 at 18:36

    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

    Reply

Leave A Comment

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *