2017-02-23 64 views
2

我在編輯variable-subscription.php文件以嘗試顯示特定的WooCommerce變量訂閱屬性以及某些屬性數據。這是我的代碼到目前爲止,你可以看到我試圖顯示屬性名稱以及變體圖像和描述。獲取變體的特定屬性相應的數據值

<?php 

// get all variations 
$variations = $product->get_available_variations(); 
// get shirt values 
$shirt_values = get_the_terms($product_id, 'pa_shirt'); 
// for each shirt value 
foreach ($shirt_values as $shirt_value) { ?> 

<h1> 
    <?php // name 
     echo echo $shirt_value->name; 
    ?> 
</h1> 

<?php // description 
    foreach ($variations as $variable_array){ 
     $variation = new WC_Product_Variation($variable_array['variation_id']); 
     echo $variation->variation_description; 
    } 
?> 

<?php // image 
    foreach ($variations as $variation) { ?> 
     <img src="<?php echo $variation['image_src']; ?>"> 
    <?php } 
?> 

目前,我要出售的3件襯衫(自定義產品定義屬性),然後我有幾個變化。問題是這個PHP顯示了每件襯衫的所有可能的描述/圖片變化,而我只想顯示與每個特定襯衫屬性相關的變化。

任何意見將非常感激。

回答

1

您需要與類WC_Product_Variation一起使用方法get_variation_attributes(),該方法將爲此變體返回一個屬性及其值的數組。

所以對於屬性pa_shirt你的代碼,以顯示特定變化值將是:

$variations = $product->get_available_variations(); 

// Here we use our method to get the array of attribute values for the variation 
$variation_attribute = $variation->get_variation_attributes(); 

// Here is the value for this variation and "pa_shirt" attribute 
$variation_attrib_shirt_value = $variation_attribute['attribute_pa_shirt']; 

正如你可以看到在陣列中的屬性鍵蛞蝓都'attribute_'在一開始的時候。

+0

謝謝!我標記爲正確的答案。 –