WordPress の PHP で使用する小さなショッピング カートがありますが、現在は AJAX を使用するサイトで使用するために実装しています。
ユーザーがショッピング カートに何を入れたかを示す Cookie を見つける PHP 関数がありますが、ユーザーの選択に従って製品情報を同じ div にロードしているため、PHP を使用したその関数は役に立ちません。ユーザーが別の製品に変更するたびに更新するために、JS または JQuery を使用してそれを行う必要があります。
PHPの関数は次のとおりです。
function in_cart($post_id){
$found = false;
if(!empty($_COOKIE['cart'])){
foreach ($_COOKIE ['cart'] as $c) {
if ($c ['id'] == $post_id)
$found = $c;
}
}
return $found;
}
Cookie は「cart[0][id]」および「cart[0][quantity]」と呼ばれ、製品の数に応じて「0」が増加します。その関数を使用すると、a のすべてのインスタンスを実行できます。 「カート」として始まるクッキーですが、JSでそのループを複製できないようです。
最初のセットの角括弧内に任意の数字を許可するために、正規表現を使用して実行しようとしましたが、うまくいきません (私は JS にまったく慣れていないので、正しく実行したかどうかわかりません)。
誰か提案がありますか?
更新:これは、正規表現を使用する最後の試みでした:
var nums = /^[0-9]+$/;
function readCookie(c_name)
{
var c_value = document.cookie;
var c_start = c_value.indexOf(" " + c_name + "=");
if (c_start == -1)
{
c_start = c_value.indexOf(c_name + "=");
}
if (c_start == -1)
{
c_value = null;
}
else
{
c_start = c_value.indexOf("=", c_start) + 1;
var c_end = c_value.indexOf(";", c_start);
if (c_end == -1)
{
c_end = c_value.length;
}
c_value = unescape(c_value.substring(c_start,c_end));
}
return c_value;
}
cart = readCookie("cart["+ nums +"][id]");