2016-12-20 22 views
0

商品属性の属性値名を各<span>アイテムのクラス名として設定しようとしています。Woocommerceクラスとして属性値の名前を追加

商品属性としては、たとえばmaterialと設定できます。そして、stoneのように値を付けるpaperなど

どのように私はクラス名としてstonepaperを設定することができますか?通常、値は - >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); 

} 
?> 

今のクラス名は明らかに空白を返します。

答えて

1

ちょうど材料属性の製品に割り当てられた属性値を取得するには、次の

global $product; 
//this will get the names 
$values = wc_get_product_terms($product->id, 'pa_material', array('fields' => 'names')); 
関連する問題