Подскажите пжл, какой код отвечает за очистку корзины после оплаты при переходе на order_final.php?
Подскажите пжл, какой код отвечает за очистку корзины после оплаты при переходе на order_final.php?
Приветствую,
Для 3.xx логика была следующая :
1. Корзина есть массив т.е. для очистки корзины необходимо просто очистить массив
2. Файл block_checkout_final.php есть кусок кода который начинается так // empty cart and new user_id only if order was placed without any errors
3. Массив называется $shopping_cart
4. Очистка корзины
$shopping_cart = "";
set_session("shopping_cart", $shopping_cart);
а в данном случае set_session это функция?
посмотрел, в 4 версии вроде такая же логика, но просто вызвав:
$shopping_cart = "";
set_session("shopping_cart", $shopping_cart);
ничего не происходит, как правильно это можно сделать?
вроде получилось, выглядит во так:
<?php
include_once("./includes/common.php");
include_once("./includes/record.php");
include_once("./includes/products_functions.php");
include_once("./includes/shopping_cart.php");
include_once("./includes/ads_functions.php");
include_once("./includes/parameters.php");
include_once("./messages/" . $language_code . "/cart_messages.php");
include_once("./messages/" . $language_code . "/admin_messages.php");
$shopping_cart = "";
set_session("shopping_cart", $shopping_cart);
?>
мне пока не понятно что именно вы хотите получить в итоге но для удаления корзины этого не достаточно.
посмотрите для примера как происходит очистка корзины на примере ссылки в корзине "очистить корзину"
PHP код:
case "CLR": // remove all items from the cart
$shopping_cart = get_session("shopping_cart");
$new_user_type = get_session("session_new_user");
if (is_array($shopping_cart))
{
set_session("shopping_cart", "");
set_session("session_coupons", "");
if ($new_user_type == "expired")
{
// in case cart has subscription data we need to remove all new user data as well
set_session("session_new_user", "");
set_session("session_new_user_id", "");
set_session("session_new_user_type_id", "");
}
}
break;
Последний раз редактировалось dav300; 11.09.2011 в 22:24.
мне нужно максимально сократить код.
нашел функцию в common_functions.php
function set_session($parameter_name, $parameter_value)
{
global $session_prefix;
$parameter_name = $session_prefix . $parameter_name;
$_SESSION[$parameter_name] = $parameter_value;
}
как можно выполнить этот код не обращаясь к common_functions, как говориться в две строчки?
вобщем платежная система обращается к скрипту, который меняет статус заказа и в этом же скрипте я хочу добавить код очистки корзины, т.к. оплата может поступить не сразу и переход на order_final может не произойти (если оплачивать определенными способами)
Приветствую,
Честно признаться, я так и не понял что вы хотите сделать.
Почему нельзя (не хотите ?!) запрограммировать "правильную" логику очистки корзины ?
Ну да ладно. Если очень надо то можно сделать так :
PHP код:
$session_prefix = "название домена" // например, для yandex.ru будет yandex. для получения более подробной информации print_r($_SESSION);
$parameter_name = $session_prefix . "shopping_cart";
$_SESSION[$parameter_name] = ""; // глобальный массив см. goole по запросу "php $_SESSION"
попробовал выполнить, корзина не очистилась, в чем может быть причина?PHP код:
$session_prefix = "МОЙ САЙТ";
$parameter_name = $session_prefix . "shopping_cart";
$_SESSION[$parameter_name] = "";
стандартный метод запрограммирован, но когда человек оплачивает через терминал перехода на ордер финал не происходит, зато сама платежная система уведомляет в течении 72 часов сайт о поступлении средств, вот как раз в этот скрипт я хочу добавить очистку, чтоб наверняка)
Никак. Выполнение программы происходит за рамками сессии пользователя.
Проблема не сколько в программировании а сколько в логике формирования заказа.
т.е. очистить корзину таким способом не получится? может могут быть другие варианты?
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)
Социальные закладки