Whoops

結帳頁是整個電商漏斗最窄的那個瓶頸。商品頁做得再漂亮、廣告投得再兇,消費者走到結帳那一刻只要多填三個欄位、多等兩秒、多按一個「下一步」,訂單就消失了。這篇要談的重點,是把結帳表單調整成最少摩擦、最高轉換的樣子。至於「結帳頁怎麼變好看」,那只是順帶的收穫。

先給你一份重點摘述。WooCommerce 預設的結帳表單是設計給不同市場通用的範本,不一定適合每間店。動手前要先確認目前使用的是 Checkout Block 還是 Classic Checkout:兩者的擴充介面不同,傳統 filter 與模板覆蓋主要適用於 Classic Checkout。可用的方法包括核心區塊設定或相容外掛、Classic Checkout 的 filter 程式碼、覆蓋傳統佈景模板,以及頁面建立器。

結帳頁為什麼是轉換率的生死線

先把視野拉高。根據 W3Techs 的市佔統計(2026 年 6 月),WooCommerce 是全球市佔最高的電商系統之一,從個人賣家到大型品牌都在用,這也代表它的預設值必須夠通用、夠中性。問題是,「通用」跟「適合你」從來不是同一件事。那份通用範本裡,有些欄位你的客層根本不需要,有些你需要的欄位它卻沒有。

那不客製化的代價是什麼?答案在購物車放棄率。Baymard Institute 長年追蹤這個數字(2026 年),線上購物車的平均放棄率大約落在七成上下,而其中一大塊原因,直接指向結帳表單本身太長、太多必填、要求註冊帳號、欄位語意不清這類可以靠自己改掉的問題。換句話說,結帳頁不是「裝飾品」,它是 CRO(Conversion Rate Optimization,轉換率優化)的主戰場。你每多放一個不必要的欄位,就是在替對手的購物車送客人。

回過頭,建議你把「結帳表單客製化」當成一件獨立、優先級很高的工作,別把它丟到「等其他功能都做好再說」的那一欄。它投報比極高,改一個欄位的工可能只有十分鐘,影響的卻可能是全站最有價值的那群人,也就是已經決定掏錢的人。如果你才剛起步、連 WooCommerce 都還沒裝好,可以先回頭看〈WooCommerce 電商架站實戰〉把基礎打通,再回來這篇做結帳優化。

動手改欄位之前,先做一次結帳體檢

很多人一聽到「結帳客製化」就立刻裝外掛、改程式碼,這順序其實是錯的。正確的第一步是量測,不是動手。你連現在的結帳頁到底爛在哪裡都不知道,改了也只是憑感覺。

實務上的習慣是,每次做結帳體檢,第一件事就是打開結帳頁,自己用一支手機、再用了無痕視窗的桌機,各走完一遍結帳流程,一邊計時一邊記錄卡頓點。這個「結帳體檢」對應下方這張清單表格,你可以直接拿去用。

體檢項目要看什麼理想狀態
欄位總數帳單+運送+備註加起來有幾格能刪到十格以內最好,B2C 盡量壓更低
必填比例有多少欄位打了星號只留金物流真的需要的,其他改選填
欄位語意標籤與 placeholder 是否清楚消費者不用猜就知道填什麼
錯誤提示填錯時的訊息位置與用詞欄位旁即時提示,不是送出才一次跳全頁錯誤
行動填寫時間手機上從開頁到能按結帳要多久老客戶一分鐘內、新客兩分鐘內
鍵盤類型輸入手機或郵遞區號時跳出什麼鍵盤數字欄位要叫出數字鍵盤

這張表跑完,得到的會是一份具體的待辦清單,足以取代「結帳頁感覺不太順」這種模糊結論。舉個例子,你會發現真正的問題不是「欄位太多」,而是「其中四格是給 B2B 開統編用的,但你的客層九成是一般消費者」。這時候解法就很清楚,把公司欄位與統編欄位改成選填、甚至用條件邏輯只在使用者勾選「公司」時才出現。這類判斷必須靠體檢,靠直覺改通常會改錯方向。

如果你的站已經跑一段時間、有 GA4(Google Analytics 4)或類似的分析工具,務必把結帳漏斗的每一步放棄率調出來看。哪一屏掉最多人,就是你要優先處理的那一屏。沒有資料就先裝、先累積一兩週,別急著在沒有數字的情況下大改。

