header.phpで書かれたカスタムフォームをajaxで送信しようとしましたが、送信されたデータで特定のメールアドレスにメールを送信しようとしました。 tahtはjqueryファイルがロードされていることを意味しますが、ajaxurlを呼び出してメールを送信しようとすると404エラーが発生します。私は100%エラーがajax呼び出しであることを確認しています。メールを送信するためのfunction.phpで関数を作成する必要がありますが、解決できない人は誰でもこの問題を解決できますか? header.phpの中function.phpでjqueryのファイルを呼び出すajaxで送信フォームにエラーがあり、ワードプレスでメールを送信する
<form id="wp_con_form" method="post">
<ul class="form-list wp_contact_form_ul cf">
<li>
<input type="text" name="name" id="name" placeholder="Name *" class="text-field wp_con_frm_name">
</li>
<li>
<input type="text" name="phone" id="phone" placeholder="Phone *" class="text-field wp_con_frm_phone">
</li>
<li>
<input type="text" name="email" id="email" placeholder="Email *" class="text-field wp_con_frm_email">
</li>
<li>
<input type="text" name="agency" id="agency" placeholder="agency" class="text-field ">
</li>
<li class="full">
<textarea name="message" id="message" placeholder="Message *" class="text-field wp_con_frm_message"></textarea>
</li>
<li class="form-button">
<input type="submit" value="Send" id="wp_con_frm_btn" class="button" />
</li>
<div class="wp_cont_form_msg"></div>
</ul>
</form>
がでメールを送信するための
wp_enqueue_style('themestyle', get_template_directory_uri() . '/assets/css/style.css',false,'1.1','all');
wp_localize_script("themestyle","the_ajax_theme", array("ajaxurl_anyName" => admin_url("admin-ajax.php")));
jQueryの検証とAJAX呼び出しのためのファイル
var j = jQuery.noConflict();
j(document).ready(function(){
function validateContact(){
var output = true;
j('.wp_contact_form_ul li').removeClass('wp_cont_frm_err_msg');
if(!(j(".wp_con_frm_name").val())){
j(".wp_con_frm_name").parent().addClass('wp_cont_frm_err_msg');
output = false;
}
if(!(j(".wp_con_frm_phone").val())){
j(".wp_con_frm_phone").parent().addClass('wp_cont_frm_err_msg');
output = false;
}
if(!j(".wp_con_frm_phone").val().match(/^[(]{0,1}[0-9]{3}[)]{0,1}[-\s\.]{0,1}[0-9]{3}[-\s\.]{0,1}[0-9]{4}$/))
{
j(".wp_con_frm_phone").parent().addClass('wp_cont_frm_err_msg');
output = false;
}
if(!(j(".wp_con_frm_email").val())){
j(".wp_con_frm_email").parent().addClass('wp_cont_frm_err_msg');
output = false;
}
if(!j(".wp_con_frm_email").val().match(/^([\w-\.][email protected]([\w-]+\.)+[\w-]{2,4})?$/))
{
j(".wp_con_frm_email").parent().addClass('wp_cont_frm_err_msg');
output = false;
}
if(!(j(".wp_con_frm_message").val())){
j(".wp_con_frm_message").parent().addClass('wp_cont_frm_err_msg');
output = false;
}
return output;
}
/* send contact form data to email */
function afterSubmit(getobj)
{
if(getobj.status)
{
j('#wp_con_form')[0].reset();
j('#wp_con_form .wp_cont_form_msg').html(getobj.message).slideDown().delay(5000).slideUp();
}
else
{
j('#wp_con_form .wp_cont_form_msg').html(getobj.message).slideDown().delay(5000).slideUp(5000);
}
}
j('#wp_con_frm_btn').click(function(){
var output = validateContact();
if(output){
var dataString = j("#wp_con_form").serialize();
j.ajax({
type: "POST",
url: ajaxurl,
dataType:"json",
data: dataString,
}).always(function(data)
{
afterSubmit(data);
});
}
return false;
});
});
コードです
フォームfunction.php
$name = $_POST['name'];
$phone = $_POST['phone'];
$email = $_POST['email'];
$msg = $_POST['message'];
$to = '[email protected]';
$subject = 'List Qwick';
$message = 'Name: '.$name. "\r\n" .
'Phone: '.$phone. "\r\n" .
'Email: '.$email. "\r\n" .
'Message: '.$msg. "\r\n" .
$headers = "From: ".$email."\r\n" .'X-Mailer: PHP/' . phpversion();
if(wp_mail($to, $subject, $message, $headers))
{
$getMessage = '<p class="success">Your Email Has Been Sent Successfully</p>';
echo json_encode(array('status'=>1,'message'=>$getMessage));
}
else
{
$getMessage = '<p class="error">Mail function not working..</p>';
echo json_encode(array('status'=>0,'message'=>$getMessage));
}
あなたはデータをコンソール - >ネットワークに掲載されているもののURLでご確認いただけますか? – Abhishek
この目的のために連絡先フォーム7プラグインを使用できます。 –
あなたのやっていることはあなたのコードをダンプして、それがうまくいかない理由を尋ねられたので、この質問は閉じられます。私たちは、あなたが何を試しているのか、そのエラーがどこにあると思うのか、さらに多くの証拠が必要です。詳細はhttps://stackoverflow.com/help/how-to-askをご覧ください。 – Mikkel