Eu estou criando um sistema do zero mas estou encontnrando algumas dificuldades e não estou sabendo resolver, então vim recorrer ajuda de vocês.
Aqui está todo o meu código: https://github.com/PauloJagata/aprendizado/
Eu fiz um sistema de rotas mas só mostra o conteúdo da '/' não sei porque, quando eu tento acessar o register nada muda.
E eu também quero que se não estiver liberado na rota mostra o erro de 404, mas quando eu tento acessar um link inválido, nada acontece.
Alguém pode me ajudar com isso? E se tiver algumas sugestão para melhoria do código também estou aceitando.
Preciso fazer uma inserção no DB de registros referente a pagamentos, quando for no crédito será realizado o insert com sua respectiva data de compensação e valor da parcela exemplo:
3 parcelas de 100.00 e cada registro em seu devido mês:
INSERT INTO tabela (valor, data) VALUES (100, 2022-08-17),(100, 2022-09-17),(100, 2022-10-17)
É mais eficiente fazer da forma acima ou colocar 3 INSERT?
Ou existe forma melhor de fazer isso?
Erro retornado no console do navegador: 400 bad request
Rastreei o erro ate essa parte no arquivo admin-ajax.php mudando o valor de resposta de 0 para 1:
if ( is_user_logged_in() ) {
// If no action is registered, return a Bad Request response.
if ( ! has_action( "wp_ajax_{$action}" ) ) {
wp_die( '0', 400 );
}
Tentei de tudo, mas infelizmente nao entendi oq realmente significa esse login e como ele funciona.
Vi algumas pessoas tendo problema com o host, no meu caso estou usando hostinger. (Nao creio que isso e relevante mas ta ai.)
Código utilizado:
Javascript
function formValidation() {
event.preventDefault();
var name = document.forms["contactForm"]["name"].value;
var email = document.forms["contactForm"]["email"].value;
var subject = document.forms["contactForm"]["subject"].value;
var message = document.forms["contactForm"]["message"].value;
document.getElementById('status').innerHTML = '';
var errorMessage="<span class='error'>All fields are required.</span>";
var regEx = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
if (name.trim() == "" ||email.trim() == "" || subject.trim() == "" || message.trim() == "") {
document.getElementById('status').innerHTML = errorMessage;
return false;
}
if (!regEx.test(email)) {
var errorMessage="<span class='error'>Invalid email.</span>";
document.getElementById('status').innerHTML = errorMessage;
return false;
}
processContactSubmit();
return true;
}
function processContactSubmit() {
var request = new XMLHttpRequest();
request.open("POST", "/wp-admin/admin-ajax.php?action=process_contact_form");
request.onreadystatechange = function() {
if(this.readyState === 4 && this.status === 200) {
document.getElementById("status").innerHTML = this.responseText;
}
};
var myForm = document.getElementById("contactForm");
var formData = new FormData(contactForm);
request.send(formData);
}
functions.php
add_action('wp_ajax_nopriv_process_contact_form', 'process_contact_form');
add_action('wp_ajax_process_contact_form', 'process_contact_form'); //Retirar essa parte para error no console, no contrario ira aparecer no navegador o numero 0.
function process_contact_form() {
$to = "Recipient Email Address";
$subject = $_POST["subject"];
$headers = "Testing";
$message = $_POST["message"];
$attachments = "";
$sent = wp_mail($to, $subject, $message, $headers, $attachments);
if (! $sent) {
echo "<span class='error'>Problem in sending mail.</span>";
} else {
echo "<span class='success'>Hi, thank you for the message.</span>";
}
wp_die();
}
Html
<form name="contactForm" id="contactForm" method="post" onsubmit="return formValidation()" action="">
<p class="comment-form-comment"><textarea id="message" name="message" required="" placeholder="" aria-required="true"></textarea></p>
<p class="comment-form-author"><label for="author">Nome: </label> <input id="name" name="name" required="" size="30" type="text" value=" " /></p>
<p class="comment-form-author about"><label for="author">Assunto: </label> <input id="subject" name="subject" required="" size="40" type="text" value=" " /></p>
<p class="comment-form-email"><label for="email">Email: </label> <input id="email" name="email" required="" size="30" type="text" value="" /></p>
<p class="form-submit"><input id="submit" class="submit" name="email_contato" type="submit" value="Enviar" /></p>
</form>
<h3><div id="status"></div></h3>