[WooCommerce] 訂單信件中加入客製化欄位的預設方法

本篇文章更新時間:2020/08/15
如有資訊過時或語誤之處,歡迎使用 Contact 功能通知。
一介資男的 LINE 社群開站囉!歡迎入群聊聊~
如果本站內容對你有幫助,歡迎使用 BFX Pay 加密貨幣新台幣 贊助支持。


這邊說的「預設方法」就是 WordPress 架構中的「Hooks」勾點。與前一篇 [WooCommerce] 搭配修改信件、預覽發信的工具 – Preview E-mails for WooCommerce 使用樣板繼承方式修改訂單信件是不同方法。

本篇文章記錄的內容與 WooCommerce 官方文件裡的 Add a custom field (in an order) to the emails 這頁主軸相同。

透過修改結帳表單,建立客製化欄位來取得結帳訂單所必須要的欄位資訊後,這些客製化資訊預設是不會也出現在訂單信件裡,所以就需要一點加工的手段。

關於客製化結帳欄位,過去也寫過不少文章:

  1. [WooCommerce] 調整結帳欄位的終極指南
  2. [WordPress] 調整適合 WooCommerce 在台銷售結帳頁欄位(含地址郵遞區號選擇)
  3. [WooCommerce] 根據選擇運送方式修改結帳欄位的方法
    ... 等

本篇不贅述修改結帳表單的方式。就是接續「修改表單取得資料後」發信部分的事!

function mxp_woocommerce_email_order_meta_fields_shipping_phone($fields, $sent_to_admin, $order) {
    $fields['shipping_phone'] = array(
        'label' => __('收件人電話'),
        'value' => get_post_meta($order->id, '_shipping_phone', true),
    );
    return $fields;
}
add_filter('woocommerce_email_order_meta_fields', 'mxp_woocommerce_email_order_meta_fields_shipping_phone', 10, 3);

上述程式碼片段放置於(子)主題下的 functions.php 檔案裡即可於訂單信件裡補上客製化欄位資料。範例中我以「收件人電話」這欄位來處理,如果你的欄位名稱命名與我不同,請記得改變對應的描述(收件人電話)、欄位編號(_shipping_phone)。

以上,很簡單就能完成目的囉!

最後要特別注意一點,就是這樣修改的「呈現方式」也是預設的條列式。如果有特殊的排版和樣式,那就必須動到 WooCommerce 信件的樣板檔案來處理(寫程式)了!


Share:

作者: Chun

資訊愛好人士。主張「人人都該為了偷懶而進步」。期許自己成為斜槓到變進度條 100% 的年輕人。[///////////____34%_________]

文章
Filter
Apply Filters