如何獲取當前的 WooCommerce 產品類別

已發表: 2021-05-25

WooCommerce 獲取當前產品類別 在這篇文章中,我與您分享 WooCommerce 獲取當前產品類別代碼片段,並解釋如何使用此代碼獲取當前產品類別。

如果您是 WooCommerce 開發人員或只是將 WooCommerce 自定義為普通用戶,那麼從WooCommerce 數據庫獲取當前產品類別的能力可以幫助您為您的產品創建各種顯示選項。

當您想要創建特定的 WooCommerce 客戶體驗功能時,您還可以獲得當前產品類別,例如基於當前類別的結賬後 WooCommerce 重定向

我在上一篇關於如何獲取 WooCommerce 當前產品類別名稱的教程中演示了這一點。

WooCommerce 獲取當前產品類別

首先,我假設您了解 WooCommerce 開發的方式,並且您只是在尋找一個快速的代碼片段來獲取當前的產品類別。

如果你是一個完整的初學者,你可能想在這裡查看我之前分享的關於 WooCommerce 開發的 1000 多篇文章中的大部分——WooCommerce 教程。

現在讓我們關注獲取當前 WooCommerce 產品類別的基礎知識。 首先,您需要了解 WooCommerce 產品只是自定義帖子類型——從 WordPress 開發的角度來看。

因此,您可以以與我們為普通 WordPress 帖子構建查詢相同的方式查詢它們和產品類別。

WooCommerce 產品是自定義帖子類型,將類別作為其分類法之一。

由於我們現在了解了 WooCommerce 類別如何在後台工作,我們將使用 get_the_terms() WordPress 核心函數從數據庫中獲取當前的 WooCommerce 產品類別。

但首先,讓我們快速了解一下 get_the_terms() WordPress 函數的工作原理!

WordPress 獲取當前類別的函數 – get_the_terms ()

該函數旨在簡單地為我們提供我們想要的分類術語,並獲得我們想要的,我們需要給這個函數一個參數。

從這個函數中得到我們想要的東西的方法是給它一個我們想要的類別的帖子的 ID。

因此,快速總結一下這個函數,接受兩個參數 ID 或對象和分類名稱。

在我們迷路之前,讓我分享一個快速匯總表,然後通過一個簡單的示例幫助您掌握此功能的工作方式!

範圍描述
$post 這是此功能正常工作所必需的,它只是帖子 ID 或我們想要獲取數據的對象——在這種情況下,它將是當前帖子的 ID,因為我們想要獲取 WooCommerce CURRENT PRODUCT 類別
$分類這也是此功能工作所必需的,它是分類名稱

WooCommerce 獲取當前產品類別

WooCommerce 獲取當前產品類別 假設我們現在想要獲取當前產品類別,如上圖所示; 我們有這個例子。

因此我們可以使用 WordPress 全局 post 對象 $post 獲取當前產品 ID。 這將返回 ID 以及其他帖子數據

$post (WP_Post) 當前帖子的帖子對象。 類參考/Wp_posts 中描述的對象。

一旦我們有了 ID,我們現在可以將 ID 與分類一起傳遞給函數 get_the_terms(),我們將成功獲得當前的產品類別。

WooCommerce 產品類別的分類是 - product_cat,因此我們現在可以將當前產品 ID 與 product_cat 一起傳遞,以獲取與當前產品關聯的所有類別。 所以我們可以用這段代碼做到這一點:


global $post;

$terms = get_the_terms( $post->ID, 'product_cat' );

$nterms = get_the_terms( $post->ID, 'product_tag'  );

foreach ($terms  as $term  ) {

$product_cat_id = $term->term_id;

$product_cat_name = $term->name;

break;

}

WooCommerce 逐步獲取當前產品類別(3 個主要步驟)

因此,這些是我們為在 WooCommerce 中獲取當前產品類別而採取的步驟:

  1. 首先獲取當前產品ID
  2. 將產品 ID 和product_cat分類法作為兩個參數傳遞給get_the_terms()函數
  3. 第 2 步返回一個包含所有詳細信息的數組。 我們使用 foreach 循環遍歷數據並獲取類別名稱或我們想要的當前產品類別的任何其他詳細信息

您現在可以繼續打印或在任何其他邏輯中使用類別,正如我指出的示例WooCommerce redirect after checkout based on category

我已將此代碼添加到示例站點頂部的掛鉤中,您可以從下圖中看到該類別已成功顯示: WooCommerce 獲取當前產品類別

如上圖所示,我添加到自定義 Storefront 主題以在 WordPress 標題上顯示類別的完整代碼片段如下:


add_action('wp_head', 'get_current_product_category');

function get_current_product_category(){

global $post;

$terms = get_the_terms( $post->ID, 'product_cat' );

$nterms = get_the_terms( $post->ID, 'product_tag'  );

foreach ($terms  as $term  ) {

$product_cat_id = $term->term_id;

$product_cat_name = $term->name;

break;

}

echo $product_cat_name;

}

結論

在這篇文章中,我們重點介紹了獲取當前產品 WooCommerce 類別的分步方法。 正如您在上面的示例中所看到的,您只需要知道當前的產品 ID,就可以使用默認的 WordPress 函數來獲取條款並循環訪問當前的 WooCommerce 類別。

類似文章