將變體相簿引入核心

Chair

WooCommerce1 核心又要加新功能了。之前靠 Additional Variation Images 擴充套件才能做的事,現在直接合並進核心,免費開箱即用。

從 WooCommerce 10.9 開始,可變產品裡的每個變體,除了原本那張特色影像,還能擁有自己有序的影像相簿。

這步動作緊跟著 9.4 版本合併品牌功能,是“更多功能進核心”計劃的一部分——把基礎商務功能塞進核心,商家預設就能用,開發者專心做差異化。

包含哪些內容?

變體相簿讓每個變體都能在前臺展示自己的影像。購物者選某個變體時,相簿會切換顯示該變體的完整影像集。

管理後臺用一個統一欄位集中管理每個變體的影像:變體的特色影像和相簿以有序列表呈現,列表第一項自動提升為”主要”影像。

啟用該功能

WooCommerce 10.9 加入了此功能,但初始階段對所有使用者預設停用。

要在商店裡啟用變體相簿,勾選 設定 → 高階 → 功能 裡的 “變體相簿” 核取方塊就行。

或者用程式設計方式,跑這條 WP-CLI4 命令:

wp option update wc_feature_woocommerce_additional_variation_images_enabled 'yes'

啟用後,獨立的 Additional Variation Images 擴充套件會自動停用,避免兩種實現方式打架。

功能分階段推出,留足時間測試、收集反饋、完成遷移,逐步淘汰現有的 Additional Variation Images 訂閱:

  • 10.9 版本提供功能供使用者選擇測試,
  • 後續版本透過資料庫更新程式,為選定商店開啟 5% 的金絲雀測試,
  • 金絲雀測試透過後,全面啟用至 100%。

首次實現的重點關注

首次實現的範圍刻意控制得清晰明確:優先處理那些後期難改、容易出錯的部分。

清晰的遷移路徑。 當前跑著 Additional Variation Images 擴充套件的商店,不用手動幹預就能遷移到核心。想退回擴充套件,資料也不會丟。向後相容。 舊後設資料留在磁碟上,執行時回退機制能確保未遷移的變體正確渲染,受影響模板的主題覆蓋也能繼續工作。與擴充套件功能對等。 AVI6 外掛能做的事,核心實現都能做。開箱即用的 REST API2 支援。 跟最初發布時沒有 REST 端點的品牌合併不同,變體相簿從第一天起就透過 REST API 暴露(詳情見下文)。

所以,管理後臺 UI7 的首次實現可能還有點粗糙。我們選擇先交付實質性的底層架構,在推出過程中迭代最佳化 UI,而不是因為重新設計而阻礙合併。

隨著功能在金絲雀測試階段推進,變體相簿編輯器會迎來後續改進。

技術實現

變體相簿存在 _product_image_gallery 裡——這是 WooCommerce 已經用於父級產品相簿的同一個 postmeta 鍵。

我們努力確保相簿從第一天起就透過 REST API 暴露。變體端點的 gallery_image_ids 屬性裡能找到它們,結構跟父級產品用的相同。

經典前臺路徑和基於區塊的產品相簿,內部都在用這個資料負載。

對於當前使用 Additional Variation Images 擴充套件的站點,存在 _wc_additional_variation_images 裡的舊資料,會在推出時遷移到規範位置。

舊後設資料有意留在磁碟上,任何直接讀它的第三方程式碼都能繼續工作。

遷移指南

當前用著 Additional Variation Images 擴充套件的站點,過渡路徑很平滑:啟用功能後,WooCommerce 在後臺安排一個 Action5 Scheduler 任務,把舊相簿資料複製到規範位置,每次跑 250 個變體,完成後自動重新排隊,直到全部完成。

遷移是冪等的,對已遷移的變體重新跑不會產生任何效果,因為有哨兵後設資料兜底。不過,建議先在測試站點上試試。

_wc_additional_variation_images 直接互動的自定義程式碼應該能繼續工作,因為舊後設資料保留了。但任何向變體的 _product_image_gallery 寫資料的程式碼,可能需要意識到核心現在會從裡面讀資料。

前臺相容性

變體相簿支援經典的單產品模板和基於區塊的產品相簿,能搭配多種不同組合,包括新舊區塊。

支援對 single-product/add-to-cart/variable.php 的主題覆蓋。

淘汰獨立擴充套件

獨立的 Additional Variation Images 擴充套件會在功能達到 100% 全面推出後,從 WooCommerce 市場 淘汰,策略跟淘汰品牌擴充套件時一樣。

具體來說:

當前已訂閱的商家不用做任何操作。 擴充套件持續工作,直到商店啟用核心功能。那時 WooCommerce 會自動停用獨立外掛防止衝突。變體相簿資料繼續渲染:資料一樣,只是現在由核心提供服務。活躍訂閱會被取消,當擴充套件從市場淘汰時。受影響的客戶可以向支援團隊申請退款或信用額度。完整細節會在淘汰郵件裡發。受影響的商家會收到郵件通知,在關鍵推出里程碑(金絲雀測試和 100% 全面推出)時,包含說明和檔案連結。檔案正在遷移到核心。 現有的 Additional Variation Images 檔案會被重定向到核心產品檔案下的新變體相簿檔案。

接近 100% 全面推出時,會透過單獨通知釋出更多細節——包括確切的淘汰日期、訂閱處理細節和檔案遷移。

如果你是 Additional Variation Images 的訂閱者,今天什麼都不用做;需要你操作時,我們會透過郵件聯絡你。

測試該功能

該功能會成為即將釋出的 WooCommerce 10.9 beta 的一部分,計劃 6 月 8 日釋出,透過上述程式碼片段或 CLI 命令就能啟用。等不及的話,現在就能在 GitHub3 上的夜間構建版本 裡體驗。

強烈建議在測試環境裡測一下。

我們為此主題開了 GitHub 討論,期待聽聽你的使用體驗和反饋。

名詞解釋

  1. WooCommerce:WordPress 最流行的電子商務外掛 ↩︎
  2. REST API:基於 HTTP 的應用程式介面 ↩︎
  3. GitHub:全球最大的程式碼託管和協作開發平臺 ↩︎
  4. WP-CLI:WordPress 的命令列管理工具 ↩︎
  5. Action:WordPress 鉤子型別之一,在特定位置執行程式碼 ↩︎
  6. AVI:一種影片檔案格式 ↩︎
  7. UI:使用者介面,使用者與軟體互動的視覺部分 ↩︎

發表評論

發表回覆

您的郵箱地址不會被公開。 必填項已用 * 標註