私は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翻訳があるためです(用語も)。
分類スラッグの代わりに製品属性ラベル名を取得するにはどうすればよいですか?
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>';
}