
本文将介绍如何在 WooCommerce 单品页面中,利用 WooCommerce 内置的特色商品功能,显示一个“特色”标签。我们将使用 wc_get_featured_product_ids() 函数来判断当前商品是否为特色商品,并根据判断结果显示相应的标签。避免使用自定义字段,简化操作流程。
利用 WooCommerce 内置函数判断并显示特色商品标签
WooCommerce 已经内置了特色商品的功能,我们可以直接利用这个功能来显示商品是否为特色商品。以下代码展示了如何使用 wc_get_featured_product_ids() 函数来判断当前商品是否为特色商品,并显示相应的标签。
function action_woocommerce_before_single_product_summary() {
global $product;
// 检查是否为 WooCommerce 商品
if ( is_a( $product, 'WC_Product' ) ) {
// 获取商品ID
$product_id = $product->get_id();
// 获取特色商品ID数组
$featured_product_ids = wc_get_featured_product_ids();
// 检查商品ID是否存在于特色商品ID数组中
if ( in_array( $product_id, $featured_product_ids ) ) {
echo '<span class="property-contract-badge">Featured</span>';
} else {
// 可以选择显示其他内容,例如:
// echo 'NOT featured';
}
}
}
add_action( 'woocommerce_before_single_product_summary', 'action_woocommerce_before_single_product_summary', 1 );代码解释:
- action_woocommerce_before_single_product_summary() 函数: 这个函数将在单品页面的摘要信息之前执行,woocommerce_before_single_product_summary 是一个 WooCommerce 提供的 action hook。
- global $product;: 获取全局的 $product 对象,该对象包含了当前商品的信息。
- is_a( $product, 'WC_Product' ): 确保 $product 是一个 WC_Product 对象,即当前页面确实是 WooCommerce 的商品页面。
- $product_id = $product-youjiankuohaophpcnget_id();: 获取当前商品的 ID。
- $featured_product_ids = wc_get_featured_product_ids();: 使用 wc_get_featured_product_ids() 函数获取所有特色商品的 ID,返回一个数组。
- in_array( $product_id, $featured_product_ids ): 使用 in_array() 函数检查当前商品的 ID 是否存在于特色商品 ID 数组中。
- echo '<span class="property-contract-badge">Featured</span>';: 如果当前商品是特色商品,则输出一个包含 "Featured" 文本的 <span> 标签。你可以自定义标签的样式,例如修改 property-contract-badge 类。
- add_action(...): 将 action_woocommerce_before_single_product_summary() 函数添加到 woocommerce_before_single_product_summary action hook 中,并设置优先级为 1。
使用方法:
将以上代码添加到你的主题的 functions.php 文件中(推荐使用子主题)。
注意事项:
- 确保你的主题或插件没有移除或修改 woocommerce_before_single_product_summary action hook。
- 你可以根据需要自定义 <span> 标签的样式,例如修改 CSS 类名。
- 如果不需要显示 "NOT featured" 提示,可以删除 else 语句块。
总结:
使用 wc_get_featured_product_ids() 函数可以方便地判断商品是否为特色商品,并根据判断结果显示相应的标签。这种方法避免了使用自定义字段,简化了操作流程,并且直接利用了 WooCommerce 内置的功能,更加高效和可靠。记住将代码添加到子主题的 functions.php 文件中,并根据你的需求自定义标签的样式。










