Boa tarde!
Esta dando erro ao enviar email na pagina de contato. Ajustei o e-mail do plugin e o mesmo no functions.php porém o erro persiste.
Alguma ideia do motivo de estar dando erro?
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
Boa tarde!
Esta dando erro ao enviar email na pagina de contato. Ajustei o e-mail do plugin e o mesmo no functions.php porém o erro persiste.
Alguma ideia do motivo de estar dando erro?
Oi André, aparece alguma mensagem de erro?
Aparece a mensagem que foi determinada no page.php
<?php } else { ?>
<span class="email-fracasso">Desculpe, ocorreu um erro, seu e-mail não foi enviado!</span>
<?php }
}
?>
E o que tem em cima desse else em seu código?
<?php
$css_escolhido = 'page';
require_once('header.php');
$nome = $_POST['form-nome'];
$email = $_POST['form-email'];
$mensagem = $_POST['form-mensagem'];
$formularioEnviado = isset($nome) && isset($email) && isset($mensagem);
if($formularioEnviado) {
$enviou = enviar_e_checar_email($nome, $email, $mensagem);
if($enviou) { ?>
<span class="email-sucesso">Seu e-mail foi enviado com sucesso!</span>
<?php } else { ?>
<span class="email-fracasso">Desculpe, ocorreu um erro, seu e-mail não foi enviado!</span>
<?php }
}
?>
Creio que é melhor ativar o debug no Wordpress para facilitar na identificação de erros.
O link abaixo tem algumas dicas de como identificar problemas no envio de e-mail
https://www.codeforest.net/debugging-wp-mail-like-a-boss-debugger
Ativei o debugger e deu as seguintes mensagens na pagina de contato:
Notice: Undefined index: form-nome in /Users/andrebisewski/Pixelwolf/wordpress/wp-content/themes/malura/page.php on line 5
Notice: Undefined index: form-email in /Users/andrebisewski/Pixelwolf/wordpress/wp-content/themes/malura/page.php on line 6
Notice: Undefined index: form-mensagem in /Users/andrebisewski/Pixelwolf/wordpress/wp-content/themes/malura/page.php on line 7
Ele se refere ao seguinte código:
$nome = $_POST['form-nome'];
$email = $_POST['form-email'];
$mensagem = $_POST['form-mensagem'];
Porém essas informações estão definidas conforme abaixo:
<form method="post">
<div class="form-nome">
<label for="form-nome">Nome:</label>
<input id="form-nome" type="text" placeholder="Seu nome aqui" name="form-nome">
</div>
<div class="form-email">
<label for="form-email">Email:</label>
<input id="form-email" type="email" placeholder="email@exemplo.com.br" name="form-email">
</div>
<div class="form-mensagem">
<label for="form-mensagem">Mensagem:</label>
<textarea id="form-mensagem" name="form-mensagem"></textarea>
</div>
<button type="submit">Enviar</button>
</form>
Essa mensagem de erro ocorre porque você está tentando ler o POST na hora em que abre a página, o conteúdo somente existe depois de enviar o formulário.
A mensagem de erro pode sumir desta forma:
$nome ="";
$email ="";
$mensagem = "";
if (isset($_POST['form-nome'])){
$nome = $_POST['form-nome'];
}
if (isset($_POST['form-email'])){
$email = $_POST['form-email'];
}
if (isset($_POST['form-mensagem'])){
$mensagem = $_POST['form-mensagem'];
}
Agora que o debug está ativo, tente preencher e enviar o formulário para ver qual o erro que está ocorrendo.