Resolver problemas
Erro "An error occurred while sending the message" no formulário de contacto do PrestaShop
A mensagem An error occurred while sending the message, please try again. indica que o módulo contactform rejeitou o envio, mas não identifica por si só a causa. Nas versões atuais pode aparecer se o campo armadilha url contiver dados ou se o token faltar, não coincidir com a sessão ou tiver expirado.
Abra uma cópia nova do formulário e repita um único teste enquanto revê o pedido em Rede / Network nas ferramentas do navegador. Verifique se são enviados url e token, e anote a versão do PrestaShop, do módulo contactform e do tema. Há versões do módulo que estabelecem uma validade de 600 segundos, pelo que um separador aberto durante mais tempo também pode falhar.
Se o pedido não contiver esses campos, compare o modelo do módulo com o override ativo do tema:
/themes/Nombre_Tema/modules/contactform/views/templates/widget/contactform.tpl
A solução preferível é atualizar o tema ou pedir ao programador um override compatível com a versão instalada do contactform. Só se tiver confirmado que o override é antigo e que faltam os campos, incorpore o bloco equivalente ao do modelo oficial antes do botão de envio:
<style>
input[name=url] {
display: none !important;
}
</style>
<input type="text" name="url" value="" />
<input type="hidden" name="token" value="{$token|escape:'htmlall':'UTF-8'}" />
Esvazie a cache do PrestaShop e repita o envio com uma página acabada de carregar. Se os campos já estavam presentes, não modifique o modelo: reveja a resposta exata, os cookies e os registos da aplicação antes de atribuir a falha ao tema.
Consulte o modelo oficial do módulo contactform correspondente à versão instalada.
Cache, sessão e entrega
Verifique que uma cache de página ou CDN não está a reutilizar o formulário com o token de outra sessão ou com um token expirado. Teste a partir de uma página acabada de carregar e conserve os cookies durante o envio; não elimine a validação do token nem o campo armadilha para forçar a aceitação.
O bloco mostrado só serve se essa versão do módulo fornecer a variável token ao modelo. Compare com a etiqueta da versão instalada, não apenas com o ramo dev do repositório. Depois de o formulário ser aceite, verifique também o destino da mensagem: passar a validação não garante que o SMTP a entregue.
Também lhe pode ser útil
- Erro ao instalar módulos no PrestaShop, The file is missing Diagnostique The file is missing a partir do código de upload do PHP e dos registos antes de alterar...
- O Update Assistant mostra "Please fix the following error(s)" Localize o requisito ou o caminho sem permissão de escrita que bloqueia o Update Assistant do Presta...
- Ativar temporariamente o modo de depuração do PrestaShop Obtenha a exceção exata ativando temporariamente _PS_MODE_DEV_ a partir do painel ou do defines.inc....
- Aviso de eliminação de atividade em curso no Moodle Localize a tarefa ad hoc course_delete_modules que mantém uma eliminação pendente e execute o cron d...
Algo não bate certo ou mudou? Diga-nos e revemos.