Woocommerce将属性值名称添加为类

时间:2016-12-20 17:36:50

标签: php wordpress woocommerce

我正在尝试将product属性的属性值名称设置为每个<span>项的classname。

所以我可以将material设置为产品属性。然后附加stonepaper等值。

如何将stonepaper设为类名?通常,值打印为 - &gt; Material: stone, paper。我想设置一个类名,这样我就可以将石头和纸张变成一个小图像。

所以在woocommerce/single-product/add-to-cart/simple.php我添加了这个:

<?php
 if ( $attribute['is_taxonomy'] ) {
   $values = wc_get_product_terms( $product->id, $attribute['name'], array( 'fields' => 'names' ) );        

    ///////////////this is added//////////////////////////  
    if($attribute['name'] == 'pa_material'){ // I only want to set a classname if attribute name == material            

     foreach($values as $value){ 
        $value_classname = $value; // how can I get the value name??
     }                    
    echo apply_filters( 'woocommerce_attribute', wpautop( wptexturize('<span class="lbl ' . $value_classname . '">'. implode( '</span><span class="lbl ' . $value . '">', $values ).'</span>' ) ), $attribute, $values );
    //////////////////////////////////////////// 
    } else{
      echo apply_filters( 'woocommerce_attribute', wpautop( wptexturize( implode( ', ', $values ) ) ), $attribute, $values );

    }

 } else {

// Convert pipes to commas and display values
   $values = array_map( 'trim', explode( WC_DELIMITER, $attribute['value'] ) );
echo apply_filters( 'woocommerce_attribute', wpautop( wptexturize( implode( ', ', $values ) ) ), $attribute, $values );

}
?>

现在,classname明显返回空白。

1 个答案:

答案 0 :(得分:1)

获取仅为材质属性指定给产品的属性值:

global $product;
//this will get the names
$values = wc_get_product_terms($product->id, 'pa_material', array( 'fields' => 'names' ) );