最後更新:2026/10/13
客人在你的網店按下結帳之後,最先收到的是一封信。信裡寫得清不清楚,決定了客人接下來是安心等貨,還是跑來私訊問「我到底有沒有訂成功」。
WooCommerce 會自動寄好幾種訂單通知信,但很多新北的小店從開店到現在,從來沒打開過這些信的設定。這篇先帶你看懂每封信什麼時候寄、寄給誰,再用兩段程式碼處理後台設定做不到的事。
不想自己改?把這篇交給 AI
把這篇的網址(或全文)連同下面這段話貼給 AI:
我的網站是 WordPress,有裝 WooCommerce。我想照下面這篇文章,在顧客收到的訂單通知信裡加一段出貨說明,而且訂單裡有實體商品時,新訂單通知也寄一份給倉庫。
請先問我:想加在哪一封信、說明的文字、倉庫的信箱、哪些商品需要寄送。
問清楚之後,再一步一步告訴我:要用哪一段程式碼、貼在哪裡、哪些地方要換成我自己的資料,以及改完怎麼測試。
如果文章的做法不適合我的網站,請直接告訴我原因和替代做法。
文章:(貼上這篇的網址,或整篇內容)
改之前先備份,密碼不要貼給 AI。
先看後台:每封信什麼時候寄
到「WooCommerce > 設定 > 電子郵件」,會看到一整排通知信。小店最常碰到的是這幾封:
「新訂單」是寄給店家的,有人下單就會收到。「訂單保留」寄給選銀行轉帳的客人,意思是訂單成立了、等你確認收款。「處理中的訂單」寄給已經付款的客人,刷卡成功或你把轉帳訂單改成處理中時寄出。「完成訂購」在你把訂單改成已完成時寄出。另外還有已取消、失敗、已退款,以及你在訂單裡寫備註給客人時寄出的「顧客備註」。
台灣很多店家的習慣是「出貨了就把訂單改成已完成」。如果你也是這樣,可以把「完成訂購」這封信的主旨和標題改成「你的訂單已經出貨囉」,客人一看就懂,比原本的字眼親切得多。
每封信可以改哪些地方
點每封信右邊的「管理」,可以改「主旨」、「電子郵件標題」,以及一格「其他內容」,這格會出現在訂單明細的下方,適合放退換貨須知、客服 LINE。新訂單這封還能改「收件者」,填好幾個信箱、用逗號隔開,老闆和助理就會一起收到,不用寫程式。
頁面最下面是所有信共用的設定:寄件者名稱、寄件人地址、回覆地址,以及信件樣板的 Logo、顏色、頁尾文字,旁邊有預覽,改完馬上看得到樣子。寄件者名稱記得改成店名,客人在收件匣裡才認得出來。
只在「處理中的訂單」這封信加一段出貨說明
「其他內容」是固定文字,而且排在明細下面。如果你想把出貨時間放在最顯眼的訂單表格上方,又只想出現在某一封信,就要用程式碼:
// 1. 給顧客的「處理中的訂單」信:訂單表格前面加一段出貨說明
add_action('woocommerce_email_before_order_table',
function ($order, $sent_to_admin, $plain_text, $email) {
if ($sent_to_admin || 'customer_processing_order' !== $email->id) {
return;
}
$msg = '我們會在 2 個工作天內出貨,寄出後會再寄一封信給你。';
echo $plain_text ? $msg . "\n\n" : '<p>' . esc_html($msg) . '</p>';
}, 10, 4);
woocommerce_email_before_order_table 是所有訂單通知信共用的位置,所以要靠後面幾個資料判斷「現在寫的是哪一封」。$sent_to_admin 是「這封是不是寄給店家」,$email->id 是每封信的代號:處理中是 customer_processing_order,訂單保留是 customer_on_hold_order,完成訂購是 customer_completed_order,新訂單是 new_order。想把同一段話放到別封信,換掉代號就好。
最後一行處理純文字信。有些店家把信件格式設成純文字,這時候不能印 HTML 標籤,所以分兩種寫法。
程式碼放在 Code Snippets 這類外掛或子主題,放法見〈WooCommerce 結帳頁改成台灣習慣〉。
訂單有實體商品,才通知倉庫
另一個常見的需求:店裡同時賣實體商品和線上課程,倉庫的同事只需要知道「要出貨的訂單」,不想被課程訂單洗信箱。後台的收件者欄位做不到「看情況才寄」,這時候改用 filter:
// 2. 訂單裡有要寄送的商品,「新訂單」通知也寄一份給倉庫
add_filter('woocommerce_email_recipient_new_order', function ($recipient, $order) {
if (!$order instanceof WC_Order) {
return $recipient;
}
foreach ($order->get_items() as $item) {
$product = $item->get_product();
if ($product && $product->needs_shipping()) {
return $recipient . ',[email protected]'; // 換成倉庫的信箱
}
}
return $recipient;
}, 10, 2);
WooCommerce 準備寄「新訂單」之前,會把收件者交給這段程式碼看一眼。我們逐項檢查訂單裡的商品,只要有一件需要寄送,就在收件者後面加上倉庫的信箱。needs_shipping() 會看商品有沒有勾「虛擬」,線上課程、電子書這類虛擬商品就不會觸發。
第一個判斷是防呆:後台電子郵件設定那一頁,為了在列表上顯示「收件者」,也會跑過這段程式碼,那時候手上沒有訂單。先確認拿到的是訂單再往下做,設定頁就不會出錯。
我們在測試站下了兩張單。一張是手工皂禮盒,新訂單寄給了店家和倉庫兩個信箱;另一張只有線上課程,只寄給店家。
改完一定要自己下單測一次
信件樣板的預覽只能看外觀,看不到你加的條件有沒有生效。比較穩的做法是開一個測試用的銀行轉帳訂單,從「訂單保留」、改成處理中、再改成已完成,一路看每封信寄給誰、內容對不對。訂單頁右上角的訂單動作裡也有「重寄新訂單通知信」,改了收件者之後可以用它重寄一次確認。
如果信寄不出去,或客人說都在垃圾信件匣裡,那是網站寄信方式的問題,和這裡的設定無關,可以看〈WordPress 寄信進垃圾信件匣?〉的處理方法。
信是網店的第二個客服
客人下單後最常問的三件事:有沒有訂成功、什麼時候出貨、出貨了沒。這三個問題,通知信都能先回答。把信改清楚,私訊和電話會少很多,這對一個人顧店的老闆特別有感。
如果你想把網店從下單、付款、通知到出貨整個流程理順,可以先看〈IG 帳號不是你的資產〉想想網站要做到什麼。MIMI 專做客製化網頁設計,購物車電商網站可以連通知信、訂單流程一起規劃。MIMI 提供新北網頁設計服務,新北的店家可以用電話、Email 直接和設計師討論;費用可以先看首頁的製作費用參考,歡迎聯絡 MIMI。
