Drupal 7 drupal商务单用户多个推车

时间:2014-05-10 16:48:14

标签: php drupal

我是否可以通过“每次会话”制作Drupal commerce的购物车kepp购物车?

在当前情况下,所有访问者都以单个用户身份登录。我们不详细说明为什么会这样。它只是。当然,他们都会共享一个购物车。我希望这个购物车能够通过会话而不是“用户帐户”来“记住”,从而有效地允许用户在单独的会话中拥有完全独立的购物车。

谢谢。

解决方案:

在自定义模块中,实现hook_commerce_cart_order_id(),如下所示:

function mymodule_commerce_cart_order_id($uid = 0) {    
    $key = $uid . '-' . session_id(); 
    $carts = variable_get('mymodule_carts', array());
    if ( isset($carts[$key]) ) {
        return intval($carts[$key]);
    } else {
        // create a new cart for this session
        $order = commerce_cart_order_new($uid);
        $order->data['last_cart_refresh'] = REQUEST_TIME;
        $order_id = intval($order->order_id);

        // save the new order id to the module settings cache
        $carts[$key] = $order_id;
        variable_set('mymodule_carts', $carts);

        return $order_id;
    }
}

我们基本上存储每个用户/每个会话的订单ID。如果此会话没有此用户的购物车,请创建一个并使用该推文。

希望没有人能够受苦。

1 个答案:

答案 0 :(得分:0)

您可以尝试破解显示购物车的模块或代码。那里会有一些逻辑可以做类似......

if($user->uid == 0){
  //show anonymous cart
}else{
  //show user cart
}

您可能希望删除if语句并仅包含匿名代码。 如果您想确保模块不会被更新覆盖,您还需要更改.info文件。