Wordpress

WooCommerce 訂單通知信教學:設定、自訂與異常排查一次搞懂

退款通知信明明寄出去了,顧客卻回信說商品名稱只顯示到一半,後面整串規格被硬生生截斷——這種狀況跟 WooCommerce 訂單通知信裡一個很少人注意到的郵件格式限制有關,不是系統出了什麼怪毛病。

WooCommerce 訂單通知信其實不只是新訂單、出貨這幾封大家常想到的信,後台一次管理的通知信件多達 14 種,從訂單狀態的每一次變化到帳號註冊、密碼重設都算在裡面。多數店家只在信件寄丟或顧客抱怨版面難看時才會點開電子郵件設定,結果發現要改的欄位分散在好幾個地方,有些藏在清單最下面的全域設定,有些要進到每封信各自的編輯畫面才找得到,一不小心就改錯地方或漏掉某個影響顯示的開關。

WooCommerce 十四種通知信分成訂單和帳號行政兩大類

WooCommerce 內建的電子郵件通知不是隨便湊出來的清單,而是分成兩大群組:一群跟著訂單狀態走,一群屬於帳號或其他行政互動,彼此觸發的時機完全不同。收件對象也分成兩種,一種是寄給商家或店管理員看的內部通知,另一種是寄給顧客看的服務性信件。多數店家只在意顧客那一邊會不會收到信,卻常常忽略商家這邊的收件人設定也得同步處理好,不然新訂單進來,自己反而最後一個知道。

這 14 種信件裡有一種比較特別,叫做棄單挽回信(Abandoned cart recovery),它給還沒完成付款的準顧客一個一次性的完成付款連結。這個功能本身標記為實驗性質,而且要先手動開啟才會出現在信件清單裡,設定邏輯也跟其餘 13 種完全不同,通常被視為獨立的主題,值得另外詳細說明。

WooCommerce 內建 14 種通知信分成訂單類 9 種與帳號行政類 5 種,並標出每封信是寄給商家還是顧客
訂單類前三封寄給商家、其餘寄給顧客,帳號行政類全部寄給顧客,其中兩封要先手動開啟。

九種通知信跟著訂單狀態逐一觸發

訂單本身的生命週期綁著 9 種通知信,分別是:

  1. New order:收到新訂單時,系統寄一封給商家指定的收件人。
  2. Cancelled order:訂單從待付款、處理中或保留狀態被標記為取消時,寄給商家。
  3. Failed order:訂單被標記為付款失敗時,同時觸發兩封信,一封給商家,一封給顧客提醒付款失敗,引導換一種方式重新付款。
  4. Order on-hold:訂單從待付款、取消或失敗轉為保留狀態時,寄給顧客。
  5. Processing order:付款完成後,系統寄一封訂單明細信給顧客。
  6. Completed order:訂單被標記為完成,通常代表商品已經出貨,寄給顧客。
  7. Refunded order:訂單退款時寄給顧客,還會依部分退款或全額退款分成兩種內容。
  8. Order Details:不是自動觸發,而是在後台編輯訂單畫面手動寄出,信裡附發票與付款連結,依訂單是否已付款分兩種版本。
  9. Customer note:在訂單裡新增一則給顧客的備註時觸發。

這 9 種裡,只有前 3 種(New order、Cancelled order、Failed order)是寄給商家看的通知,其餘 6 種全部寄給顧客。這個「誰收到」的分界,會直接影響到能不能設定收件人。

五種行政信跟著帳號生命週期或加值互動觸發

另外 5 種信件跟訂單狀態完全無關,是帳號生命週期或加值互動觸發的:

  1. Reset password:顧客申請重設密碼時觸發。
  2. Confirm email address:一次性、需要登入的確認連結,讓顧客把過去用訪客身分下的訂單串接回自己的帳號。
  3. New account:顧客在結帳過程或會員頁面完成註冊時觸發。
  4. Review request:訂單完成後邀請顧客留下評價。
  5. Abandoned cart recovery:前面提過的棄單挽回信。

