找我們做網站
↑
Woocommerce · WooCommerce 客製

WooCommerce 購物車設定:滿額自動加入贈品的函數寫法教學

WooCommerce 客製發布 2019.06.17更新 2026.10.02閱讀約 5 分鐘
WooCommerce 購物車設定:滿額自動加入贈品的函數寫法教學

重點整理
WooCommerce 沒有內建「滿額送贈品」選項,可以用 PHP 函數實作:在子主題的 functions.php 加入程式碼,購物車總金額達到設定值時,自動把指定商品 ID 加入購物車。修改前請先備份並在測試站試過。

WooCommerce 購物車設定 是可以透過加入 php 函數的方式,來變更顧客在結帳時可觸發的事件,尤其在 WooCommerce 本身沒有提供更多選項來自訂網站銷售條件的狀況下,以函數改變或者客製化交易規則是一個不錯的辦法。

在本篇教學中,將會說明如何在網站子主題中加入自訂函數,當顧客購買的訂單金額符合我們的期望值時,自動加入另一項商品至購物車中,而這個函數的功能在實務上常應用在 ” 滿額贈禮 ” ,如果説搭配折價卷功能,也可以讓額外商品做折價,整題來說,就是能讓商店行銷手法變得更加靈活自由。

注意事項:適用 WordPress 5.0 ( Beta )或以上版本

3使用 Funtion 指定金額變數與執行所需商品 ID

第一步:使用 add_action 來設定函數啟動前提:當 add_product_to_cart 與 template_redirect 重定向同時發生時,將會執行 if 條件式的陣列迴圈,在最外層陣列的 if 中必須先定義變數所代表的值,也就是給定 $product_id、$cart_total = 50 這兩個設定值,而 $found = false 是預先定義 if 迴圈,每一次執行是都將初始化比對購物車總金額的動作,而中層及內層的 if 陣列則是在定義購物車新增傷商品條件式,如果購物車數量大於 0 時,將會比對購物車金額的數值,以下方範例而言,當條件成立時時將會自動將指定 id 的商品加入到購物車中,也就是說,當購物車金額到達 50 元或以上時,將自動加入商品 id 為 50 的商品至購物車中。

第二步:將函數加入  your-child-theme/function.php 內,紅字的部分是網站所使用的子主題名稱,在主題編輯器中選擇網站子主題,目錄中點選 funtion.php 檔案,將函數加入編輯畫面結尾處,如下圖所示。

WooCommerce 加入購物車功能
WooCommerce 加入購物車功能

第三步:下方為函數執行後的結果示意圖。

WooCommerce 加入購物車功能
WooCommerce 加入購物車功能

修改 functions.php 前要注意什麼?

functions.php 只要有一個語法錯誤,整個網站就可能打不開,動手前先做好這幾件事:

  • 先備份:備份網站檔案與資料庫,至少保留一份原本的 functions.php。
  • 確認能用 FTP 或主機檔案管理員:後台壞掉時,才能直接把檔案改回來。
  • 用子主題:程式碼寫在子主題,主題更新才不會被洗掉。
  • 用純文字編輯器:從文書軟體複製會夾帶全形空白等看不見的字元,造成錯誤。

改完後到前台實際操作購物車,加減商品確認贈品的加入時機正確。

使用滿額贈函數時有哪些常見問題?

實際上線後,滿額贈最常遇到以下狀況,測試時建議逐一確認:

示意圖:滿額贈函數的判斷流程,購物車金額達門檻就依商品 ID 加入贈品、未達門檻要移除贈品,以及上線前要測的四種情況
示意圖:滿額贈函數的判斷流程,購物車金額達門檻就依商品 ID 加入贈品、未達門檻要移除贈品,以及上線前要測的四種情況
  • 金額降到門檻以下:顧客刪掉商品後,贈品是否會被自動移除?若函數只負責加入,就需要另外處理移除的邏輯。
  • 贈品重複加入:重新整理頁面或再次加入商品時,贈品數量不應增加。
  • 折價券計算:門檻要用折扣前還是折扣後的金額,需先跟行銷規則對齊。
  • 區塊版購物車:新版購物車區塊的運作方式不同,改完要在實際使用的購物車頁面測試。

常見問題

WooCommerce 購物車可以設定滿額送贈品嗎?

WooCommerce 沒有內建滿額贈選項,需要用程式或外掛實作。本文的做法是在子主題 functions.php 加入函數,購物車金額達到設定值時自動加入指定商品 ID;不想寫程式則可找支援滿額贈品的外掛。

贈品要怎麼設定成 0 元?

最簡單的做法是另外建立一個價格 0 元的贈品商品,並把商品可見度設為隱藏,讓它不會出現在商店頁,只會被函數自動加入購物車。記得也要設定庫存,避免贈品送完了還繼續加入。

程式碼要放在 functions.php 的哪裡?

放在子主題 functions.php 的檔案最後面即可。不要放在父主題,父主題一更新程式碼就會被覆蓋;也可以改用 Code Snippets 這類程式碼片段外掛管理,出錯時比較容易停用。

結語

最後做個小提醒,在變更商品 id 及金額限制的數值時,以英文鍵盤輸入數字在更新 funtion.php 文件時,才不會發生錯誤,如果使用複製貼上的方式,會將文書軟體中一些看不到的字元格式也一併貼上,在更新時就容易導致錯誤。

鵠學苑・鵠崙設計鵠崙設計 2014 年成立,專注 WordPress 網站開發,400 多個網站在我們自己的主機上運作。鵠學苑的文章由團隊實際操作後整理,工具與外掛的功能以撰文當時為準。
鵠崙設計

不想自己摸索,
就交給我們做。

外掛設定、主機效能、改版搬家,這裡寫的每一件事,都是我們每天在客戶網站上做的工作。留下需求,1 個工作天內回覆。