[WooCommerce] 客製化匯出訂單格式的方法

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


訂單匯出功能的外掛很多,但如果不適合你的時候,你總要想辦法來一個!(沒錯吧XD)

剛好最近實作這功能,搭配先前筆記 [WooCommerce] 程式開發時取出訂單資訊的方法整理 取出訂單資訊的主方法有了,那剩下就是把訂單撈出來。

實作流程如下:

  1. 選擇開發過一個外掛(外掛框架)
  2. 新增一個選單功能列在 WooCommerce 功能選單中叫「匯出訂單」
  3. 介面上選擇時間區間
  4. 撈取時間區間內訂單是「完成」狀態的訂單資料
  5. 組合匯出訂單格式,下載!

幾乎完整的 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 實作瀏覽器直接下載檔案。

如果有對市面上常見外掛提供的需求不滿足,想自己來匯出客製化訂單結構的可以參考試試~


Share:

作者: Chun

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

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *


文章
Filter
Apply Filters
Mastodon