web-dev-qa-db-ja.com

Woocommerce 3で商品属性ラベル名を取得します

私はWoocommerceの製品で多くの製品属性を使用しており、製品ページにショートコードで表示できるテーブルのすべてのバリエーションをループしています。

このテーブルでは、テーブルヘッドのすべての製品属性が必要です(これはバリエーションをループする前です)。次を使用して属性を取得します。

$attributes = $product->get_variation_attributes();
foreach ($attributes as $key => $value) {
    echo '<td>'.&key.'</td>';
}

これはあまりエレガントではありませんね。

これも機能します:

$attributes = $product->get_attributes();
foreach ($attributes as $attribute) {
    echo '<td>'$attribute['name']'</td>';
}

どちらの場合でも、私は製品属性のスラッグを取得します。代わりにラベル名を取得する必要があります。名前ごとにPolylang翻訳があるためです(用語も)。

分類スラッグの代わりに製品属性ラベル名を取得するにはどうすればよいですか?

4
Renato

wc_attribute_label() 専用のWoocommerce関数を使用します。

foreach ($product->get_variation_attributes() as $taxonomy => $term_names ) {
    // Get the attribute label
    $attribute_label_name = wc_attribute_label($taxonomy);

    // Display attribute labe name
    echo '<td>'.$attribute_label_name.'</td>';
}

または:

foreach ($product->get_attributes() as $taxonomy => $attribute_obj ) {
    // Get the attribute label
    $attribute_label_name = wc_attribute_label($taxonomy);

    // Display attribute labe name
    echo '<td>'.$attribute_label_name.'</td>';
}
4
LoicTheAztec