对于我的自定义WP插件,我试图获取并列出特定Woocomerce产品pa_colors属性的color(hex)和image-url字段值。 到目前为止,我可以使用代码seen here获取属性标题和描述,但似乎找不到如何访问颜色预览(hex)和图像预览(url)值的方法。 这是我的代码:
$_product = wc_get_product( $product_id );
$attributes = $_product->get_attributes('pa_colors');
foreach($attributes as $attr=>$attr_dts){
$attribute_label = wc_attribute_label($attr);
if ( isset( $attributes[ $attr ] ) || isset( $attributes[ 'pa_' . $attr ] ) ) {
$attribute = isset( $attributes[ $attr ] ) ? $attributes[ $attr ] : $attributes[ 'pa_' . $attr ];
if ( $attribute['is_taxonomy'] ) {
$values = wc_get_product_terms( $_product->id, $attribute['name'],array( 'fields' => 'all' ));
if( $values ){
foreach ( $values as $term ){
echo '<dh>' . $term->name.' </dh>';
echo '<dd>' . term_description( $term->term_id, $term->taxonomy ) . '</dd>';
//here is where i want to get the term color values and image url.
}
echo '</dl>';
}
} else {
$formatted_attributes[$attribute_label] = $attribute['value'];
}
}
}
答案 0 :(得分:0)
此代码对我有用
$_product = wc_get_product( $product_id );
$attributes = $_product->get_attributes('pa_colors');
foreach($attributes as $attr=>$attr_dts){
$attribute_label = wc_attribute_label($attr);
if ( isset( $attributes[ $attr ] ) || isset( $attributes[ 'pa_' . $attr ] ) ) {
$attribute = isset( $attributes[ $attr ] ) ? $attributes[ $attr ] : $attributes[ 'pa_' . $attr ];
if ( $attribute['is_taxonomy'] ) {
$values = wc_get_product_terms( $_product->id, $attribute['name'],array( 'fields' => 'all' ));
if( $values ){
foreach ( $values as $term ){
echo '<dh>' . $term->name.' </dh>';
echo '<dd>' . get_term_meta( $term->term_id, 'color', true ); . '</dd>';
echo '<dd><img src="' . get_term_meta( $term->term_id, 'image', true ) . '" /></dd>';
}
echo '</dl>';
}
} else {
$formatted_attributes[$attribute_label] = $attribute['value'];
}
}
}