[英]Drupal 7 drupal commerce single user multiple carts
有沒有一種方法可以使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。 如果此會話沒有該用戶的購物車,請制造一個並使用。
希望沒有人要受苦。
您可以嘗試破解顯示購物車的模塊或代碼。 那里有些邏輯可以做類似的事情。
if($user->uid == 0){
//show anonymous cart
}else{
//show user cart
}
您可能希望刪除if語句,僅包含匿名代碼。 如果要確保模塊不會在更新時被覆蓋,則還需要更改.info文件。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.