結帳客製化的四條路線,你該選哪一條

體檢完,進入實作。WooCommerce 的結帳表單客製化,主流方法有四條路線。它們不是互斥的,很多站會混用,但你要先搞清楚每一條的能力邊界,才不會用錯工具做錯事。

路線本質適合誰主要風險
外掛法用圖形介面增刪改欄位不寫程式、需求單純的店主外掛衝突、更新跟不上核心版本
程式碼 filter 法Classic Checkout 可用 woocommerce_checkout_fields 等 filter 控制有工程資源、想要可版本控的團隊不適用 Checkout Block;改錯可能造成結帳錯誤
佈景覆蓋法Classic Checkout 可複製模板檔到子佈景改 HTML 結構要動傳統模板結構而非欄位屬性時不適用 Checkout Block;升級要手動同步
頁面建立器法用相容的頁面建立器整頁重畫想把結帳頁當作品牌體驗來設計速度拖重、維護成本高

判斷原則很簡單:先到結帳頁編輯畫面確認是區塊版還是傳統 shortcode。Checkout Block 可直接切換公司、地址第二行與電話欄位的顯示/必填狀態,也能在清單檢視裡調整部分區塊;超出核心設定時,要選明確標示相容 Checkout Block 的擴充。Classic Checkout 才依需求選外掛、filter 或模板覆蓋(可對照 WooCommerce 的 Checkout block 文件)。

還有一個常被輕忽的判斷維度,叫「升級耐受度」。WooCommerce 每年會有幾次大版本更新,每次更新都可能動到結帳頁的底層結構。四條路線裡,filter 程式碼的耐受度最高,因為它掛在官方公開的 hook 上,只要 hook 名稱沒廢,你寫的東西就會繼續生效;外掛法的耐受度取決於外掛作者跟進的速度,免費外掛有時會拖好幾個月才支援新版;模板覆蓋法的耐受度最差,因為它整份檔案是複製出來的快照,核心模板改了你不會自動拿到;頁面建立器法介於中間,要看建立器本身的 WooCommerce 模組更新頻率。如果你預期這個站會長期營運、每年都會跟著 WooCommerce 升級,把升級耐受度納入路線選擇,能幫你避開每年一次的結帳頁大當機。

路線一:Checkout Field Editor 外掛,無程式碼改欄位

對絕大多數沒有工程資源的店主,這條路線是最快上手的。WooCommerce 官方就提供了一套 Checkout Field Editor 外掛,讓你在後台用表單介面直接新增欄位、刪除欄位、拖曳排序、切換必填、設定驗證規則,完全不用碰程式碼。它的好處是直覺、所見即所得,壞處是進階條件邏輯(例如「只有勾公司發票才出現統編欄位」)在免費版通常做不太到,要靠付費版或額外外掛補。

這條路線的操作細節很多,光是欄位類型與驗證規則就值得另開一篇。這篇把焦點放在「為什麼要用、什麼時候不該用」的策略層。如果只要刪幾個欄位、改幾個標籤,先確認核心 Checkout Block 能否完成,再評估外掛;外掛文件也要明列與目前結帳版本相容。若開始疊好幾支結帳外掛,彼此還搶欄位順序,就該收斂成一套相容方案。

順帶一提,如果你連安裝外掛這一步都還不熟,可以先把〈WordPress 外掛安裝教學〉看過一遍,會少踩很多安裝與啟用的基本坑。挑外掛時也建議參考〈WooCommerce 必裝外掛清單〉,避免裝到會拖垮結帳頁速度的重型外掛,那會本末倒置。

路線二:Classic Checkout 用 woocommerce_checkout_fields filter 控制

這條路線只適用於 Classic Checkout。你可以在自製小外掛裡掛上 woocommerce_checkout_fields,在傳統結帳欄位送進畫面前修改它(見 WooCommerce 開發文件的 Customising checkout fields using actions and filters 說明)。優點是可以進版本控制,團隊交接時看得懂改了什麼;如果頁面使用 Checkout Block,這段 filter 不會控制區塊結帳欄位,需改用 Blocks 提供的擴充介面或相容外掛。

