我正在尝试将product属性的属性值名称设置为每个<span>
项的classname。
所以我可以将material
设置为产品属性。然后附加stone
,paper
等值。
如何将stone
和paper
设为类名?通常,值打印为 - &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明显返回空白。
答案 0 :(得分:1)
获取仅为材质属性指定给产品的属性值:
global $product;
//this will get the names
$values = wc_get_product_terms($product->id, 'pa_material', array( 'fields' => 'names' ) );