获取Woocomerce Poduct属性的颜色和图像值

时间:2019-02-03 09:33:20

标签: wordpress woocommerce attributes

对于我的自定义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'];
                   }

               }
           }

1 个答案:

答案 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'];
                   }

               }
           }