接下來這段是多數 B2C 店常用的起手式,示範改標籤、改 placeholder、設必填、調整欄位寬度、移除某個欄位。你可以把它當模板,依需求改 key 與值。

add_filter( 'woocommerce_checkout_fields', 'whoops_tune_checkout_fields' );
function whoops_tune_checkout_fields( $fields ) {
    // 1. 改標籤與 placeholder,讓欄位語意更清楚
    $fields['billing']['billing_last_name']['label']       = '姓氏';
    $fields['billing']['billing_last_name']['placeholder'] = '例:王';
    $fields['billing']['billing_first_name']['label']      = '名字';

    // 2. 把某欄位改成非必填
    $fields['billing']['billing_company']['required'] = false;

    // 3. 調整欄位寬度,讓姓氏與名字兩欄並排
    $fields['billing']['billing_first_name']['class'] = array( 'form-row-first' );
    $fields['billing']['billing_last_name']['class']  = array( 'form-row-last' );

    // 4. 設定輸入類型,手機欄位叫出數字鍵盤
    $fields['billing']['billing_phone']['custom_attributes'] = array(
        'inputmode' => 'numeric',
        'autocomplete' => 'tel',
    );

    return $fields;
}

這段程式碼做了四件事,每一件都對應前面體檢表裡的一個問題。改標籤處理「語意不清」,改必填處理「必填比例過高」,調寬度處理「手機上一排一個欄位太占空間」,設 inputmode 處理「鍵盤類型不對」。這就是 filter 路線迷人的地方:一段程式碼,背後是一次性的思考,之後每次升級都自動帶著走,不用每次都進後台重點一遍。

要特別提醒,移除欄位用 unset() 雖然可行,但務必先確認金物流外掛會不會依賴那個欄位。例如某些超商取貨外掛會讀手機欄位來推播取貨通知,你把它 unset 掉,取貨簡訊就發不出去。這種隱性依賴是程式碼路線最容易踩的雷,改之前先 grep 一下相關外掛有沒有用到該欄位的 key,會安心很多。如果你會自己寫小工具,把常用的欄位調整包成一支獨立外掛,別塞進子佈景裡,未來換佈景時也不會把結帳設定一起丟掉。

路線三:template override,連版型結構一起改

當你的需求超過「改欄位屬性」,進到「想改欄位是怎麼被排列的」,filter 就不夠用了,這時候要走 template override(佈景模板覆蓋)。做法是:把 WooCommerce 外掛資料夾裡 templates/checkout/form-checkout.php 這個檔案,複製一份到你的子佈景裡對應的路徑 子佈景/woocommerce/checkout/form-checkout.php,然後改複製出來的那一份。WooCommerce 在渲染時會優先讀子佈景裡的版本。

什麼時候才需要走到這一步?列出三個典型情境:第一,你想把帳單區塊與運送區塊拆成左右兩欄,跳出預設的上下堆疊形式。第二,你想在結帳頁塞入品牌專屬的信任元素,例如安全保障圖示、退換貨承諾、客服聯絡方式。第三,你要把某個自訂欄位放進一個非常特定的視覺位置,而那個位置用 filter 的 class 控制不到。

這條路線的代價是維護成本。WooCommerce 每次大改版,如果結帳模板有結構性更新,你覆蓋的那一份不會自動跟著更新,要自己手動 diff、把新的調整併進來。這是為什麼前面提到「能用 filter 就不要動模板」。模板覆蓋留給那些真的需要動結構的少數情境,不要一開始就跳進來。如果佈景本身提供相容目前結帳版本的版型選項,可以先測試內建功能,通常比自行覆蓋模板更容易維護。

台灣結帳頁的特殊欄位:統一編號、地址、超商取貨

這一節是寫給在台灣做電商的人,也是這篇最值得停下來細看的地方。WooCommerce 預設表單是英美邏輯設計的,直接拿來面對台灣消費者會有幾個尷尬。有幾個欄位,幾乎每個台灣 WooCommerce 店都要自己補上或改寫。

