Как получить торговую марку продукта в 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(); ---> ???

Я получаю эти атрибуты, но не знаю, как уловить название бренда, есть ли другой способ?

введите описание изображения здесь

Спасибо!


person Ulysses    schedule 23.05.2019    source источник
comment
кажется, вы используете плагины для бренда, вы можете назвать этот плагин? Я предполагаю, что бренд останется термином определенной таксономии ...   -  person Sushil Adhikari    schedule 23.05.2019


Ответы (4)


Используйте 1_

get_the_terms($product->get_id(),'pa_brand') 
person Jimish Gamit    schedule 23.05.2019

Лучше использовать wc_get_post_terms() из идентификатора продукта (что позволяет получать названия терминов вместо объектов WP_Term ) и в зависимости от того, какой плагин вы используете, таксономия будет отличаться:

  • product_brand для плагина Woocommerce Brands
  • yith_product_brand для плагина YITH WooCommerce Brands
  • 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 );

Связанный:

person LoicTheAztec    schedule 23.05.2019

Спасибо за помощь, я использовал этот код, и он работает.

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

foreach ( $terms as $term ){
    if ( $term->parent == 0 ) {
        $brand_name=  $term->slug;
    }
}  
echo $brand_name;
person Ulysses    schedule 23.05.2019
comment
Да, это зависит от плагина, как объяснил @LoicTheAztec - person Jimish Gamit; 24.05.2019

Если вы используете подключаемый модуль Woocommerce Brands: https://docs.woocommerce.com/document/woocommerce-brands/

Вы можете использовать следующую функцию:

echo get_brands();

плагин включает в себя функцию для получения брендов, следующие строки объявляются в следующем файле плагина и каталоге woocommerce-sizes / includes / wc-бренды-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 );
}
person Manuel Ramirez Coronel    schedule 03.06.2021