Session 如何在UberCart中持久化cart?

Session 如何在UberCart中持久化cart?,session,drupal-7,ubercart,Session,Drupal 7,Ubercart,我有一个购物车,我添加产品a和B。产品a可以在没有B的情况下购买,但如果你购买产品a,你也必须购买产品B。我写了一个简单的表格来跟踪这些关系,当它们的规则被打破时,我会阻止你检查 当一个用户添加到他们的购物车,然后继续注册时,我的问题就出现了。注册后,购物车项目id已更改,用户的会话id已更改 如何将匿名用户的会话与现在已注册并登录的用户的会话进行匹配?我意识到我可以将任何数据添加到cartContents中,在用户登录和注销时,它将自动保留我存储的所有信息,而不是使用第二个表来保存我想要保存的

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

当一个用户添加到他们的购物车,然后继续注册时,我的问题就出现了。注册后,购物车项目id已更改,用户的会话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);
    }
}
如果您注销并重新登录,信息将保留