統一編號與發票類型。台灣消費者結帳時常需要選擇開立「個人」或「公司」發票,選了公司就要填統一編號。預設 WooCommerce 沒有這個欄位,你得自己加,並用條件邏輯讓統編欄位只有在勾選公司時才出現。如果你的發票要走電子發票或加值中心,例如串綠界,〈綠界金物流串接教學〉裡會涵蓋發票欄位的串接;更輕量的做法是搭配〈RY WooCommerce Tools〉這類工具,它把台灣常用的發票、物流欄位整理成現成選項,省下自己刻 filter 的工。

縣市與鄉鎮市區下拉。預設的地址欄位是一個純文字方塊,消費者要自己打「台北市」「大安區」,錯字、簡繁差異、漏字都會造成後續出貨與運費計算的麻煩。理想做法是把縣市與鄉鎮市區做成連動下拉選單,選了縣市才出現對應的區。這個需求很常見,不少店家因為漏了這一步,每個月都要手動修地址錯字。具體做法寫在〈縣市下拉選單設定教學〉這一篇,搭配 RY WC City Select 之類的外掛就能快速完成。

超商取貨門市選擇器。這是台灣電商最在地、也最容易出問題的欄位。消費者選了「7-Eleven 超商取貨」之後,要能進一步選擇要把貨送到哪一間門市,這牽涉到門市地圖、店號回傳、運費規則連動。這通常無法單靠加欄位解決,得跟物流外掛一起設計。建議從〈運費設定全攻略〉理解運費規則的整體框架;金流與物流要怎麼當成同一個系統來配置,可參考〈金流物流設定全攻略〉,再把門市選擇器當成運送方式的一環來接。

郵遞區號三加三。中華郵政目前提供 3+3 郵遞區號查詢,結帳欄位的格式與驗證要配合實際物流或地址服務需求,不能只限制成舊的五位格式。可先加上適合的 inputmode,再配合 中華郵政的郵遞區號查詢,由縣市、鄉鎮市區與地址資料帶入或驗證郵遞區號。

台灣特殊欄位預設有沒有建議做法
發票類型切換(個人/公司)沒有自訂欄位+條件邏輯,或用 RY Tools
統一編號沒有條件出現,只在公司發票時顯示
縣市/鄉鎮市區連動下拉沒有城市選擇外掛,參考縣市下拉教學
超商取貨門市選擇器沒有綁物流外掛,非單純加欄位
郵遞區號三加三有但驗證依設定而異配合物流或地址服務驗證

把這幾個欄位處理好,你的結帳頁才算是真正「在地化」,不再只是一份翻成中文的英美表單。這件事的價值很實際,地址對了,出貨退件率就降;發票欄位順了,客服每天解釋「怎麼補統編」的時間就少。

條件邏輯:讓欄位只在該出現時才出現

前面的台灣欄位裡,統一編號只有勾「公司發票」才該出現、超商門市只有選「超商取貨」才該出現、電子發票載具只有選「個人電子發票」才該出現。這種「甲欄位的值決定乙欄位要不要顯示」的需求,叫條件邏輯(conditional logic),它能把必填比例壓到最低,同時又不犧牲功能完整性。消費者選了公司發票,統編才現身、才變必填;選個人發票,統編直接消失,連帶不佔畫面、不擋流程。這正是前面體檢表裡「必填比例」這一項的最佳解法,比起把所有欄位一股腦攤開,聰明得多。

實作上有兩條路。第一條是裝支援條件邏輯的結帳欄位外掛,多半是 Checkout Field Editor 的進階版本或獨立外掛,在後台用「當某欄位等於某值時,顯示某欄位」的介面設定,完全不寫程式。第二條是程式碼路線,用 woocommerce_checkout_fields 把欄位註冊進去,再搭配一小段前端 JavaScript 監聽觸發欄位的變化,動態切換目標欄位的顯示。兩條路各有取捨:外掛設定直覺,但條件一多會卡在外掛的能力上限;程式碼彈性高、可版本控,但要自己處理前端顯示與表單送出的時機。如果你的條件規則會持續增加(例如之後還要加「海外運送才顯示報關欄位」),早點走程式碼路線會比較省事。

