我想在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' ] ) );
}
}
我宁愿能够使用其中一个选项 任何帮助将不胜感激 感谢
答案 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' ) ) );