在 WooCommerce 中显示不同类别的不同自定义字段

Display different custom fields for different categories in WooCommerce

我正在尝试在 WooCommerce 中为不同的类别显示不同的自定义字段。

我在 content-single-product.php 模板文件中使用了以下条件语句:

      if(is_product_category('categoryname'))
    {
         // display my customized field
    }
else
{
do_action( 'woocommerce_after_single_product_summary' );
}

但这对我不起作用。

有没有更好的方法来解决这个问题?

谢谢。

条件 is_product_category() 在单个产品模板中对您不起作用。在这种情况下,正确的条件是两个的组合:

if ( is_product() && has_term( 'categoryname', 'product_cat' ) ) {

    // display my customized field

} 
....

您似乎在尝试覆盖 content-single-product.php 模板。

在你的 ELSE 语句中移动 woocommerce_single_product_summary 钩子不是一个好主意,除非你不想显示 'categoryname' product 那3个钩子函数:

 * @hooked woocommerce_output_product_data_tabs - 10
 * @hooked woocommerce_upsell_display - 15
 * @hooked woocommerce_output_related_products - 20

您可以将代码 (在您的活动子主题或主题的 function.php 文件中) 嵌入代码 而不是(在这里覆盖模板) 使用 more这 2 个钩子的方便之处:

//In hook 'woocommerce_single_product_summary' with priority up to 50.

add_action( 'woocommerce_single_product_summary', 'displaying_my_customized_field', 100);
function displaying_my_customized_field( $woocommerce_template_single_title, $int ) { 
    if ( is_product() && has_term( 'categoryname', 'product_cat' ) ) {

        // echoing my customized field

    } 
}; 

// In hook 'woocommerce_after_single_product_summary' with priority less than 10

add_action( 'woocommerce_after_single_product_summary', 'displaying_my_customized_field', 5);
function displaying_my_customized_field( $woocommerce_template_single_title, $int ) { 
    if ( is_product() && has_term( 'categoryname', 'product_cat' ) ) {

        // echoing my customized field

    } 
};