我有一个购物车,我添加了产品A和B.产品A可以在没有B的情况下购买,但如果您购买产品A,您也必须购买产品B.我写了一个简单的表来跟踪这些关系,并阻止你在规则被破坏时检查。
当用户添加到购物车然后继续注册时,我的问题就出现了。注册后,cart_item_id已更改,用户的session_id已更改。
如何将匿名用户的会话与现已注册和登录的用户的会话相匹配?
答案 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);
}
}
如果您退出并重新登录,信息将保留。