
重點整理
WooCommerce 內建的「免費運送」就能做到滿額免運和免運券:在運送區域新增免費運送,設定最低訂購金額或折價券條件即可。但顧客達到門檻時,結帳頁仍會同時列出付費運送,預設還是選在付費那一項;要自動只留免運,可以加一段程式碼,或安裝 Advanced Free Shipping 外掛。這篇用 WooCommerce 11.1 示範商店實際設定一次。
「滿 1,500 元免運」是網路商店最常見的促銷方式,可以提高客單價,也讓顧客更願意下單。WooCommerce 本身就有免運功能,不一定要裝外掛;但很多站長設定完才發現,顧客湊到門檻後,結帳頁還是要自己從「宅配」和「免運費」裡選一個,沒注意就多付了運費。這篇從後台設定、前台實測,到隱藏其他運費的兩種做法,一步一步說明。
WooCommerce 免運要裝外掛嗎?
大部分情況不用。WooCommerce 內建的「免費運送」運送方式支援四種條件:
- 有效的免運折價券:顧客輸入有勾選「允許免運費」的折價券才免運。
- 最小訂購金額:購物車達到指定金額就免運,例如滿 1,500 元。
- 達到最低訂單金額或使用折價券:兩個條件符合一個就免運。
- 達到最低訂單金額且使用折價券:兩個條件都要符合。
如果免運條件要依商品分類、重量、會員身分、郵遞區號來判斷,內建功能就不夠用,這時才需要外掛,後面會介紹。
步驟一:在運送區域新增「免費運送」
到 WordPress 後台「WooCommerce → 設定 → 運送方式」,點進要設定的運送區域(還沒建立區域的話,先看WooCommerce 運送區域設定教學)。示範商店建立了「台灣本島」區域,地區選「台灣」,裡面已經有一個固定運費 100 元的「宅配」。
點下方「新增運送方式」,選擇「免費運送」後儲存,列表就會多一列免運費,右邊的開關要保持啟用。

步驟二:設定免運門檻(滿額或免運券)
在免運費那一列點「編輯」,會跳出設定視窗:
- 名稱:顧客結帳時看到的文字,例如「免運費」或「滿額免運」。
- 如要享有免運的話需要:選擇前面提到的四種條件之一。示範選「達到最低訂單金額或使用折價券」,滿額或有免運券都能免運。
- 最低訂購金額:輸入門檻金額,只填數字,示範填 1500。
- 折價券折扣:勾選「在使用折價券折扣前套用最低訂單金額規則」,代表用折扣前的金額判斷門檻;不勾則用折扣後的金額。例如買 1,600 元、用了 200 元折價券,不勾的話只剩 1,400 元,就不符合免運。

如果要發「免運券」,到後台「WooCommerce → 折價券」新增折價券,在「一般」分頁勾選「允許免運費」,再搭配上面的條件設定就能生效。折價券的其他設定可以參考WooCommerce 折價券教學。
步驟三:到前台檢查購物車與結帳頁
設定完一定要用顧客的角度實際測試。示範商品「手作陶瓷馬克杯」一個 680 元,先放 2 個(1,360 元)到購物車:還沒達到 1,500 元門檻,運費顯示宅配 NT$100。

再加到 4 個(2,720 元)進入結帳頁,「運送選項」會同時出現「宅配 NT$100」和「免運費 免費」兩個選項,而且預設選在宅配,右邊訂單摘要也還加著 100 元運費。顧客如果沒注意就直接下單,反而多付了運費。

這就是很多站長覺得「免運設定沒生效」的原因:其實免運已經出現,只是 WooCommerce 不會自動幫顧客選、也不會隱藏其他付費運送。解決方法有兩種,選一種就好。
做法一:加一段程式碼,有免運時只顯示免運
不想多裝外掛的話,可以用 WooCommerce 的 woocommerce_package_rates 過濾器,在有免運選項時把其他運送方式移除。程式碼放在子佈景主題的 functions.php,或用 Code Snippets 這類程式碼片段外掛加入:
add_filter( 'woocommerce_package_rates', function ( $rates ) {
$free = array();
foreach ( $rates as $id => $rate ) {
if ( 'free_shipping' === $rate->method_id ) {
$free[ $id ] = $rate;
}
}
return $free ? $free : $rates;
}, 100 );加入後同樣放 4 個商品到結帳頁,運送選項只剩「免運費」,訂單摘要也直接顯示免費,顧客不用再自己選。

