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 に移動し、メールが送信されますが、カートの内容がありません。
電子メールにカートの内容が含まれていない理由がわかりませんか?
どんな助けでも素晴らしい人になるでしょう、これは苦痛になっています..
(スパムボットを止めるためにメールを取り出しました..)