How to get the brand name of product in WooCommerc

2020-08-01 07:14发布

问题:

i need get the brand name of product , i have this code

$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(); ---> ???

i get this attributes but i don't know how catch the brand name, is there another way ?

Thanks!

回答1:

Use get_the_terms

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


回答2:

Is better to use wc_get_post_terms() from a product ID (that allows to get term names instead of WP_Term Objects) and depending on what plugin you are using, the taxonomy will be different:

  • product_brand for Woocommerce Brands plugin
  • yith_product_brand for YITH WooCommerce Brands plugin
  • pa_brand for a custom product attribute

So for example with Woocommerce Brands plugin you will use:

$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 );

Related:

  • Display category and brand name on single product page
  • Display Product Brand and Name in Woocommerce Orders and email notifications
  • Adding Woocommerce Brands names to cart item product names


回答3:

Thanks for the help , I used this code and it works.

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

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