Review request 和 Abandoned cart recovery 這兩種,功能與信件預設都是關閉的,得先到 WooCommerce 的進階功能設定裡手動打開才會出現在信件清單上,不像前面那 9 種訂單信一開始就內建啟用。Review request 還有一個實際操作的細節值得知道,啟用之後可以設定延遲天數,從 1 天到 60 天都能填,預設值是 7 天,也就是訂單完成 7 天後才寄出邀請評價的信,搭配店家出貨到顧客真正用到商品的時間去調整會比較準。這也是不少店家後台明明裝了 WooCommerce,卻始終沒看過這兩封信的原因,不是壞掉,是還沒開關。

全域外觀設定藏在電子郵件設定頁最下方

想改顏色、字體、Logo 這類外觀設定時,直覺會先點進某一封信的編輯畫面裡找,但這些其實是全域設定,一次調整就套用到全部 14 封信,位置藏在 WooCommerce 電子郵件設定頁,要捲到通知信清單的最下面,才會看到叫做 Email Template 的區塊。

這個分工界線值得先弄清楚,全域設定管的是所有信共用的外觀骨架,像信件背景、標題字型這種;個別信件自己的編輯畫面管的是這封信專屬的內容,像主旨、收件人這種。改錯地方最常見的狀況是,某個人想改新訂單信的顏色,結果點進新訂單信的編輯畫面裡東翻西找,其實顏色從來就不在那裡。

商標、頁尾文字與需要先打開的進階欄位

Email Template 區塊裡,Logo、Logo 寬度(單位是像素)、標頭對齊(靠左、置中或靠右)、字體、頁尾文字,這 5 個欄位各自負責一塊外觀。頁尾文字支援兩個動態欄位,{site_url} 會帶入網站網址,{site_title} 會帶入網站名稱,不用手動打死字。

有一個地方常常讓人找不到方向,WooCommerce 從 9.8 版起新增了一個叫做 Email improvements 的進階外觀開關,要到進階功能設定裡才找得到。這個開關沒打開的時候,Logo 寬度、標頭對齊、字體這 3 個欄位雖然還看得見,卻是灰階、按不動的狀態;Logo 圖片本身和頁尾文字不受這個開關影響,隨時都能改。換句話說,發現改了字體或對齊卻沒反應,先檢查這個開關有沒有打開。

WooCommerce 電子郵件樣板的全域外觀設定,標出標誌、標誌寬度、頁首對齊、字型系列與頁尾文字五個欄位
這五個外觀欄位一次套用到全部 14 封信,頁尾文字還支援 {site_title} 這類動態欄位。

色彩跟著佈景主題同步,或自己指定五種顏色

色彩設定有兩種模式可以選。一種是跟主題同步,勾選之後 WooCommerce 會自動套用網站現有的配色,不用自己挑顏色;另一種是手動指定,可以個別設定 5 個顏色欄位:主色(按鈕與連結用)、信件背景色、內容區背景色、標題與內文字色、次要文字色(頁尾等次要元素用)。

手動指定的五個顏色欄位分別套用在信件的按鈕連結、外層背景、內容卡、標題內文與頁尾
選手動指定時,主色管按鈕與連結,另外四個欄位分別控制背景、內容卡與文字顏色。

兩種模式各有取捨。跟主題同步比較省事,但配色完全被網站牽著走,網站改版配色也會跟著變。手動指定可以完全自訂,卻要自己注意對比度。常見的疏漏是背景色選得太亮,結果蓋掉了文字的可讀性,這種細節在手動調色時特別容易被忽略,建議調完至少自己寄一封測試信檢查看得清不清楚。

逐封信可以個別調整的六個欄位

全域外觀設定完後,接下來是每封信自己的設定。點進電子郵件設定頁清單右側的 Manage,每封信的編輯畫面都有 6 個共通欄位:啟用或停用、收件人、主旨、郵件標題、附加內容、郵件格式(純文字、HTML 或多部分)。部分信件因為要對應不同的付款或退款狀態,主旨與標題欄位還會多出對應的變體版本。除了這 6 個欄位,部分信件的編輯畫面還多了 Cc、Bcc 兩個副本欄位,分別用來加副本收件人與密件副本收件人,適合店家想讓內部另一個信箱同步收到副本,卻不想讓顧客看到收件人清單的情況。

