我在ChatGPT開發程式的時候,發現一個情況,有些功能在舊站能用,新站不能用,有一些又是從舊站升到最新版又能用了
研究的結果,其實就在於WooCommerce版次的關係
WooCommerce 開始正式引入 High-Performance Order Storage (HPOS) 是在 版本 7.1(2022 年 11 月發布)。不過,在這個版本中,HPOS 仍是一個可選功能(opt-in),用戶需要手動啟用,並且它處於測試階段,當時被稱為 "Custom Order Tables"。這意味著它尚未成為預設設置,而是提供給願意試用的商店作為一個實驗性功能。
到了 WooCommerce 8.2(2023 年 10 月發布),HPOS 正式成為新安裝 WooCommerce 的預設功能。從這個版本開始,所有新建立的商店預設使用 HPOS,而現有商店則可以選擇從傳統的 WordPress Posts Storage 切換到 HPOS,並需要進行數據同步以完成轉換。
建議6.2.2開始升,可以在這裡找到舊版 https://developer.woocommerce.com/releases/
先用WordPress的版本降下來,裝6.2,然後再一路升上去
6.2 => 7.2 => 8.2 => 9.2 如果擔心出問題,都要追
資料庫有舊的結構用ChatGPT生出來的功能,也會比較有機會被支援 XD
然後也要注意外掛的支援程度,有些開發者開發出來的版本不見能順順升上去
WooCommerce 如果要追求版次及安全,有更新就一路升上去,除非你對已安裝的外掛及你自己開發的外掛都要很清楚,否則升上去就....
後記,後來有一次實測,我先安裝 WooCommrece 6.9.4 然後再升到最新版,舊的客制程式可以在訂單搜尋頁使用,另外我後來也有找到原因,如果你是從舊的一路升過來,應該無感,如果你從8.x開始,那麼有不少外掛或者自己寫的function就有機會遇到這個雷
🔎 WooCommerce Orders React 版 (wc-orders
) 白名單邏輯的由來與版本關鍵點:
版本 | 狀態 | 重點 |
---|---|---|
WooCommerce 4.x - 6.x | ✅ PHP 層為主 | wc-orders 還是 PHP 模板主導,URL 上的 search-filter 會進 $_GET ,PHP 自由組 meta_query 。你以前用的版本應該在這區間 |
WooCommerce 7.x(約 2023 年初後) | 🔄 引入 React wc-admin 重構 wc-orders 頁面 | 開始改用 React + REST API,部分 $_GET 無法進到後端查詢 |
WooCommerce 8.x(2023下半年) | ❌ 完整強化白名單機制 | 官方把 wc-orders 頁面查詢參數做白名單驗證,只允許 order_id , billing_name , billing_email |
WooCommerce 9.x(2024年) | ❌ 白名單寫死、REST API 只吃官方參數 | 你的 search-filter=additional_date 無效就是因為 9.x 白名單硬限制 |