注意這段程式碼會把同區域的所有付費運送都藏起來,包括超商取貨。如果希望達到門檻後,顧客仍能選「超商取貨免運」或「宅配免運」,就要另外建立對應的免運方式,或改用條件更細的外掛(例如Conditional Shipping and Payments)。修改程式碼前請先備份網站。
做法二:用 Advanced Free Shipping 外掛設定進階條件
Advanced Free Shipping for WooCommerce 是免費外掛,可以用購物車金額、商品數量、商品分類、運送類別、重量、郵遞區號、縣市、使用者角色等條件組合出免運規則,並內建「有免運時隱藏其他運送方式」的選項,不用寫程式。
2026 年 10 月我們查到的外掛狀態:
- 仍可在 WordPress.org 下載,版本 1.1.7.1,約 4 萬個網站使用。
- 最後一次功能更新是 2024 年 1 月(修正 PHP 8.2 相容性),2025 年 10 月的更新只改了外掛名稱。
- 官方標示只測試到 WordPress 6.8、WooCommerce 8.4,目前最新已是 WordPress 7.1、WooCommerce 11.1。
- 沒有繁體中文翻譯,設定畫面是英文。
我們在 WordPress 7.1.2、WooCommerce 11.1.2 的示範站實際安裝測試,功能仍可正常運作,但因為已久未更新,建議能用內建功能解決就先用內建,真的需要分類、重量等進階條件時再考慮它,並在正式站使用前先於測試站確認。
建立免運規則
安裝並啟用外掛後,到「WooCommerce → 設定 → 運送方式」,上方會多一個「Advanced Free Shipping」分頁:
- 勾選「Enable the Advanced Free Shipping rates」啟用外掛的免運規則。
- 勾選「Hide other shipping methods when free shipping is available」,有免運時自動隱藏其他運送方式。
- 點「Add Free Shipping rate」新增一條規則。
在規則編輯畫面設定條件,例如第一欄選「Subtotal」(小計)、第二欄選「Greater or equal to」(大於或等於)、第三欄填 1500;「Shipping title」填前台顯示的名稱,例如「滿額免運」,最後按「發佈」。

條件的邏輯是:同一個群組裡的條件要「全部符合」,點「Add condition」可以再加條件,例如小計滿 1,500「而且」商品數量大於 2;點「Add ‘Or’ group」新增另一個群組,代表「或者」,例如「滿 1,500」或「購買指定分類的商品」都免運。
設定完成後實際測試,達到門檻時結帳頁只會顯示外掛的「滿額免運」:

使用外掛時,記得把運送區域裡內建的「免費運送」關掉或刪除,避免兩種免運規則同時存在、前台出現兩個免運選項。
常見問題
為什麼設定了免運費,結帳時還是收運費?
通常是免運選項有出現,但預設選在付費運送。WooCommerce 不會自動切換到免運,要用本文的程式碼或 Advanced Free Shipping 外掛隱藏其他運送方式;另外也要確認顧客的地址屬於設定了免運的運送區域。
滿額免運是用折扣前還是折扣後的金額計算?
預設是用折扣後的金額。若希望用折扣前的金額判斷,在免費運送設定中勾選「在使用折價券折扣前套用最低訂單金額規則」。
可以只讓某些商品免運嗎?
內建功能做不到,只能用金額或折價券判斷。要依商品或分類設定免運,可以用 Advanced Free Shipping 的「Contains product」「Category」等條件,或其他支援運送類別條件的運費外掛。
結語
WooCommerce 的免運設定可以分兩層來看:門檻用內建的「免費運送」就能完成,滿額、免運券都支援;真正要處理的是「達到門檻後還列出付費運送」,用一段程式碼或 Advanced Free Shipping 外掛就能讓結帳頁只留免運。設定完成後,記得用未達門檻和已達門檻兩種購物車,實際到前台結帳頁各走一次,確認顧客看到的運費正確。
