Pular para o conteúdo principal

Como colocar um formulário de contato no wordpress sem o uso de plugin

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.

/**
 * The template for displaying all pages.
 * ...
 */

Mude para:

/**
 * The template name: Contato
 * ...
 */

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.

Agora a única coisa que temos que fazer é um formulário de contato normal.

Copei este código logo após do comentário do topo, repare que uso a função "get_bloginfo()" para pegar o e-mail do admin.

function h($str) {
    return htmlentities($str);
}

function noempty($str) {
    if (preg_match('/[a-z]/', $str))
        return true;
    else
        return false;
}

if (isset($_POST['enviar'])) {
    if (!noempty($_POST['nome']) or !noempty($_POST['assunto']) or !is_email($_POST['email']) or !noempty($_POST['msg'])) {
        $_SESSION['info'] = 'Preencha todos campos corretamente.';
    }
    
    else {
        $headers = 'From: ' . $_POST['email'] . "\r\n" .
            'Reply-To: ' . $_POST['email']  . "\r\n" .
            'X-Mailer: PHP/' . phpversion();

        if(@mail(get_bloginfo('admin_email'), $_POST['assunto'], $_POST['msg'], $headers)) {
            $_SESSION['info'] = 'E-mail enviado com sucesso.';
            header('Location: http://' . $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI']);
            exit;
        } else {
            $_SESSION['info'] = 'Erro no servidor.';
        }
    }
}

Agora o formulário, de preferencia abaixo da função "the_content()".

<form method="post" action="" class="contato">
        <?php
            if (isset($_SESSION['info'])) {
                echo '<div class="info">' . $_SESSION['info'] . '</div>';
                unset($_SESSION['info']);
            }
        ?>
        <div>
            <label for="nome">* Nome</label> 
            <input type="text" name="nome" value="<?php echo isset($_POST['nome']) ? h($_POST['nome']) : null ?>" id="nome" />
        </div>
        <div>
            <label for="email">* E-mail</label> 
            <input type="text" name="email" value="<?php echo isset($_POST['email']) ? h($_POST['email']) : null ?>" id="email" />
        </div>
        <div>
            <label for="assunto">* Assunto</label> 
            <input type="text" name="assunto" value="<?php echo isset($_POST['assunto']) ? h($_POST['assunto']) : null ?>" id="assunto" />
        </div>
        <div>
            <label for="msg">* Mensagem</label> 
            <textarea name="msg"><?php echo isset($_POST['msg']) ? h($_POST['msg']) : null ?></textarea>
        </div>
        <div>
            <input type="submit" name="enviar" value="Enviar" />
        </div>
</form>

Um pouco de CSS para deixar mais bacaninha.

form.contato label {
    display:block;
}

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". Esse é só um exemplo, você pode faze o formulário como desejar.

Comentários

Postagens mais visitadas deste blog

Removendo cache da memória no Linux

Para que o processador faça determinadas tarefas o mais rápido possível é gerado vários tipos de cache, um deles usa uma parte de memória RAM, só que as vezes este cache é um incomodo, para resolver isso geralmente os usuários reiniciam o computador, só que isto não é necessário. No windows existem programas que fazem a limpeza do cache da memória que podem ser encontrados facilmente em sites de downloads, no linux basta digita um comando. sysctl -w vm.drop_caches=3 E também tem está outra forma. echo 3 > /proc/sys/vm/drop_caches

Baixando vídeos do YouTube pelo console no Arch Linux

Ontem vendo a lista de pacotes atualizados no archlinux.org teve um que me chamou atenção, o youtube-dl com isso instalei para testa-lo. sudo pacman -S youtube-dl Apenas acessando o youtube-dl --help vi como era fácil utiliza-lo, é só colocar uma url do youtube e pronto o script começa a fazer download. youtube-dl http://www.youtube.com/watch?v=1ZvCqslpp6M Por padrão o pacote abaixa a melhor qualidade possível, mas você pode ver como escolher isto facilmente e ver varias outras opções no youtube-dl --help .

Instalando e configurando o sudo no Arch Linux

O comando sudo do sistema operacional Unix permite a usuários comuns obter privilégios de outro usuário, em geral o super usuário, para executar tarefas específicas dentro do sistema de maneira segura e controlável pelo administrador. O nome é uma forma abreviada de se referir a s ubstitute u ser d o (fazer substituindo usuário) ou s uper u ser do (fazer como super usuário). Fonte: http://pt.wikipedia.org/wiki/Sudo .