WooCommerce - 获取自定义产品属性

时间:2016-07-20 17:55:10

标签: php wordpress woocommerce attributes product

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

以下尝试无效:link

 $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);

这是唯一有效的方法:link

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

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

1 个答案:

答案 0 :(得分:7)

  

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

由于数据总是以数据库中的 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' ) ) );

参考:How to get a products custom attributes from WooCommerce