這 6 個欄位各管一塊,但不是每個欄位在每封信裡都用得上,收件人欄位就是個明顯的例外。這裡先記住一個通則,留空的欄位系統會自動套用預設文字,不是留空就等於沒設定成功。

WooCommerce 電子郵件設定頁的通知信清單,右側每封信都有管理按鈕與收件者欄位
每封信右側的「管理」進去就是各自的設定畫面,收件者欄只有寄給商家的信才填得了地址。

收件人欄位只留給通知商家的三封信

收件人欄位不是每封信都有,只有 New order、Cancelled order、Failed order 這 3 封寄給店家或管理員看的信,才能設定收件人。可以填多個信箱,用逗號分隔,預設值是 WordPress 設定裡的網站管理員信箱。

以新訂單信編輯畫面為例,顯示啟用、收件者、主旨、電子郵件標題、其他內容與電子郵件類型六個共通欄位
每封信的編輯畫面都有這六個共通欄位,收件者可以填多個、用逗號分隔。

有個容易被忽略的細節跟回覆地址有關。這 3 封信如果沒有另外開啟 Reply-to 設定,系統會自動把回覆地址代入顧客的帳單姓名與信箱,店家收到新訂單通知後直接按回覆,信就會寄到顧客手上,不用回頭查訂單找聯絡方式。

主旨與標題留白就套用預設文字

主旨(郵件標題列)和郵件標題(信件內文最上方的大標)都支援動態佔位符,{site_title} 帶入網站標題、{site_address} 或 {site_url} 帶入網址、{order_date} 帶入訂單日期、{order_number} 帶入訂單編號。這兩個欄位留空,系統會自動套用內建的預設文字,不會變成空白信件。附加內容欄位則是加在信件主體下方的補充文字,同樣吃這幾個佔位符。

Refunded order 和 Order Details 這兩封信,因為要區分退款或付款的不同情境,主旨和標題各自有多組版本要分別填,改設定時容易漏改其中一組,建議每組都巡過一次再存檔。

純文字格式的一百五十五字元上限

郵件格式有 3 種選擇:純文字(不含任何 HTML 格式)、HTML(有樣式與版面)、多部分(兩者都寄,由收件端信箱決定顯示哪一種)。多數店家不會特別去動這個設定,但如果因為某些信箱相容性考量改選了純文字格式,就有一個具體的限制要注意:純文字欄位限制在 155 個字元以內。

商品名稱本身偏長,或訂單裡包含多個規格、加購項目時,內容很可能被截斷到看不出完整品項。這正是文章一開頭那種商品名字被切掉的狀況最常發生的原因,多數店家是等到顧客回信反映才發現,提前知道這個上限,選格式時就能先評估清楚。

掛勾能在不更動版面的前提下加內容

如果只是想在信裡多加一段文字或一個連結,並不想動到整體版面配置,不需要覆寫整份範本檔,WooCommerce 每個信件範本檔案裡都埋了掛勾點(action hooks),用一小段程式碼就能把內容掛進去。掛勾跟覆寫範本分工很清楚,掛勾只能加內容,不能改動或刪除既有的文字版面;真要調整版面配置或修改既有文字,才需要覆寫範本檔案。

官方文件示範的最小範例,是以新訂單信的範本檔 admin-new-order.php 裡 woocommerce_email_order_details 這個掛勾點為例,範本檔用這一行呼叫:

do_action( 'woocommerce_email_order_details', $order, $sent_to_admin, $plain_text, $email );Code language: PHP (php)

要加內容,只需要在自己的程式碼裡(子佈景主題的 functions.php,或程式碼片段外掛)寫:

add_action( 'woocommerce_email_order_details', 'my_custom_woo_function' );
function my_custom_woo_function() {
    /* 你的程式碼 */
}Code language: PHP (php)

完全不需要碰到範本檔本身。這種做法比較適合交給工程師或委外處理,一般店家不必自己動手寫,但知道有這個選項存在,至少能判斷「加一段話」跟「改版面」是難度差距不小的兩件事,溝通需求時比較講得清楚。

大改版面要覆寫範本檔,複製進子佈景主題最安全

想動到版面配置本身,不只是加內容,就得覆寫範本檔,這個流程比掛勾複雜一些。電子郵件版面一旦壞掉,影響的是顧客對整間店的第一印象,不像網站首頁改壞了還能立刻自己發現,信件排版跑掉往往要等顧客反映才知道。

範本檔案在外掛與佈景主題裡的對應路徑

原始範本檔放在 wp-content/plugins/woocommerce/templates/emails/ 底下,每種信件對應一個檔案,例如商家看的新訂單信是 admin-new-order.php。要覆寫,就把同樣的相對路徑複製到子佈景主題,但去掉中間的 /templates/ 這一層,例如覆寫成 wp-content/themes/子佈景主題名稱/woocommerce/emails/admin-new-order.php,複製過去的檔案會直接取代原本輸出的內容。

覆寫 WooCommerce 信件範本的路徑對照,從外掛的 templates/emails 複製到子佈景主題並去掉 templates 這一層
把原始範本複製進子佈景主題時要去掉 /templates/ 這一層,覆寫檔才會生效。

若要找特定舊版本的範本檔案內容,WooCommerce 6.0 之後的版本可以到 GitHub 專案對應的版本標籤頁面下查,路徑會落在 /plugins/woocommerce/templates 底下;6.0 之前的版本則少了 /plugins/woocommerce/ 這一層前綴,找舊版範本時要留意這個路徑差異,不然會對照錯版本。

直接修改外掛檔案的內容會在改版更新時被整個蓋掉

直接編輯外掛或母版佈景主題裡的檔案,一來語法一旦改壞,網站可能直接掛掉;二來外掛或佈景主題更新時,整個檔案會被新版整個覆蓋,改過的內容全部消失,等於白費工夫。用子佈景主題覆寫就不受這個問題影響,因為子佈景主題的檔案本來就不會被自動更新動到。

還有一個容易忽略的前提,使用中的佈景主題如果本身帶有 woocommerce.php 這個檔案,它的優先權會蓋過其他範本覆寫,可能導致某些頁面的覆寫不生效。這是刻意設計,用來避免顯示衝突,不是程式錯誤,遇到覆寫沒生效時,先確認佈景主題有沒有這個檔案在搶優先權。

範本版本落後會在後台跳出比對合併的提示

覆寫範本有個副作用,外掛核心的範本會持續更新,但複製出去、自己改過的那一份不會跟著自動更新。這是刻意設計,但代表覆寫過的範本可能會落後於最新核心版本。電子郵件設定頁的清單裡有一欄叫 Updates,某封信的自訂範本落後於核心最新版時,會顯示「Review update」,這個比對合併的完整工作流程要先到進階功能設定裡開啟 Block Email Editor(目前還是 alpha 測試階段)才會出現。

開啟之後,點進「Review update」,系統會拿原始版本、已自訂版本、最新核心版本三者互相比對,沒有衝突的地方直接套用最新版就好;有衝突的地方,也就是核心更新剛好動到你改過的文字,就逐項讓你選擇保留自己的版本,或改用最新版,套用之後還會出現可以復原的提示。如果沒開啟這個測試功能,舊做法是到 WooCommerce 的系統狀態頁面拉到最下面,看有沒有列出被佈景主題覆寫、且已過時的範本清單與警告,再自己比對、手動把新版內容複製回自訂範本裡。

上線前的預覽與寄測試信

改完設定,不要等真實訂單進來才發現排版跑掉。電子郵件設定頁本身就有 Email preview 區塊,可以從下拉選單挑選任一封信,切換桌面或手機版視圖先看一遍;每封信各自的編輯畫面裡,也內建同樣的預覽功能,不用先存檔才能看效果。

更進一步,還可以直接寄一封測試信到自己指定的信箱,實際在收件匣裡確認顯示效果,包括手機信箱開起來版面對不對、圖片有沒有跑版。這一步不用等真實訂單也能驗證改動有沒有生效,調完外觀或改完文字,養成習慣先寄一封給自己看,比等顧客回報問題再回頭修划算得多。

顧客收不到通知信,問題通常不在 WooCommerce 本身

設定都對了,信卻沒寄到,這種狀況最容易讓人誤以為是 WooCommerce 本身壞了。實際上 WooCommerce 預設是用 WordPress 核心的 wp_mail() 函式來寄信,多數寄不出去的問題其實出在主機的寄信功能或後續的遞送流程,不是 WooCommerce 產生信件這一步出了錯。

排查順序建議這樣走。先確認該寄的情境是不是真的該寄,訂單還在待付款狀態本來就不會觸發出貨通知,或者那封信在設定裡本來就被停用;情境確認沒問題,再去 WooCommerce 的狀態記錄裡找 transactional-emails 這個記錄來源,裡面每一筆信件都會標記已寄出、失敗、已停用、已略過這 4 種狀態之一,標記失敗的還會附上失敗原因,一眼就能看出問題出在哪一步。

如果記錄顯示信件已經寄出,顧客卻說沒收到,問題多半出在遞送端被判定成垃圾郵件。最常見的原因是寄件地址用了 Gmail、Yahoo 這類公用網域信箱,這類地址跟主機實際的寄件來源兜不起來,容易被收件端擋下。遇到這種情況,建議把寄件地址換成網站自己網域的信箱位址,或者改用專門的 SMTP 寄信服務,讓信件的寄件紀錄跟網域對得上,收件端比較不會把它當成可疑郵件處理。

顧客收不到通知信的排查決策樹,從該不該寄一路查到狀態記錄標記失敗或已寄出
先確認該不該寄,再看狀態記錄:標記失敗是產信問題,已寄出卻沒收到多半是被當成垃圾郵件。

寫完設定回頭看,商品名稱被截斷、顏色改了沒反應、信件寄了卻進垃圾桶,這幾件事的答案往往不在信件本身,而在後台某個容易被忽略的欄位或開關裡。電子郵件設定值得跟網站主題、外掛版本一樣定期回頭檢查一次,尤其是升級 WooCommerce 版本前後,原本用得好好的範本或收件設定,很可能就因為某個新開關預設關閉,悄悄變了樣。

常見問答

本區問答由 AI 依文章內容自動整理,僅供快速參考,正式內容仍以全文為準。

WooCommerce 新訂單通知信要怎麼加收件人?

只有 New order、Cancelled order、Failed order 這三封寄給商家的信才能設定收件人,欄位可填多個信箱、用逗號分隔,預設值是網站管理員信箱;其餘寄給顧客的信件沒有這個欄位。

WooCommerce 評價邀請信預設幾天後寄出?

評價邀請信(Review request)預設在訂單完成 7 天後寄出,可自行調整延遲天數,從 1 天到 60 天都能填,建議依商品從出貨到顧客實際使用的時間去調整,才會寄得比較準。

WooCommerce 訂單通知信的顏色要去哪裡改?

顏色、Logo、字體這些外觀設定不在個別信件的編輯畫面裡,而是全域設定,要到電子郵件設定頁最下面的 Email Template 區塊調整,一次套用到全部信件。

WooCommerce 純文字信件字數限制是多少?

純文字格式的信件內容限制在 155 個字元以內,商品名稱較長或訂單有多個規格、加購項目時就容易被截斷,只有選純文字格式才會受影響,改用 HTML 或多部分格式就不會有這個限制。

WooCommerce 顧客收不到訂單通知信該怎麼排查?

先到狀態記錄裡找 transactional-emails 來源確認信件是否寄出;若顯示已寄出卻沒收到,多半是寄件地址用了 Gmail、Yahoo 這類公用網域信箱被判定為垃圾郵件,改用網站自己網域或專用 SMTP 服務通常能改善。