有一個效能與資料面的細節值得記下。動態欄位盡量用 CSS 的 display 屬性切換顯示,不要每次條件變動就重新渲染整個表單。結帳頁對 JavaScript 的回應速度很敏感,重新渲染會造成可感知的卡頓,尤其是在效能較差的手機上。資料面則要注意:條件欄位的值在送出前要記得清理。如果消費者先填了統編、又切回個人發票,那個統編值不該跟著訂單一起送進資料庫,否則日後對帳會出現幽靈資料。這類細節是條件邏輯最容易翻車的地方,上線前一定要用「先選 A、再改選 B」的順序手動測一遍,確認隱藏欄位的值真的沒有被帶進訂單。

把結帳拆成多步驟,真的會提升轉換嗎

這是結帳客製化裡被問最多的問題之一:到底要用單頁結帳,還是拆成兩步、三步甚至四步?市面上的外掛兩種都推,而且都說自己能提升轉換,搞得店主無所適從。

答案是:對大多數 B2C 店,單頁結帳仍是基準款,原因是它讓消費者一眼看到要填什麼、不用怕「下一步還有多少坑」。Baymard 的結帳可用性研究(2026 年)反覆指出,過長或過度分頁的結帳流程、以及「下一步」帶來的不確定性,是消費者放棄結帳的常見原因之一。但這不是絕對。如果你的結帳頁欄位很多(例如同時要選金流、物流、發票、折價券、會員),把它們全部塞一頁反而會讓人看到眼花,這時候適度拆步驟、每步聚焦一件事,反而能降低認知負擔。

判斷準則是「欄位密度」而不是「步驟數字」。一頁能讓人在手機上滑一兩次就看完全部,就維持單頁;一頁要滑四五次、而且不同區塊彼此干擾,就值得拆。拆的時候有兩個原則:第一,每一步都要有明確的進度指示,讓消費者知道還剩幾步;第二,總金額與購物車摘要必須在每一步都看得到,絕對不能藏在最後一步才揭曉,否則放棄率會暴衝。

折價券欄位也是常見的糾結點。要不要在結帳頁放優惠碼輸入框?放,會提醒消費者「我有沒有碼可以找」,然後跳出去找碼、找到忘記回來;不放,老客戶用不了累積的折扣。折衷做法是:放,但折疊起來,預設收合、點了才展開,降低對一般消費者的視覺干擾。優惠券本身的設定邏輯是另一門學問,可以搭配〈優惠券設定教學〉一起看。

談到欄位的先後順序,還有一個小但有效的方法:把最容易填、最少摩擦的欄位排在最前面。姓名、email 這類消費者倒背如流的欄位排在前頭,能讓他一進結帳頁就快速完成幾格、建立「我正在推進」的心理慣性;地址、電話這類要想一下的欄位往後放。這個順序原則看似微不足道,順應的卻是人性。人一旦開始填表、投入了時間,就比較願意把它填完;反過來,把最難的欄位擺在最前面,消費者第一眼就覺得麻煩,放棄的機率自然就高。用 filter 調欄位順序時,記得把這個心理因素一起考慮進去,不要只照資料庫欄位的預設順序排。

欄位之外的兩個隱形殺手:速度與行動體驗

把欄位調好之後,還有兩個東西不動欄位、卻會決定結帳頁成敗,那就是載入速度與行動裝置體驗。這兩個常常被歸類到「網站優化」而跟結帳客製化分開談,但實務上它們就是結帳頁的一部分。

先談速度。Google 的 web.dev 資源反覆強調頁面速度對使用者留存與轉換的影響,頁面載入每多一秒,訪客跳出的機率就顯著上升。結帳頁尤其敏感,因為消費者來到這裡時已經處於「準備掏錢」的高意圖狀態,任何延遲都會被放大成焦慮。WooCommerce 的結帳頁預設載入了不少 JavaScript 與金流腳本,如果你又疊了好幾支結帳客製化外掛,速度很容易爆開。實務建議是:結帳頁要獨立做快取設定,很多全站快取外掛會把結帳頁排除掉,確認這一點;同時用〈網站速度的實戰拆解〉裡的方法,把 Core Web Vitals 的 LCP(最大內容繪製)與 INP(互動到下一次繪製)壓在綠區。挑快取外掛時可以參考〈WordPress 快取外掛實測〉,挑一款能精準控制結帳頁不被錯誤快取的。

