我正试图在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 获得产品自定义属性