如何指定某些商品不能一起加入購物車中?(免外掛)

簡介

這個需求滿常見的,有時候因特殊情境需求,例如A商品與B商品有不同的運費,所以不能一起被加入購物車結帳,這樣的功能一般都要找特殊的外掛或付費式的外掛才能達成,而這樣的外掛好像也不好找。

運用範圍

1、有可能是有多個不同頁面或重類的「一頁式購物」,所以購物車中只能存在「當下這一頁式購物中所開放購買的商品」。

2、有些是低溫運送與常溫運送的商品,因運費不一樣所以須分開下單。

3、有些是特殊優惠商品,不能與一般商品一起下單。

4、有些是可寄海外、有些只寄國內的商品,所以要分開下單結帳。

5、有些是虛擬商品(例如課程)、有些是實體商品,所以分開下單結帳。

範例

請至範例網站測試 :

前往範例

原理與思路

免外掛,主要是在購物車頁與結帳頁寫了一篇jQuery程式,來判斷指定的商品是否有被「一起加入購物車中」,有的話會跳出警告,並暫時把結帳按鈕禁用,等訪客有刪除部分指定商品後,警告才會消失並才可以結帳。

在程式原始碼中,你可以先填入幾個不能與一般商品加入購物車的商品分類名稱,例如”冷凍食品“、”預購商品“預先設定好後,這二類的商品就不能與其它分類商品一同被加入購物車中。

另這個作法唯一有一個限制,就是Woocommerce內建的「購物車」流程仍需存在,也就是在訪客加入購物車後,在結帳過程中仍需出現「購物車明細」才能讓程式產生判斷的作用。

只要貼上本篇介紹之程式碼 ,即可運作。

實作

付費內容Start
付費內容,需支付 : 1500 個學習幣
您須先登入會員以使用學習幣。

總結

這個需求滿常見的,只是本篇程式不見得適用於每種情境,建議先看一下本篇的範例網站多做幾遍測試,真的符合需求再使用本篇的作法。

討論串1

討論串2

有問題嗎?歡迎於下方發問

發佈留言