我是否可以通过“每次会话”制作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。如果此会话没有此用户的购物车,请创建一个并使用该推文。
希望没有人能够受苦。
答案 0 :(得分:0)
您可以尝试破解显示购物车的模块或代码。那里会有一些逻辑可以做类似......
if($user->uid == 0){
//show anonymous cart
}else{
//show user cart
}
您可能希望删除if语句并仅包含匿名代码。 如果您想确保模块不会被更新覆盖,您还需要更改.info文件。