疑難排解核心物流功能
最後更新:2025 年 7 月 18 日。
本指南協助商店所有者解決 WooCommerce 內建物流功能的問題。使用以下步驟疑難排解不正確的費率、缺少的方式或意外的結帳行為。
本指南涵蓋內容
本指南專注於 WooCommerce 核心包含的物流選項問題:
本指南也提供在何處尋找其他物流外掛支援和超越核心功能的進階設定指引。
重要限制
注意:WooCommerce 內建物流功能不包括即時費率或標籤列印。
- WooCommerce Shipping 是免費擴充功能,可讓你直接從 WooCommerce 儀表板列印 USPS、UPS 和 DHL 標籤並節省物流成本
- 即時費率需要 USPS、UPS 或 FedEx 等進階擴充功能才能在結帳時顯示即時費率
存在更進階的物流擴充功能用於複雜情境和商品。請參閱下方的核心物流限制章節。
基本疑難排解步驟
物流問題通常屬於以下類別之一:
- 缺少或不正確的物流費率
- 結帳時未顯示物流方式
- 意外的物流成本
- 物流區域與顧客地址不符
- 物流稅金未套用或不正確
按照以下步驟確認任何已知且已修復的錯誤是否已解決,且設定正確。這些是我們的 Happiness Engineers 在調查問題時遵循的相同步驟。
步驟 1:檢查是否已更新至最新版本
確保 WordPress、WooCommerce、目前使用的佈景主題和所有擴充功能都是最新版本。更新通常包含已知問題的修復。
如何檢查更新:
- 在 WordPress 管理後台前往 控制台 > 更新
- 檢查 WordPress 核心、佈景主題和外掛是否有可用更新
- 在繼續疑難排解前先更新所有元件
步驟 2:驗證基本物流設定
物流區域
- 前往 WooCommerce > 設定 > 物流 > 物流區域
- 確認顧客地址符合其中一個已設定的區域
- 確保每個相關區域至少有一個啟用的物流方式
物流方式
- 在每個區域內,確認已啟用正確的方式(例如:統一費率、免費物流、本地取貨)
- 再次檢查套用至該方式的任何條件
- 對於免費物流,檢查最低訂單金額或優惠券是否設定正確
商品物流設定
步驟 3:啟用物流除錯模式
WooCommerce 內建核心物流方式(如統一費率、免費物流和本地取貨)的除錯模式。啟用後,此模式會直接在購物車頁面記錄資訊,協助顯示哪個物流區域與顧客地址相符。
啟用物流除錯模式:
- 前往 WooCommerce > 設定 > 物流 > 物流設定
- 在除錯模式下,勾選 啟用除錯模式
- 儲存變更
- 重新載入購物車或結帳頁面,在可用物流選項下方查看除錯訊息
重要:測試完成後記得停用除錯模式,因為它會顯示在前端給顧客看到。
步驟 4:使用預設 WooCommerce 設定測試
有時,使用外掛、佈景主題建構器或自訂模組建立的購物車和結帳頁面可能導致非預期的行為,或阻止某些功能運作。
快速測試以確認這不是設定衝突的方法是:使用預設的購物車和結帳頁面、預設的 WordPress 編輯器,以及購物車和結帳短代碼或區塊:
可用選項:
更多資訊請參閱 WooCommerce 頁面設定文件。
進階疑難排解步驟
以下是協助疑難排解更複雜物流問題的工具和技術。使用這些方法來檢查物流邏輯、識別佈景主題或外掛衝突,以及發現隱藏的錯誤。
使用瀏覽器開發人員工具檢查 JavaScript 錯誤
瀏覽器開發人員工具(如 Chrome DevTools 或 Firefox Developer Tools)可協助你檢查購物車和結帳頁面的動態行為。
如何在常見瀏覽器中存取開發人員工具:
- Chrome:按 F12 或右鍵點擊並選擇「檢查」
- Firefox:按 F12 或右鍵點擊並選擇「檢查元素」
- Safari:在 Safari 偏好設定中啟用開發人員選單,然後按 Option+Command+I
- Edge:按 F12 或右鍵點擊並選擇「檢查」
要檢查的主要分頁:
Console 分頁
尋找可能干擾物流方式顯示或更新的 JavaScript 錯誤或警告。
Network 分頁
監控 AJAX 請求,如 ?wc-ajax=update_shipping_method 和 ?wc-ajax=update_order_review。這可協助確認當購物車項目或地址變更時,費率重新計算和物流方式更新是否正在進行,並確認是否有東西阻擋 AJAX 請求。
Elements 分頁
檢查 HTML 結構以確保物流選項有正確顯示,且未被佈景主題 CSS 或 JavaScript 隱藏。
使用這些工具診斷以下問題:
- 數量變更後物流未更新
- 自訂結帳修改阻擋或隱藏物流欄位
- JavaScript 錯誤阻止表單提交或費率顯示
檢查嚴重錯誤
WooCommerce 具有記錄系統,可透過 WordPress 管理後台的 WooCommerce > 狀態 > 記錄 存取,其中記錄了 PHP 嚴重錯誤等資訊。
此記錄是很有價值的初始資源,反映通常在伺服器 PHP 錯誤記錄中找到的詳細資訊。我們建議你在前往伺服器尋找 PHP 記錄進行進一步疑難排解之前,先查閱此記錄。
了解更多關於尋找 PHP 錯誤記錄。
檢查範本覆寫
範本覆寫是 WooCommerce 物流選項顯示問題的常見原因。當佈景主題自訂核心 WooCommerce 範本時,過時或錯誤的覆寫可能導致缺少物流方式、物流資訊不正確,或結帳時發生錯誤。
常見問題和疑難排解步驟
| 問題 | 疑難排解步驟 |
|---|---|
| 過時範本警告 | 更新範本覆寫以符合最新的 WooCommerce 核心版本。 |
| 物流方式缺失 | 檢查過時或覆寫的範本: |
– 前往 WooCommerce > 狀態 > 系統狀態並向下捲動至範本。
– 尋找關於過時或覆寫的物流範本警告(例如 cart/cart-shipping.php)。
使用預設佈景主題測試:
– 暫時切換至預設佈景主題。
– 如果物流選項重新出現或正常運作,問題可能來自你的佈景主題範本覆寫。
還原預設範本:
– 如果你識別出有問題的覆寫(如 cart-shipping.php),移除或重新命名佈景主題中被覆寫的檔案以還原預設 WooCommerce 範本。
物流未更新| 清除快取檔案:
– 前往 WooCommerce > 狀態 > 工具並清除所有暫存資料。
– 清除任何伺服器、CDN 或網站快取以確保變更生效。
檢查外掛衝突:
– 停用所有非必要的外掛並重新測試物流功能。
– 如果問題解決,逐一重新啟用外掛以識別衝突。
結帳版面配置損壞| – 移除或更新自訂範本覆寫
– 使用預設佈景主題測試。
在測試網站或暫存網站上檢查衝突
如果你懷疑網站上有衝突,請遵循我們的衝突測試指南。本指南將引導你以最安全的方式識別是外掛、佈景主題還是自訂程式碼導致問題,以及在進行任何變更前應考慮的最佳實務。
使用 Blueprints 協助疑難排解
WooCommerce 9.9 版新功能:Blueprints 是用於匯入和匯出商店設定的工具。它透過重複使用和分享商店設定來協助開發人員、代理商和商家節省時間,使設定更快速、疑難排解更容易。
在哪裡找到 Blueprints:你可以在 WooCommerce > 設定 > 進階 > Blueprint 找到 Blueprints。它目前支援核心 WooCommerce 設定,可透過管理介面或 WP-CLI 使用。
如何使用 Blueprints 進行疑難排解:
如果在遵循上述步驟後仍遇到物流問題,建議設定暫存網站進行測試:
- 使用預設佈景主題如 Storefront 或 Twenty Twenty-Five 設定暫存網站
- 啟用 WooCommerce 並複製相同的物流設定
- 在暫存網站上測試物流功能
如果問題未在暫存網站上發生,可能表示是你的正式網站有衝突,而非 WooCommerce 設定的問題。
常見問題與解決方案
重要:對於以下任何問題,如果指定的說明沒有幫助,請確保先完成基本疑難排解步驟和進階疑難排解步驟。
此地址無可用的物流選項
這是常見問題,通常與物流區域設定錯誤有關,但佈景主題或外掛衝突也可能導致此錯誤(例如:第三方外掛限制物流至某些國家或地區)。
顧客看到的錯誤訊息:錯誤:「此地址無可用的物流選項。請確認地址正確或嘗試其他地址。」
疑難排解此問題:
- 檢查物流區域:確保顧客的物流地址符合某個物流區域。你可以在 WooCommerce > 設定 > 物流 > 物流區域 檢查已設定的物流區域
- 驗證物流方式:找到物流區域並確認顧客地址符合其中一個區域後,確認相符的物流區域至少有一個已啟用的物流方式
- 檢查郵遞區號範圍:在物流區域設定頁面檢查是否有重疊或不完整的郵遞區號範圍(特別是使用萬用字元或空格時)
- 檢查商品設定:在商品編輯頁面,確認商品未標記為虛擬商品,且已新增重量、尺寸和物流類別,因為這些必須符合你的物流方式條件(取決於網站使用的物流方式)
- 啟用除錯模式:啟用物流除錯模式以顯示有用的錯誤訊息
物流被收取稅金
如果你看到物流被收取稅金但不應該如此,請按照以下步驟停用物流稅金:
- 前往 WooCommerce > 設定 > 物流 > 物流區域 > 編輯物流方式
- 確認方式的稅務狀態設為無(如果你不需要對物流費率收取稅金)
物流未收取稅金
如果結帳時物流費用未套用稅金,通常是稅務設定錯誤。請查看此物流稅務設定疑難排解指南。
統一費率物流金額不正確或與設定的費率不同
非預期的統一費率物流行為通常是由一個或多個設定問題引起:
檢查費率計算設定:
- 確認費率應按項目、按類別還是按訂單套用
- 使用
[qty]來按項目數量計算費用 - 使用
[fee]來計算百分比費用 - 參閱進階統一費率物流費用公式使用範例
檢查物流類別設定:
- 確保物流類別費用已在物流方式設定中定義
- 確認商品已指派至正確的物流類別
- 如果使用類別費用加基本費用,確保計算類型已正確設定
- 如果行為不一致,嘗試只在購物車中放一個商品測試以縮小原因範圍
免費物流未隱藏其他方式或未正確顯示
預設情況下,WooCommerce 會顯示所有符合顧客和購物車內容的物流方式。這表示免費物流會與統一費率和其他物流方式一起顯示。
從 WooCommerce 9.9 版開始:有內建設定可在免費物流可用時隱藏所有其他物流方式:
- 檢查你的 WooCommerce 版本:你可以在 WooCommerce > 狀態 確認版本
- 如果你使用 WooCommerce 9.9 或更高版本:前往 WooCommerce > 設定 > 物流 > 物流選項並啟用免費物流可用時隱藏物流費率
- 如果你使用較舊版本的 WooCommerce:免費物流不會自動隱藏其他方式,除非:
預設情況下,WooCommerce 會顯示所有符合顧客和購物車內容的物流方式。這表示免費物流會與統一費率和其他物流方式一起顯示。
免費物流選項缺失或在錯誤條件下顯示
如果免費物流在結帳時缺失,或購物車符合設定條件時未顯示,請務必檢查以下內容:
- 驗證物流區域:確保顧客的物流地址符合已設定的區域,並確認相關物流區域包含正確的地區
- 確認免費物流方式設定:確認已新增免費物流方式,並檢查是否選擇了預期的「免費物流需要」下拉選項
- 檢查商品物流類別:確保商品未指派至排除免費物流或套用不同物流費用的類別
顧客所在位置的物流費率錯誤
如果結帳時顯示的物流費率與你為顧客位置設定的費率不符,請檢查以下設定:
- 驗證顧客地址:確認顧客已在結帳頁面輸入完整的物流地址,包括國家/州/城市/郵遞區號
- 檢查商店地址:確保已在 WooCommerce > 設定 > 一般 輸入商店地址
- 使用物流除錯模式:你可以在 WooCommerce > 設定 > 物流 > 物流設定 啟用此選項。啟用後,請再次檢查結帳頁面(使用結帳短代碼)以確認相符的物流區域
- 檢查區域設定:前往 WooCommerce > 設定 > 物流 > 物流區域 檢查是否有重疊的郵遞區號範圍或區域排序問題
- 驗證位置代碼:確認區域中的國家和州縮寫使用 2 字母 ISO 代碼
- 測試外掛衝突:如果有外掛動態調整物流,停用該外掛並檢查行為是否持續來測試邏輯規則
物流費用未在購物車或結帳時更新
如果物流費率未反映商品、地址或數量的變更,請檢查以下內容:
檢查物流區域設定
前往 WooCommerce > 設定 > 物流 > 物流區域,確認顧客地址符合已定義的區域,且該區域至少有一個啟用的物流方式。
清除瀏覽器和網站快取
快取外掛或伺服器端快取可能阻止即時費率更新正確顯示。要修復此問題:
- 清除瀏覽器快取
- 清除網站快取
- 如果你使用快取外掛或主機商提供快取,確保以下頁面已從快取中排除:
- 購物車
- 結帳
- 我的帳戶
清除網站和瀏覽器快取並更新任何物流方式排除項目後,重新載入網站並完成測試結帳以確認正確的物流費率有顯示。
使用 AJAX 強制更新購物車
確保你的佈景主題支援 AJAX 更新,或引導使用者選擇「更新購物車」如果費率未自動重新計算。
一般物流類別設定錯誤
本節概述與物流類別相關的常見設定錯誤,並提供解決步驟。
物流類別費用未套用至物流費用
當物流類別及其費率留空或未正確設定時可能發生此問題。請檢查以下內容:
- 商品類別指派:在商品資料面板中,選擇管理物流設定的選項。確保每個商品都指派至正確的類別
- 方式類別費率:確認類別專屬費率已在統一費率方式設定中定義,在相關的「物流類別費用」選項下
物流費用總是顯示 $0
如果你的統一費率物流方式已啟用但費用傳回 $0,請檢查以下內容:
- 設定基本費用:確保至少設定基本費用或物流類別費用
- 設定計算類型:根據你想要如何計算物流費用,將物流類別的計算類型設為「按類別」或「按訂單」。此設定直接影響結帳時費率的套用方式
顧客輸入地址前不計算物流費用
如果物流費用在顧客輸入物流地址前不計算,你可以檢查以下內容:
- 檢查計算設定:在 WooCommerce > 設定 > 物流 > 物流設定 > 計算,確保「輸入地址前隱藏物流費用」未勾選
- 驗證地理位置設定:如果你使用地理定位,請確保已在 WooCommerce > 設定 > 整合 > MaxMind Geolocation 的整合分頁輸入正確的 MaxMind Geolocation 授權金鑰
物流類別未正確套用
物流類別定義統一費率等物流方式的費用規則。如果具有特定類別的項目在結帳時未顯示正確的費用,請檢查以下設定是否有設定錯誤:
確認商品已指派正確的類別:在商品資料面板中,選擇管理物流設定的選項。確保已選擇並儲存正確的物流類別。對於可變商品,請個別檢查每個變體的設定。
在正確的區域檢查物流方式設定:前往 WooCommerce > 設定 > 物流 > 物流區域。選擇顧客所屬的區域並開啟統一費率(或其他適用的)方式。確保你已在「物流類別費用」下輸入相關物流類別的費用。
了解統一費率如何優先處理費用:預設情況下,統一費率物流使用購物車中項目的最高類別費用。如果你想要組合統一費率物流類別以按類別收費,你需要在計算類型下啟用「按類別:為每個類別個別收取物流費用」。
其他參考資訊
短代碼與區塊結帳的差異
物流方式在使用短代碼與結帳區塊之間可能顯示不同。請使用兩種結帳介面進行徹底測試。
- 短代碼結帳:使用
[woocommerce_checkout]短代碼建立短代碼結帳頁面 - 區塊結帳:新增結帳區塊建立區塊結帳頁面
結帳時門市取貨顯示兩次
如果你在結帳時看到重複的取貨選項,很可能是因為在 WooCommerce > 設定 > 物流 > 門市取貨 啟用區塊式門市取貨選項之前,舊版門市取貨方式已新增到物流區域(如果你未使用結帳區塊,將不會看到此選項)。這表示你同時啟用了兩種門市取貨選項。
重要:請勿同時使用兩種取貨選項,這可能會讓顧客感到困惑。如果兩個選項都啟用,門市取貨設定頁面會顯示通知。
解決方案:如果你使用區塊式結帳,請在 WooCommerce > 設定 > 物流 中從物流區域移除舊版門市取貨方式。區塊式結帳的新門市取貨選項不需要新增到物流區域——它在 WooCommerce > 設定 > 物流 > 門市取貨 的門市取貨設定頁面中單獨管理。
顧客如何配對到物流區域
WooCommerce 會將顧客配對到第一個符合其物流地址的區域。如果你的顧客在購物車和結帳頁面看不到正確的物流方式,物流區域的順序很可能有誤。
最佳做法:為了在結帳時顯示正確的選項,請將區域從最具體排到最廣泛——例如先城市、再州/省、最後國家。進一步了解物流區域排序。
更新物流方式名稱
新增到物流區域的物流方式所設定的標題,就是結帳過程中顯示給顧客看的內容。你可以透過編輯新增到物流區域的物流方式,輕鬆變更物流方式標題。
第三方購物車/結帳模組
為確保與 WooCommerce 核心功能相容,請使用預設頁面編輯器和 WooCommerce 核心購物車及結帳短代碼或區塊。
如果你使用第三方佈景主題、頁面建構器或外掛來建立購物車或結帳頁面,並且正在排解物流問題,請切換到預設的 WooCommerce 設定以隔離原因。使用預設頁面編輯器搭配 WooCommerce 核心購物車和結帳短代碼或區塊。
這有助於判斷問題是與你的自訂設定有關,還是與 WooCommerce 本身有關。
虛擬商品不會觸發物流
將商品標記為「虛擬」會停用該項目的所有物流選項,因此虛擬商品不會觸發物流計算,也不會在結帳時顯示物流欄位。
將商品設為虛擬:編輯商品,然後勾選「虛擬」核取方塊。
物流稅預設為標準稅率
物流稅是根據購物車項目或標準稅率計算。如果結帳時物流費用未套用稅金,通常是因為稅務設定配置錯誤。請參閱此物流稅設定疑難排解指南。
即使新增重量或尺寸,物流仍不可用
統一費率、免運費和門市取貨等核心物流方式是依據物流類別、物流區域和物流方式運作的,商品的物流重量或尺寸不會影響這些。但這對於正確向顧客顯示商品資訊很有幫助,在使用即時費率時特別有用。
世界其他地區物流區域
當顧客的地址不符合任何其他已定義的物流區域時,WooCommerce 會套用「世界其他地區」區域。你無法移動、重新命名或刪除此區域。
特定郵遞區號注意事項
設定郵遞區號區域:你也可以使用萬用字元(*)根據郵遞區號設定新的物流區域。
如何使用郵遞區號限制物流區域:本地物流區域可以包含一個或多個(每行一個)以下內容:特定郵遞區號、數字範圍(例如:90210…99000)以及帶萬用字元(*)的郵遞區號。
使用萬用字元:萬用字元可用於擷取所有開頭相同的郵遞區號,因此對於包含非數字字元的郵遞區號,這是建議的選項。
範例:
902*會擷取 90210 以及 90288-1234CB23*會擷取 CB23 1EXCB2*會擷取 CB2 3AA 和 CB23 1EX
注意:不支援在數字範圍中使用萬用字元(例如:902…990)。
核心物流的限制與替代方案
以下選項內建於 WooCommerce,涵蓋大多數商店最常見的物流需求:
統一費率物流
讓你可以定義每件商品、每個物流類別或每筆訂單的標準物流費率。
免運費
讓你可以為顧客訂單新增「免運費」選項,前提是訂單符合特定條件(例如:最低消費金額),或者你想為特定地理區域內的所有顧客提供免運費。
門市取貨(舊版)
讓你可以提供顧客直接從你的商店取貨的選項。顧客必須輸入地址,且必須配對到已新增此物流方式的物流區域才能看到此選項,稅金則根據商店位置計算。
WooCommerce 區塊:門市取貨
讓你可以使用 WooCommerce 結帳區塊在結帳時提供一個或多個取貨地點。顧客可以選擇取貨地點而無需輸入物流地址,稅金則根據所選取貨地點計算。
重要限制:WooCommerce 核心物流不提供在結帳時顯示即時物流費率的選項,也不提供列印訂單出貨標籤的方式。相關建議請參閱下方內容。
物流標籤
以下解決方案讓你可以直接從 WooCommerce 控制台或透過整合平台產生並列印物流標籤:
WooCommerce Shipping、ShipStation 和 Stamps.com 等服務讓你可以直接從 WooCommerce 控制台或透過整合平台產生並列印物流標籤。
即時費率
部分擴充功能讓你可以在結帳時顯示主要物流商的即時運費,如 UPS、USPS、FedEx 和 Royal Mail 等,幫助你向顧客提供準確的物流費用。
API 物流費率疑難排解一般技巧
請依照這些疑難排解步驟,找出並修正導致結帳時無法顯示即時運費的常見問題:
- 啟用外掛專屬的除錯/記錄工具——啟用除錯模式的說明可在各物流擴充功能的文件中找到
- 確保商品有完整的重量和尺寸資料
- 驗證 API 憑證——使用依賴 API 的即時費率物流擴充功能時,憑證錯誤是常見的問題原因。這些問題通常與授權或身分驗證錯誤有關,請參考你使用的物流擴充功能文件
- 在外掛設定中驗證出貨地郵遞區號
更複雜的物流邏輯
進階外掛如 Conditional Shipping & Payments、Table Rate Shipping、Per Product Shipping 和 Distance Rate Shipping 等,讓你可以自訂物流規則和費率,以符合獨特的業務需求或專門的物流情境。
其他實用外掛
Shipment Tracking 等外掛可增強物流工作流程,讓你可以為 WooCommerce 訂單新增出貨追蹤資訊,讓顧客可以透過電子郵件、訂單追蹤頁面和帳戶儀表板追蹤包裹。
取得協助與支援
支援請求所需資訊:
- 你遇到問題的詳細說明
- 清楚的重現步驟(包括你測試用的物流地址)
- 你已經採取的疑難排解步驟
- 瀏覽器主控台或 PHP 錯誤記錄中的任何錯誤訊息
- 你的 WooCommerce 系統狀態報告副本
應包含的截圖:
- 購物車和結帳頁面以顯示問題
- 物流設定,包括物流區域和物流方式
- 受影響商品的編輯頁面,顯示物流配置