本篇文章更新時間:2021/12/02
如有資訊過時或語誤之處,歡迎使用 Contact 功能通知。
一介資男的 LINE 社群開站囉!歡迎入群聊聊~
如果本站內容對你有幫助,歡迎使用 BFX Pay 加密貨幣 或 新台幣 贊助支持。
訂單匯出功能的外掛很多,但如果不適合你的時候,你總要想辦法來一個!(沒錯吧XD)
剛好最近實作這功能,搭配先前筆記 [WooCommerce] 程式開發時取出訂單資訊的方法整理 取出訂單資訊的主方法有了,那剩下就是把訂單撈出來。
實作流程如下:
- 選擇開發過一個外掛(外掛框架)
- 新增一個選單功能列在 WooCommerce 功能選單中叫「匯出訂單」
- 介面上選擇時間區間
- 撈取時間區間內訂單是「完成」狀態的訂單資料
- 組合匯出訂單格式,下載!
幾乎完整的 code 我放在 Gist 上,相信對會實作的人來說自己修改變化已經非常容易了!
關鍵是「怎麼撈時間區間內的訂單?」,找了資料發現,WooCommerce 內建的 wc_get_orders
方法就很方便!
$initial_date = $_GET['start_date'];
$final_date = $_GET['end_date'];
$posts_data = wc_get_orders(array(
'limit' => -1,
'type' => 'shop_order',
'status' => array('wc-completed'),
'date_created' => $initial_date . '...' . $final_date,
));
就是將設定的起訖日組合字串後代入 date_created
參數就可以撈到資料了~
匯出部分,原本是匯出 CSV 格式(參考這篇 [PHP] 資料匯出並下載為 CSV 檔案,而且 Excel 不亂碼!,不過需求後來改要 Excel 2007 年格式,所以使用了 PHP_XLSXWriter 這套件包裝,並參考這個 issue 實作瀏覽器直接下載檔案。
如果有對市面上常見外掛提供的需求不滿足,想自己來匯出客製化訂單結構的可以參考試試~