如何在UberCart中坚持购物车?

时间:2015-02-23 21:01:34

标签: session drupal-7 ubercart

我有一个购物车,我添加了产品A和B.产品A可以在没有B的情况下购买,但如果您购买产品A,您也必须购买产品B.我写了一个简单的表来跟踪这些关系,并阻止你在规则被破坏时检查。

当用户添加到购物车然后继续注册时,我的问题就出现了。注册后,cart_item_id已更改,用户的session_id已更改。

如何将匿名用户的会话与现已注册和登录的用户的会话相匹配?

1 个答案:

答案 0 :(得分:0)

我没有使用第二个表来表示我想要保留的数据,而是意识到我可以将任何数据添加到cartContents中,它会自动保存用户登录和注销时存储的所有信息。

这就是我更新的方式:

$cartItemID = 1; // the id of the item in the cart I want to add info to
$cartContents = uc_cart_get_contents();
foreach ($cartContents as $c) 
{
    if ($c->cart_item_id == $cartItemID)
    {
        $c->data['my_chosen_key'] = $sessionData;
        uc_cart_update_item($c);
    }
}

如果您退出并重新登录,信息将保留。