再談行動體驗。Baymard 的行動結帳研究(2026 年)指出,手機結帳的放棄率通常高於桌機,原因包含欄位太小難點、鍵盤擋住輸入框、輸入類型不對導致要重複切換鍵盤。這些問題前面 filter 路線的 inputmode 範例就是在處理。完整的行動結帳清單至少要做到:每個輸入欄位都設定正確的 autocomplete 屬性(姓名、email、電話、地址各有對應值,瀏覽器才能自動帶入)、數字類欄位用 numeric inputmode 叫數字鍵盤、email 欄位叫出有 @ 的鍵盤、欄位之間的 tab 順序符合視覺順序。這些細節單獨看都小,疊起來就是手機用戶能不能順利結帳的關鍵。

如果網站需要獨立的快速結帳入口,例如登入後帶入上次收件資訊,可評估整合社群登入,減少老客戶重複填寫資料的摩擦。若海外客群常用 PayPal,也可參考WooCommerce 串接 PayPal 的流程評估是否加入快速付款按鈕。兩者分別減少輸入次數與付款步驟,仍應用實際結帳資料驗證效果。

改完之後怎麼驗證:用數據確認改對了

結帳客製化最忌諱「改完就上線、上線就放著」。你以為刪掉電話欄位是幫消費者省事,結果可能是某個出貨流程少了電話導致無法簡訊通知,反而客服電話接到爆。任何結帳頁的更動,都應該搭配一套驗證流程。

基本的驗證有兩層。第一層是功能驗證:改完之後,自己用至少兩種瀏覽器、桌機與手機各走一次完整結帳,確認每一個欄位都能正確送出、金物流都能正確觸發、訂單後台能看到所有自訂欄位的值。這一步聽起來基本,但實務上太多站改完欄位就直接上線,結果統編欄位根本沒進資料庫,開了發票卻沒有統編可以開。第二層是數據驗證:改動上線後,用 GA4 的結帳漏斗觀察一到兩週,比較改動前後的放棄率變化,或用 A/B 測試工具把新舊版本同時跑,讓數據告訴你哪個版本真的贏。

如果你想做更細的觀察,可以搭配熱圖工具看消費者在結帳頁的游標與滑動行為,找出哪一屏停留最久、哪一個欄位被反覆點了又清空。這些都是欄位設計有問題的訊號。沒有預算上付費工具也沒關係,至少把 GA4 漏斗與「自己手動走一遍」這兩件事做好,就能避開絕大多數的客製化災難。

想做更嚴謹的驗證,A/B 測試是黃金標準,但前提是流量要夠。結帳頁的轉換率要測出統計顯著的差異,通常需要為數可觀的完成訂單樣本,這對中小電商是個門檻。如果你的單月訂單量不夠大,與其硬做 A/B 測試得到一堆噪音資料,不如先把 GA4 漏斗、熱圖、與手動走查這三件事做紮實,每次只改一個變數、觀察一個完整週期,再用前後對比判斷方向。改動要小步推進,一次只動一個欄位或一個規則,這樣當轉換率出現變化時,你才找得出是哪個改動造成的。一次改五個地方、然後看到轉換率上升,你根本不知道是哪一個有效、哪一個其實在拖後腿,等於白改。

還有一件事別忘:結帳頁任何更動上線前,請務必先備份。這不是官腔,結帳頁壞掉等於全店停止接單,是最高優先級的事故。備份工具的選擇可以參考〈WordPress 備份外掛推薦〉,挑一款能定時備份又能一鍵還原的。這個習慣養起來,你才有底氣放心去改結帳頁。

三個結帳頁最該避免的錯

這節是實務上的底線清單,三個原則,每一條都是實務上常見的坑。

第一,先評估是否開放訪客結帳。強制註冊會增加結帳步驟,可能提高放棄率;若法規、訂閱、會員權益或風險控管沒有要求,可先開放訪客結帳,或在付款完成後邀請顧客建立帳號,再用結帳完成率與回購資料比較不同方案。

第二,絕不隱藏總金額。結帳頁的總金額、運費、稅金,從第一屏就要看得到,而且要一路顯示到最後。把總價藏到最後一步才揭曉,消費者會瞬間失去信任、懷疑你是不是在偷加費用,然後直接跳出。稅額是否內含及如何開立發票,要依商品、商家稅務身分與適用規定設定;畫面上的呈現務必一致,〈稅金設定教學〉有完整的處理方法。

