2016-02-01 12 views
8

woocommerce製品のバリエーションから属性を取得する必要があります。バリエーションにslugの代わりに属性名を取得するには?

$terms = get_post_meta($value['variation_id'], 'attribute_pa_color', true); 

このコードは、名前の代わりに属性スラッグを与えています。属性名はどのように取得できますか?

ありがとうございました!

答えて

8

タクソノミーのスラッグです... attribute_のないattribute_pa_colorのWooCommerceでは分類法です。

だから、このようなものを試してみると、スラッグの言葉を得ることができます。それに名前をつけろ。

$taxonomy = 'pa_color'; 
$meta = get_post_meta($value['variation_id'], 'attribute_'.$taxonomy, true); 
$term = get_term_by('slug', $meta, $taxonomy); 
echo $term->name; 
+0

うわー、うーん!どうもありがとうございます! – Pupik

0

次のコードを試すことができます。

$terms = get_the_terms($value['variation_id'] , 'attribute_pa_color'); 

foreach ($terms as $term) { 
    echo $term->name; 
} 

それが役に立ったかどうかを教えてください。追加情報については、thisリンクに記載されている説明を参照してください。

+0

動作しませんが、私はそれについて試してみます。ヒントありがとう! – Pupik

+0

これは次のように動作します:get_the_terms($ product-> id、 'pa_color');すべてのバリエーションから属性を返します:( – Pupik

+0

プロダクトIDの代わりにハードコードのバリエーションIDを試してみましたが、これは機能しません。私の推測ではバリエーションIDを使ってこの方法を使用するはずはありませんか? – Pupik

関連する問題