WooCommerce-获取自定义产品属性


WooCommerce - Get custom product attribute

我正试图在wooccommerce中获得一个特定的自定义属性。我在这个网站上读了很多帖子,其中提供了大约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);

这是唯一有效的:(链接)

 $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' ] ) );
    }
}

我更希望能够使用第一种选择如有任何帮助,我们将不胜感激
感谢

更新:增加了Wooccommerce3+的兼容性

由于属性在DB中总是以pa_开头,因此要使用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' ) ) );

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