第三,絕不留無意義的必填欄位。「地址第二行」「公司名稱」「生日」這些欄位,對大多數 B2C 品類都是多餘的,卻常被留成必填。每多一個必填欄位,就是在替猶豫的消費者多找一個放棄的理由。原則是:除非金物流、發票、出貨真的需要這個值,否則一律改成選填或直接移除。要不要保留生日欄位給日後做生日優惠?可以,但設成選填,不要擋在結帳路徑上。

這三條看起來是常識,但每次做結帳體檢,幾乎都還能在受檢的站上找到至少一條。可見它們有多容易被忽略。把這三條當成結帳客製化的紅線,任何更動都不能違反,你的結帳頁轉換率就會有一個穩定的下限。

改一個欄位,下游四個地方會跟著連動

結帳欄位不是獨立物件,它跟訂單的後續處理緊緊綁在一起。每改一個欄位,至少要回頭檢查四個下游環節:訂單後台是否正確顯示該欄位的值、訂單匯出(Excel 或 CSV)的欄位映射是否包含該欄位、消費者收到的訂單確認信與出貨通知是否對應顯示該欄位內容、金流與物流外掛是否仍能正確讀取該欄位。其中訂單匯出與通知信件最常被漏看,自訂欄位若沒在匯出設定裡手動加入,批次出貨與對帳時就會缺欄位;信件模板沒對應,消費者填了統編卻在確認信裡找不到,事後還要客服補開。這也是前述驗證流程不能只看前端顯示的原因,跑完一筆訂單、確認整條鏈路都通,才算真的改完。

結帳客製化的典型出錯情境與排查

結帳客製化有幾個反覆出現的典型故障,值得先記在心裡。結帳按鈕按了沒反應,常是某個被設成必填的欄位同時被條件邏輯隱藏了,系統仍要求它必填、消費者卻看不到,這種衝突只在特定路徑出現,測試時務必把個人消費者與公司採購兩條路徑都跑一遍才能抓到。統編填了卻沒進訂單,常是自訂欄位沒掛上後台顯示的鉤子;超商取貨選不出門市,常是縣市下拉的回傳值與物流外掛預期的格式不一致;訂單匯出檔少了新欄位,常是匯出外掛的映射沒更新;欄位標籤顯示英文,常是翻譯檔沒覆蓋到自訂欄位。把這幾個情境當成除錯起點,能省下大量盲目翻找的時間。

欄位類型選擇與台灣格式驗證

欄位開始填之前,類型選對就能先擋掉一半的填錯。原則是:能用選的就不要讓消費者用打的。選項明確且有限的欄位(發票類型、配送時段、縣市)用下拉或單選,能提供標準化輸入,也減少後續處理變體資料的麻煩;核取方塊適用於是否為公司採購、是否需要禮品包裝這類是非題;長篇說明才用多行文字。格式驗證方面,台灣手機號碼是 09 開頭共十碼、統一編號是八碼數字,在欄位編輯器或 filter 裡加上輸入類型與長度限制,能擋掉消費者把公司名稱填進統編欄位、或把國碼帶進電話欄位這類錯誤。但格式限制別過度收緊,否則會誤擋合法輸入,先觀察實際填寫狀況再逐步調整會更穩。

動手清單:下一步該做什麼

看完上面這些,你可能會覺得要做的很多。別慌,結帳客製化不是一次做完整件事,而是一輪一輪地優化。下面是建議的動手順序,照著走一遍,你的結帳頁就會比八成的 WooCommerce 店都還要好。

  1. 先體檢,不動手。用前面那張體檢表走一遍自己的結帳頁,記錄欄位總數、必填數量、行動填寫時間、以及任何卡頓點。產出一份具體的待辦清單。
  2. 處理台灣在地欄位。把統一編號、縣市鄉鎮下拉、超商取貨門市這幾個在地需求先補齊,這是台灣消費者最直接的痛點,回報也最快。
  3. 選一條客製化路線。不寫程式就從 Checkout Field Editor 外掛入門;有工程資源就走 woocommerce_checkout_fields filter。把標籤、必填、寬度、inputmode 這幾項先調到位。
  4. 清掉無意義欄位。把不影響金物流發票出貨的欄位改成選填或移除,特別是公司名稱、地址第二行、生日這幾個慣犯。
  5. 檢查速度與行動體驗。跑一次 Core Web Vitals,確認結帳頁沒有被錯誤快取;用手機走一遍,檢查每個欄位的鍵盤類型與 autocomplete 屬性。
  6. 上線後追蹤數據。改動上線後用 GA4 漏斗觀察一到兩週,確認放棄率真的下降。沒下降就回頭看是哪一環判斷錯了。
  7. 建立備份與回滾習慣。未來任何結帳頁更動,都先備份、小步上線、準備好回滾方案。結帳頁是全店心臟,經不起大意。

