【发布时间】:2015-04-25 08:12:34
【问题描述】:
我有一个购物车,我在其中添加了产品 A 和 B。产品 A 可以在没有 B 的情况下购买,但如果您购买产品 A,则您也必须购买产品 B。我写了一个简单的表格来跟踪这些关系,并在它们的规则被破坏时阻止你检查。
当用户添加到他们的购物车然后继续注册时,我的问题就出现了。注册后,cart_item_id 发生了变化,用户的 session_id 也发生了变化。
如何将匿名用户的会话与现在注册并登录的用户的会话匹配?
【问题讨论】:
我有一个购物车,我在其中添加了产品 A 和 B。产品 A 可以在没有 B 的情况下购买,但如果您购买产品 A,则您也必须购买产品 B。我写了一个简单的表格来跟踪这些关系,并在它们的规则被破坏时阻止你检查。
当用户添加到他们的购物车然后继续注册时,我的问题就出现了。注册后,cart_item_id 发生了变化,用户的 session_id 也发生了变化。
如何将匿名用户的会话与现在注册并登录的用户的会话匹配?
【问题讨论】:
我意识到我可以将任何数据添加到 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);
}
}
如果您注销并重新登录,信息将保留。
【讨论】: