PHP Woocommerce获得产品品牌名称

时间:2017-09-14 00:26:05

标签: php wordpress woocommerce hook-woocommerce

我创建插件并希望从woocommerce获得品牌名称。 在第一时间我发布产品1号插件工作,并按照我的意愿获得产品品牌,但是当我创建第2号产品和第3号品牌产品时,从第1号产品获得

怎么了?

if ( class_exists( 'WooCommerce' ) ) {
        $kode = $product->get_sku();
        $terms = wp_get_post_terms( $product_id, 'brand', array('orderby'=>'name'));

        $brands = get_terms( 'brand', array(
        'orderby'       => 'name'
        //,'product__in'  => $product->id
        // orderby arguments ('name', 'slug','term_group', 'term_id', 'id', 'description')
        ) );

        foreach ( $brands as $key => $brand ) :
            $brand_name = $brand->name;
        endforeach;

        $merk = $brand_name;

        //this i want to print the brand name
        echo "<strong>STOCK ".$merk." ".$kode."</strong><br/>";


    } else {
      echo "please active your WooCommerce plugin.";
    }

4 个答案:

答案 0 :(得分:2)

这对你有用。

if ( class_exists( 'WooCommerce' ) ) {
        $kode = $product->get_sku();

        $tax = array(
        'STOCK'=>'brand',
         );

        foreach ($tax as $mk_label => $mk_value) {
            $make_array = wp_get_post_terms(get_the_ID(), $mk_value, array("fields" => "names"));
            foreach ($make_array as $value) {
                $mk .= $value.", ";
            }
            echo '<strong>'.$mk_label.' <a href="javascript:void(0)">'.rtrim($mk,", ").' '.$kode.'</a></strong>';
            $mk ="";
        }


    } else {
      echo "please active your WooCommerce plugin.";
    }

我们根据当前产品ID动态调整条款并相应地获取品牌。如果您需要更多帮助,请告诉我。

由于

答案 1 :(得分:0)

如果您想从产品中获取条款,请尝试以下方法:

$terms = wp_get_post_terms( $product_id, 'brand', array('orderby'=>'name'));
//you could use: var_dump($terms); to see what it is.

如果您想要连结品牌名称,可以这样做:

$term_names = wp_get_post_terms( $product_id, 'brand', array('orderby'=>'name', 'fields' => 'names'));
$term_names = implode(' ', $term_names);
echo $term_names;

答案 2 :(得分:0)

更新的代码:

foreach ( $brands as $key => $brand ) :
    echo "<strong>STOCK ".$brand->name." ".$kode."</strong><br/>";
endforeach;

echo必须位于foreach循环内。

答案 3 :(得分:0)

应该使用“ pa_brand”代替分类法“品牌”。

$term_names = wp_get_post_terms( $product_id, 'pa_brand', array('orderby'=>'name', 'fields' => 'names'));