1

simplecart 2 jquery cart をインストールし、ユーザーが最初に入力するフォームをいくつか追加するなど、バスケットをメールで送信するように変更しました。多くの作業の後、カートからメールを送信することができましたが、ユーザー フィールドのみが入力されており、バスケットの内容が sendjs.php ページに渡されていないようです。

インデックス ページ内の head セクションに次のスクリプトを配置して、simplecart がチェックアウト方法として電子メールを使用するようにします。

<script type="text/javascript">

simpleCart.email = "MY EMAIL ADDRESS";
simpleCart.checkoutTo = Email;
simpleCart.currency = GBP;

simpleCart.cartHeaders = ["Thumb_image_noHeader", "Name" , "Size_input_div_div", "Price" , "decrement_noHeader" , "Quantity", "increment_noHeader", "remove_noHeader", "Total" ];

</script>

さらに下には、関数 enquire を呼び出すチェックアウト ボタンを生成するコードがあります。

<form action="sendjs.php" name="form" method="post">
<input placeholder="Name" type="text" name="name"  value="name" id="name" />
<input placeholder="Contact Number" type="text" name="phone" value="phone" id="phone" />
<input placeholder="Email" type="text" name="email" value="email" id="email" /> 
<input placeholder="Message" type="text" name="message" value="message" id="message" />     
<a href="javascript:void(0);" onclick="javascript:enquire();" class="simpleCart_checkout">Checkout</a>
</form>

Simplecart.js 内に、必要な情報を sendjs.php に渡す次の関数があります。

    me.emailCheckout = function enquire() {    

itemsString = "";
for( var current in me.items ){ 
    var item = me.items[current];
    itemsString += item.name + " " + item.quantity + " " + item.price + "\n";
} 

name = document.form.name.value;
phone = document.form.phone.value;
email = document.form.email.value;

me.total += "" + " GBP"

var form = document.createElement("form");
form.style.display = "none";
form.method = "POST";
form.action = "sendjs.php";
form.acceptCharset = "ISO-8859-1";
form.appendChild(me.createHiddenElement("jcitems", itemsString));
form.appendChild(me.createHiddenElement("jctotal", me.total));  
form.appendChild(me.createHiddenElement("name", name));
form.appendChild(me.createHiddenElement("phone", phone));
form.appendChild(me.createHiddenElement("email", email));
document.body.appendChild(form);
form.submit();
document.form.submit();
document.body.removeChild(form);    
}

最後に、メールを生成する sendjs.php があります。

<?php
/*include 'simpleCart.js';*/

$to      = 'MY EMAIL ADDRESS';
$subject = 'Order Inquiry';
$jcitems = " <p><b>ORDER:</b></p> <p> " . $_POST['jcitems']."</p>" .     "<p><b>Total:</b>     $" . $_POST['jctotal']."</p>";
$time = date ("h:i A"); 
$date = date ("l, F jS, Y");
$headers = "MIME-Version: 1.0\r\n";
$headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n";
$headers .= 'From: EMAIL' . "\r\n" .
'Reply-To: EMAIL' . "\r\n" .
'X-Mailer: PHP/' . phpversion();
$name = $_POST['name'];
$phone = $_POST['phone'];
$email = $_POST['email'];
$message = $_POST['message'];
$text = "<html><body><p>This form was submitted on Your Web Site on \n $date at\n $time</p><p><b>Message:</b>\n$message</p><p><b>Customers Email Address:</b>$email</p><p><b>Customers Name:</b> $name </p><p><b>Customers Phone Number:</b> $phone </p></html></body>";
$body = $text . $jcitems;
mail($to, $subject, $body, $headers);
/*Clearing the cart info after succesfull order is made*/
setcookie ("simpleCart", "", time() - 3600);

Header('Location: success.html');

echo "success!";

?>

したがって、ユーザーが [チェックアウト] をクリックすると、動作する success.html に移動し、メールが送信されますが、カートの内容がありません。

電子メールにカートの内容が含まれていない理由がわかりませんか?

どんな助けでも素晴らしい人になるでしょう、これは苦痛になっています..

(スパムボットを止めるためにメールを取り出しました..)

4

0 に答える 0