在Woocommerce中获取自定义产品属性

在Woocommerce中,我试图获得产品自定义属性值,但我失败了,我没有得到任何东西。

所以我尝试了:

global $woocommerce, $post, $product;
$res = get_post_meta($product->id);
print_r(unserialize($res['_product_attributes'][0]));

我得到的是原始数据:

[pa_koostis] => Array
        (
            [name] => pa_koostis
            [value] => 
            [position] => 0
            [is_visible] => 1
            [is_variation] => 0
            [is_taxonomy] => 1
        )

我知道有一个值,因为它显示在属性部分中,但我找不到一种方法来显示它与我的自定义代码。


答案 1

已编辑自Woocommerce版本3以来已弃用woocommerce_get_product_terms

正如@datafeedr在回答中所写的那样,请使用以下内容:

global $product;
$koostis = array_shift( wc_get_product_terms( $product->id, 'pa_koostis', array( 'fields' => 'names' ) ) );

甚至更紧凑:

global $product;
$koostis = $product->get_attribute( 'pa_koostis' );

原答:

$result = array_shift(woocommerce_get_product_terms($product->id, 'pa_koostis', 'names'));

答案 2

2018年更新。您可以使用:

global $product;
echo wc_display_product_attributes( $product );

要自定义输出,请复制到该输出并进行修改。plugins/woocommerce/templates/single-product/product-attributes.phpthemes/theme-child/woocommerce/single-product/product-attributes.php


推荐