如何获取属性名称而不是变体中的 slug?

How to get attribute name instead of slug in variation?

我需要从 woocommerce 产品变体中获取属性。

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

此代码为我提供了一个属性 slug 而不是名称。如何获取属性名称?

在此先感谢您!

您可以试试下面的代码。

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

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

如果有帮助,请告诉我。另外,您可以阅读 this link 中给出的解释以获取更多信息和替代解决方案。

您得到的是分类法的 slug... 在 WooCommerce 中,没有 attribute_attribute_pa_color 是分类法。

所以你可以尝试这样的事情..通过 slug 获取术语。并得到它的名字。

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

您可以通过以下代码轻松找到属性

 foreach ($product->attributes as $taxonomy => $attribute) {
   foreach ($attribute->get_terms() as $term) {
      var_dump($term); // term object data
   }
}