Заметил такую странность при работе с сессионными переменными.
На странице описания товара есть кнопка, по которой можно купить товар или оформить предзаказ, если товара нет в наличии.
Ссылка для добавления товара в корзину формируется так:
Сама ссылка:
Далее в файле /ajax/addto/ajax_backend.php пишу:
Соответственно в файле \public_html\personal\order\make\index.php имеется следующий код,
который, в зависимости от значения переменной, подгружает нужный шаблон:
Теперь оформляю заказ на сайте:
Нажимаю на кнопку "Купить" - товар добавляется в корзину, переменная $_SESSION['OrderStatus'] имеет значение 'order'
(Причем файл /ajax/addto/ajax_backend.php - это единственное место, где переменной $_SESSION['OrderStatus'] присваивается значение).
Но, когда я перехожу на страницу /personal/cart/, значение переменной $_SESSION['OrderStatus'] устанавливается в 'preorder'.
Подскажите, пожалуйста, чем может быть связана эта проблема.
На странице описания товара есть кнопка, по которой можно купить товар или оформить предзаказ, если товара нет в наличии.
Ссылка для добавления товара в корзину формируется так:
| Код |
|---|
if($PRESENCE == "Есть в наличии" ;)
{
$addSrc = '/ajax/addto/ajax_backend.php?IBLOCK_ID='.$arResult["IBLOCK_ID"].'&ID='.$arResult["ID"].'&TO=basket'.'&ORDER=order';
}
else
{
$addSrc = '/ajax/addto/ajax_backend.php?IBLOCK_ID='.$arResult["IBLOCK_ID"].'&ID='.$arResult["ID"].'&TO=basket'.'&ORDER=preorder';
} |
Сама ссылка:
| Код |
|---|
<p><strong><a href="<?=$addSrc?>" id="add<?=$arResult["ID"]?>" class="<?=$addClass?>"><?=$addLetter?></a></strong></p> |
Далее в файле /ajax/addto/ajax_backend.php пишу:
| Код |
|---|
if (!isset($_SESSION['OrderStatus']))
{
if($_REQUEST['ORDER'] == 'preorder')
$_SESSION['OrderStatus'] = 'preorder';
elseif($_REQUEST['ORDER'] == 'order')
$_SESSION['OrderStatus'] = 'order';
} |
Соответственно в файле \public_html\personal\order\make\index.php имеется следующий код,
который, в зависимости от значения переменной, подгружает нужный шаблон:
| Код |
|---|
<?
if($_SESSION['OrderStatus'] == 'preorder')
{
$prop1 = array(
0 => "4",
1 => "5",
2 => "6",
3 => "20",
4 => "21",
5 => "22",
6 => "23",
7 => "24",
8 => "25",
9 => "26",
10 => "27",
11 => "28",
12 => "29",
13 => "40",
14 => "41",
);
$prop2 = array(
0 => "8",
1 => "9",
2 => "10",
3 => "11",
4 => "15",
5 => "16",
6 => "17",
7 => "18",
8 => "19",
9 => "31",
10 => "32",
11 => "33",
12 => "34",
13 => "35",
14 => "36",
15 => "37",
16 => "38",
17 => "42",
);
$templateName = "template3";
echo "Оформление предзаказа";
}
else
{
$prop1 = array();
$prop2 = array();
$templateName = ".default";
echo "Оформление заказа";
}
?>
<?$APPLICATION->IncludeComponent("g-top:sale.order.ajax", $templateName, array(
"PAY_FROM_ACCOUNT" => "Y",
"COUNT_DELIVERY_TAX" => "N",
"COUNT_DISCOUNT_4_ALL_QUANTITY" => "N",
"ONLY_FULL_PAY_FROM_ACCOUNT" => "N",
"ALLOW_AUTO_REGISTER" => "Y",
"SEND_NEW_USER_NOTIFY" => "Y",
"DELIVERY_NO_AJAX" => "Y",
"PROP_1" => $prop1,
"PROP_2" => $prop2,
"PATH_TO_BASKET" => "/personal/cart/",
"PATH_TO_PERSONAL" => "/personal/order/",
"PATH_TO_PAYMENT" => "/personal/order/payment/",
"PATH_TO_AUTH" => "/auth/",
"SET_TITLE" => "Y"
),
false
);?>
|
Теперь оформляю заказ на сайте:
Нажимаю на кнопку "Купить" - товар добавляется в корзину, переменная $_SESSION['OrderStatus'] имеет значение 'order'
(Причем файл /ajax/addto/ajax_backend.php - это единственное место, где переменной $_SESSION['OrderStatus'] присваивается значение).
Но, когда я перехожу на страницу /personal/cart/, значение переменной $_SESSION['OrderStatus'] устанавливается в 'preorder'.
Подскажите, пожалуйста, чем может быть связана эта проблема.