2017-09-14 141 views
1

我创建插件并希望从woocomerce获得品牌名称。 在第一次发布产品1号插件它的工作和获得产品品牌,但我希望当我创建产品发布2号和3号从品牌名称从产品1号得到PHP Woocomerce获得产品品牌名称

最新错了?

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."; 
    } 

请帮忙,谢谢。如果你想Concat的品牌名称

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

,你可以这样做:

+0

你能发布更多的代码,所以我们可以看到你在做什么。 'brand_name'将被设置为'品牌'中的最后一个值。 – GeorgeQ

+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动态地采用条款并相应地获取品牌。让我知道你是否需要任何帮助。

谢谢

+0

海,谢谢大师Bilal Hussain,它的工作.... –

+0

快乐是我的;) –

0

如果你想要得到的产品而言,你应该试试这个

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

不能正常工作,你能说得通吗?值是数组,我看不到 –

+0

@Hengky ST使用var_dump($ terms)来查看。 – chen

+0

我试过但空白 –

0

更新代码:

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

echo必须在foreach循环内。

+0

仍然空白:(。 –