簡體   English   中英

Drupal 7 drupal Commerce單用戶多個購物車

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM