前言
在使用 WooCommerce 管理線上商店時,優先顯示目前有庫存的產品至關重要。將有庫存的產品放在產品列表的最前面,或將缺貨產品放在最後,可以提升顧客體驗,增加他們找到並購買可用商品的機會。本文將探討一個實現此目標的程式碼解決方案。
排序有庫存的產品
默認情況下,WooCommerce 並不提供根據庫存狀態排序產品的功能。不過,我們可以通過實現一段自定義程式碼來克服這一限制,該程式碼將修改產品查詢,確保有庫存的產品在產品列表中顯示在前面。
在 functions.php 中添加程式碼
為了實現所需的功能,我們將使用 WordPress 和 WooCommerce 提供的過濾器和鉤子。讓我們逐步深入這段程式碼。
以下是初始程式碼區塊:
|
|
在這段程式碼中,我們使用 in_array
函數檢查 WooCommerce 插件是否啟用。如果啟用,我們就添加自定義過濾器。
我們解決方案的核心在於 order_by_stock_status
函數,該函數附加到 posts_clauses
過濾器。讓我們詳細了解這個函數:
|
|
在這個函數中,我們首先檢查當前頁面是否為 WooCommerce 商店頁面、產品分類頁面或產品標籤頁面。這樣可以確保程式碼修改僅應用於相關頁面。
接著,我們在查詢中添加內部連接,將 wp_posts
表與 wp_postmeta
表根據 post_id
連接。這樣可以檢索與每個產品相關的庫存狀態信息。
然後,我們修改查詢的 orderby
子句。通過將 istockstatus
.meta_value
ASC
添加到現有的排序標準中,我們確保有庫存的產品優先顯示。
最後,我們添加一個 where
子句,以過濾掉沒有有效庫存狀態的產品。這樣可以確保僅包含具有定義庫存狀態的產品。
實施
要在您的 WooCommerce 商店中實施此程式碼解決方案,請按照以下步驟操作:
- 訪問主題的
functions.php
文件。 - 將上述的兩段程式碼片段粘貼到該文件中。
- 保存文件。
- 清除快取,享受結果。