如何在 WooCommerce 中获取产品的品牌名称

How to get the brand name of product in WooCommerce

我需要获取产品的品牌名称,我有这个代码

$product = wc_get_product();

  $type = $product->get_type();      
  $name = (string)$product->get_name();
  $id = (int)$product->get_id(); 
  $sku  = (int)$product->get_sku(); 
  $precio = (int)$product->get_price();

$brand_name = $product->get_brand(); ---> ???

我得到了这个属性,但我不知道如何捕捉品牌名称,还有其他方法吗?

谢谢!

使用get_the_terms

get_the_terms($product->get_id(),'pa_brand') 

最好使用来自产品 ID 的 wc_get_post_terms()(允许获取术语名称而不是 WP_Term 对象)并且根据您使用的插件,分类法会有所不同:

  • product_brand 用于 Woocommerce 品牌插件
  • yith_product_brand 用于 YITH WooCommerce 品牌插件
  • pa_brand 自定义产品属性

例如,对于 Woocommerce Brands 插件,您将使用:

$product_id  = get_the_id();
$product     = wc_get_product( $product_id );

$taxonomy    = `product_brand`;
$brand_names = wp_get_post_terms( $product_id, $taxonomy, array( 'fields' => 'names' ) );

// Get the brand name
$brand_name = reset( $brand_names );

相关:

感谢您的帮助,我使用了这段代码并且有效。

$terms = get_the_terms( get_the_ID(), 'product_brand' );

foreach ( $terms as $term ){
    if ( $term->parent == 0 ) {
        $brand_name=  $term->slug;
    }
}  
echo $brand_name;

如果您使用 Woocommerce 品牌插件:https://docs.woocommerce.com/document/woocommerce-brands/

您可以使用下一个功能:

echo get_brands();

该插件包含获取品牌的功能,下一行在下一个插件文件和目录中声明 woocommerce-brands/includes/wc-brands-functions/line-64 到 81

function get_brands( $post_id = 0, $sep = ', ', $before = '', $after = '' ) {
    global $post;

    if ( ! $post_id ) {
        $post_id = $post->ID;
    }

    return get_the_term_list( $post_id, 'product_brand', $before, $sep, $after );
}