本篇文章更新時間:2021/02/19
如有資訊過時或語誤之處,歡迎使用 Contact 功能通知。
一介資男的 LINE 社群開站囉!歡迎入群聊聊~
如果本站內容對你有幫助,歡迎使用 BFX Pay 加密貨幣 或 新台幣 贊助支持。
昨天收到如標題的需求。使用綠界物流外掛 ECPay Logistics for WooCommerce 的客戶因為訂單信件裡只有顯示金物流方法,而沒有把超取的超商資訊寫出來不夠詳細,希望可以補上。
使用 [WooCommerce] 搭配修改信件、預覽發信的工具 – Preview E-mails for WooCommerce 這篇的外掛來搭配開發預覽,寫出來測試很完美,但客戶測試居然有問題,欄位有出來,但沒值!
實測一次才發現,原來綠界物流外掛 2.0.2009280
版本,已經改成訂單先建立,然後才跳轉畫面去選擇超商,最後才更新回該訂單補上超商資訊。
所以這樣如果要「建立訂單當下取得超商資訊」就有流程時機點不同的問題。預設建立好訂單是「保留」狀態,除非主動觸發到下一個「處理中」狀態,不然超商資訊就無法帶入信件發出。
version < '3') {
$order_id = $order->id;
} else {
$order_id = $order->get_id();
}
$ecpay_shipping = get_post_meta($order_id, 'ecPay_shipping', true);
if (!empty($ecpay_shipping) && $order_id != 0) {
$cs = "";
$ecpay_cs = current(explode('_', $ecpay_shipping));
switch ($ecpay_cs) {
case 'UNIMART':
$cs = "7-11 統一";
break;
case 'FAMI':
$cs = "全家";
break;
case 'HILIFE':
$cs = "萊爾富";
break;
default:
break;
}
$CVSStoreID = get_post_meta($order_id, '_shipping_CVSStoreID', true);
$purchaserAddress = get_post_meta($order_id, '_shipping_purchaserAddress', true);
$purchaserStore = get_post_meta($order_id, '_shipping_purchaserStore', true);
if ($purchaserStore == "" || $purchaserAddress == "" || $CVSStoreID == "") {
$purchaserStore = $purchaserAddress = $CVSStoreID = "處理中,請稍候!";
}
echo '' . $cs . ' 超商取貨資訊
';
echo '
- 超商店名:
' . $purchaserStore . '
- 門市地址:
' . $purchaserAddress . '
- 門市代號:
' . $CVSStoreID . '
';
}
}
add_action('woocommerce_email_order_meta', 'mxp_ecpay_shipping_info_mail', 10, 4);
補一個是否有 meta 值的判斷,沒有就先填「處理中,請稍候!」等訂單管理人員切換到下一個訂單狀態才會補上。
目前看來只能這樣,或是回補訂單超商 meta 資料時也更新訂單備註,用備註的通知信來提示購買人。總之就是要繞路了~
其他更新 WooCommerce Email 欄位的方法還有這篇參考:
您好, 誠懇發問
我想在order list上能夠看到門市代碼或者門市名稱, 我無論在function.php裡怎麼寫都抓不到CVSStoreID的值, 請問有什麼方法能夠完成呢?
請大神幫幫忙orz
萬分感謝
你說的 Order list 是前端「My Account」我的帳號裡看到的?還是後端「Orders」訂單列表?我的帳號裡那個訂單列表上要操作的話可以參考這篇: https://www.mxp.tw/9332/ 如果是後端欄位操作的話參考這篇: https://www.mxp.tw/8757/ 或這篇: https://www.mxp.tw/8757/
HI~感謝回覆
這邊指的是後端訂單列表的欄位
Woocommerce > 訂單
在這邊要如何才能正確抓取超商門市代號並顯示呢
感謝指導
我前篇回覆已經都把參考方法留言給你了,是哪裡還不清楚嗎?
新版的綠界外掛 ECPAY Ecommerce for WooCommerce (整合金、物流及電子發票)已解決上述問題。
感謝資訊回報分享!