2016-10-25 15 views
1

私はこのajaxスクリプトをfunction.phpの関数で使用してフォームを送信した後でEメールを送信します。データはポストされていますが、関数はトリガしていないので、電子メールは送信されません。また、スクリプトは応答として何も表示しません。Ajax関数は何も応答していませんが、ポストは正常に動作しています:Wordpress

   ==================Jquery==================== 
jQuery('#quote-forms').submit(function(e) { 

    e.preventDefault(); 

    var ocity = jQuery(".ocity").val(); 
    var ostate = jQuery(".ostate").val(); 
    var ozip = jQuery(".ozip").val(); 
    var dataString = 'custom ocity='+ ocity + '&custom ostate=' + ostate + '&custom ozip=' + ozip; 

    jQuery.ajax({ 
     type: "POST", 
     url: "/wp-admin/admin-ajax.php", 
     action : 'quote_ajax_submission', 
     data: dataString, 
     success: function() { 
     alert("sent"); 
     } 
     });   
    }); 

そしてここでは、function.phpファイルの私の機能は、あなたがチェックして、私はとてもリターンと電子メールでの応答が送信していないされていない問題が何であるかを教えてくださいすることができます。

 add_action('wp_ajax_quote_ajax_submission', 'quote_ajax_handler'); 
     add_action('wp_ajax_nopriv_quote_ajax_submission','quote_ajax_handler'); 
    function quote_ajax_handler(){ 

echo "helol"; 

$oCity   = $_POST["custom ocity"]; 
$iZip   = $_POST["custom ozip"]; 
$oState   = $_POST["custom ostate"]; 
$dState   = $_POST["dstate"]; 
$dZip   = $_POST["dzip"]; 
$dCity   = $_POST["dcity"]; 
$rNumbers  = $_POST["room-numbers"]; 
$mDate   = $_POST["mdate"]; 
$fName   = $_POST["fname"]; 
$lName   = $_POST["lname"]; 
$pEmail   = $_POST["pemail"]; 
$pPhone   = $_POST["pphone"]; 
$addtion_C  = $_POST["additionC"]; 

$to = '[email protected]'; 

$subject = 'Quote Request From '. $fName ; 

$message = '<html><body>'; 

$message = '<div style="background:#CEE4ED; padding:10px;>'; 
$message = '<div style="margin-left:30px;">'; 
$message .= "<br>"; 
$message .= "<br>"; 

$message .= "<b>Hi Admin,</b>"; 
$message .= "<br>"; 
$message .= "<br>"; 
$message .= 'You have received a new quote from the site with the following information'; 

$message .= "<br>"; 
$message .= "<br>"; 

$message .= '<b>Address Information:</b>'; 

$message .= "<br>"; 
$message .= "<br>"; 


$message .= "<b>Origin City: </b>" .$oCity; 
$message .= "<br />"; 
$message .= "<b>Origin Zip: </b>" . $iZip; 
$message .= "<br />"; 
$message .= "<b>Origin State: </b>" . $oState; 
$message .= "<br />"; 
$message .= "<b>Destination City: </b>" .$dCity; 
$message .= "<br />"; 
$message .= "<b>Destination Zip: </b>" .$dZip; 
$message .= "<br />"; 
$message .= "<b>Destination State: </b>" .$dState; 

$message .= "<hr>"; 
$message .= "<br>"; 
$message .= "<br>"; 

$message .= '<b>Client Information:</b>'; 
$message .= "<br />"; 
$message .= "<br />"; 
$message .= "<b>First Name: </b>" .$fName; 
$message .= "<br />"; 
$message .= "<b>Last Name: </b>" .$lName; 
$message .= "<br />"; 
$message .= "<b>Primary Emai: </b>" .$pEmail; 
$message .= "<br />"; 
$message .= "<b>Primary Phone: </b>" .$pPhone; 
$message .= "<hr>"; 
$message .= "<br>"; 
$message .= "<br>"; 

$message .= '<b>Moving Information:</b>'; 

$message .= "<br>"; 
$message .= "<br />"; 

$message .= "<b>Moving Date: </b>" .$mDate; 
$message .= "<br />"; 
$message .= "<b>Number of Rooms: </b>" .$rNumbers; 

$message .= "<hr>"; 
$message .= "<br>"; 
$message .= "<br>"; 

$message .= '<b>Addition Comments :</b>'; 
$message .= "<br />"; 
$message .= '<p>'.$addtion_C.'</p>' ; 

$message .= "<br>"; 
$message .= "<br>"; 
$message .= "<br>"; 

$message .= "<p>Thank you.</p>"; 

$message .= "</div></div>"; 

$message .= "</body></html>"; 

$headers = 'MIME-Version: 1.0' . "\r\n"; 

$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n"; 

$headers .= 'From: '.$pEmail.'' . "\r\n"; 


    if(wp_mail($to, $subject, $message, $headers)){ 

    echo "<div class='success-message'>Message Has Been Sent Successfully..!</div>"; 

    }else{ 

    echo "<div class='success-message'>There is an error while sending message..!</div>"; 
    } 

    die(); 
} 
+0

はあなたのwp-adminの/ ADMIへの絶対パスを使用してみました相対パスの代わりにn-ajax.php?また、成功の代わりにエラーが返されているかどうかを確認できるように、常にajax呼び出しで定義されたエラー関数を持つ必要があります:error:function(jqXHR、exception){and console.log – MirzaP

+0

絶対パスはこうですか?私はエラー機能を追加しましたが、エラーは返されません url: 'ABSPATH./wp-admin/admin-ajax.php'、@MirzaP – Qasim

答えて

0

ajax呼び出しでaction要素に問題がありました。

ので、我々はこのようなコードを更新し、次のようにデータ配列とその作業にアクション要素を追加しました:

jQuery.ajax({ 
     type: "POST", 
     url: "/wp-admin/admin-ajax.php", 
     data: 'action=quote_ajax_submission&'+dataString, 
     success: function(data) { 
     alert("sent"); 
     }, 
     error: function(request, status, error){ 
     alert(request.responseText); 

     } 
     });   
    }); 

ので、更新されたコードの前にアクション要素は、このようなものだった:

action : 'quote_ajax_submission', 

更新した後、このようなコードのアクションが...

data: 'action=quote_ajax_submission&'+dataString, 
関連する問題