結帳表單客製化,換句話說,就是一件「替消費者把掏錢這件事做到最少摩擦」的工作。它不需要多炫的技術,需要的是對使用者的觀察、對資料的敏感度,以及對自己每一個更動的負責任態度。它也不是一次到位的工作,而是隨著你的客層、品類、金物流組合演進,持續回頭微調的過程。今年管用的欄位配置,明年也許因為新增了海外訂單或公司客戶就要再調一次,把這件事想成一座要長期經營的園地,別當成一次大翻修就完工的工程。你每砍掉一個多餘的欄位、每修對一個鍵盤類型,都是在替你的店多留住一筆本來會跑掉的訂單。從今天開始,打開你的結帳頁,自己用手機走一遍,那會是你這輪優化最有價值的第一步。

常見問題

WooCommerce 結帳表單客製化一定要裝外掛嗎?
不一定。純欄位的標籤、必填、寬度、順序調整可用子主題的 woocommerce_checkout_fields filter 完成,不需外掛;只有要新增、刪除欄位或設定條件顯示時,才需要欄位編輯外掛,以降低升級時的衝突風險。
WooCommerce 改結帳欄位會影響金流串接嗎?
有可能。金流與物流外掛依賴手機、地址等欄位發送取貨簡訊與計算運費,刪除這些欄位會導致付款或取貨失敗。每次改完欄位都應開無痕視窗走完一筆完整測試訂單驗證。
WooCommerce 結帳欄位改完後資料會寫進訂單嗎?
視新增方式而定。用欄位編輯外掛新增的欄位通常自動寫入訂單後台,用自寫 filter 新增的可能需要額外處理才會存進訂單後設資料。驗證方式是開測試訂單到後台確認欄位資料,並檢查通知信與匯出報表是否帶得到。
電子發票欄位要自己手動新增嗎?
不要。請用綠界等金流商提供的官方外掛產生電子發票欄位,讓外掛自動串接發票系統並把發票號碼寫回訂單。自己手刻欄位會導致消費者填的載具無法送進發票系統,報稅季才發現發票沒開就來不及。

操作步驟

  1. 先盤點,不改任何東西把結帳頁每一個欄位寫下來,標出三類:金流物流命根子(不能動)、B2C 用不到的預設欄位(可移除)、真正缺的欄位(如統編)。多數人這一步就會發現根本不需要裝新外掛。
  2. 先減後加,用 Disable 不用 Remove把用不到的預設欄位先 Disable 隱藏,先別 Remove。改完立刻開無痕視窗跑一筆測試訂單,確認付款、取貨、通知信都正常。
  3. 再補必要欄位統編設選填並加條件顯示(勾選才出現),發票欄位一律交給綠界的官方外掛,不要自己刻;縣市與鄉鎮市區連動下拉用 RY WC City Select。
  4. 驗證三件事訂單後台看得到新欄位、通知信帶得到新欄位、金流物流走得完整。三關都過,才算真的改完。

主題聚落|WooCommerce 金流與物流 看「WooCommerce 與電商」中樞 →

相關文章

褚崇名(Sliven) 創辦人・巫普斯科技有限公司

長期投入技術 SEO、GEO/AEO 與 AI 搜尋實務。本站文章以可驗證資料、公開來源與實作觀察整理而成。

完整作者介紹LinkedInGitHubX

想把這篇的方法用在自己的站上?

SEO 健檢、GEO/AEO 引用優化、網頁設計諮詢——把文章裡的方法落地到你的網站。