WooCommerce - 获取自定义产品属性

Dav*_*eyD 5 php wordpress attributes product woocommerce

我想在woocommerce中获得特定的自定义属性.我已经在这个网站上阅读了大量的线程,提供了大约3-5种方法.在尝试了所有之后,对我有用的唯一方法是遍历所有属性 - 所有其他属性都不起作用.我有一个名为'pdfs'的自定义属性

下面的尝试没有工作: (链接)

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

 $myPdf = $product->get_attribute( 'pdfs' );

 $myPdf = get_post_meta($product->id, 'pdfs', true);
Run Code Online (Sandbox Code Playgroud)

这是做的工作只有一个: (链接)

 $attributes = $product->get_attributes();
 foreach ( $attributes as $attribute ) {
    if (attribute_label( $attribute[ 'name' ] ) == "pdfs" ) {
        echo array_shift( wc_get_product_terms( $product->id,  $attribute[ 'name' ] ) );
    }
}
Run Code Online (Sandbox Code Playgroud)

我宁愿能够使用第一个选项之一任何帮助将不胜感激.
谢谢

Loi*_*tec 7

更新:添加了Woocommerce 3+的兼容性

由于属性总是pa_在DB中前置,为了使用wc_get_product_terms()函数获取它们,您将需要使用pa_pdfs而不是pdfs这样:

global $product;

$product_id = method_exists( $product, 'get_id' ) ? $product->get_id() : $product->id; // Added WC 3+ support

$myPdf = array_shift( wc_get_product_terms( $product_id, 'pa_pdfs', array( 'fields' => 'names' ) ) );
Run Code Online (Sandbox Code Playgroud)

参考:如何从WooCommerce获取产品自定义属性