如何在有限的时间后过期购物车

时间:2017-04-10 16:54:58

标签: java php timer shopping-cart cart

我需要有关如何使购物车到期的帮助 假设我们在电子商务网站上有购物车,并且用户将产品添加到他的购物车,问题是从库存中我们应该减少该产品的数量,因为它是由用户持有的。
我们的想法是,当计时器到期时,我们会在购物车中实施计时器,用户不再持有该产品。

我的问题是:

  • 如何实现适用于网站所有网页的计时器
  • 如何在计时器完成后触发更新库存的事件。

希望我的解释清楚。 谢谢你的时间。

1 个答案:

答案 0 :(得分:1)

使用会话的一个示例,不要忘记在浏览器关闭时会话将过期。如果您想要更持久的数据存储,请使用cookie或localStorage。

<?php

/* Constants */
define('EXPIRATION_TIME', 30); // minutes

/* Dummy variables */
$productAdded = true;

/* Start session */
session_start();

/* Check timer */
if (isset($_SESSION['timer']) && $_SESSION['timer'] < time()) {

    /* 
        30 min have gone by and the user has not added more products
        to the cart, lets empty the cart and reset the timer
    */

    unset($_SESSION['cart']);
    unset($_SESSION['timer']);
}

/* Add product */
if ($productAdded) {

    /* Increase timer */
    $_SESSION['timer'] = (time() + (EXPIRATION_TIME * 60));

    /* Add product to cart, and all other tasks */
    if (!isset($_SESSION['cart']))
        $_SESSION['cart'] = array();

    $_SESSION['cart'][] = array(
        'id' => 17,
        'name' => 'Fancy shampoo',
        'quantity' => 1337
    );
}

?>