Как ограничить время, в течение которого товары могут оставаться в корзине клиента Magento - PullRequest
1 голос
/ 20 января 2012

Я хотел бы иметь возможность установить интервал времени, по истечении которого корзина покупателя истекает, поэтому после того, как товар добавлен в их корзину, им нужно 15 минут, чтобы оформить заказ, прежде чем все товары будут удалены из корзины и номеров на складе. пополняются на эти конкретные предметы.

Это работает, изменяя время сеанса Cookie в конфигурации для Magento, но с непреднамеренными побочными эффектами выхода пользователя (и администратора) из системы. Есть ли способ просто установить время "сеанса" корзины, а не пользователя?

1 Ответ

0 голосов
/ 20 января 2012

Если у Magento есть общий включаемый файл (он, скорее всего, будет, поскольку он основан на Zend), вы можете добавить запись в $_SESSION, чтобы указать время последнего запроса. Затем вы можете сравнить его с текущим временем для новых запросов и очистить все записи, относящиеся к корзине, в сеансе, если он превысил 15 минут.

if(isset($_SESSION['_last_page_hit']))
{
    if(time() - (int)$_SESSION['_last_page_hit'] < (60*15))
    {
        unset($_SESSION['basket_whatever']); // unset basket stuff here
    }
}
$_SESSION['_last_page_hit'] = time();

Вы останетесь в системе, но все данные корзины будут удалены. Очевидно, вам нужно выяснить, какие переменные сеанса должны быть не установлены, поэтому несколько вызовов var_dump() могут быть в порядке!

...