2015-07-05 177 views
2

我有一個自定義頁面,我試圖列出商店中的每件產品以及它們的變體。在Woocommerce中獲取產品的所有產品變體

而且,我想列出變化的價格與塞的產品屬性來分類的‘大小’

爲了測試,我試圖讓一個單一產品的變化與ID 381 我的代碼又是

$handle=new WC_Product('381'); 
    $variations1=$handle->get_avaialable_variations(); 
    foreach ($variations1 as $key => $value) { 
      echo '<option value="'.$value['variation_id'].'">'.implode('/',$value['attributes']).'-'.$value['price_html'].'</option>'; 

    } 

但我得到的錯誤是

PHP Fatal error: Call to undefined method WC_Product::get_avaialable_variations() 

我試着用

$handle=new WC_Product_Variable('381'); 

代替

$handle=new WC_Product('381'); 

但錯誤是一樣的。

這裏有什麼幫助嗎?

回答

3

試試看看這個代碼。

$handle=new WC_Product_Variable('12'); 
     $variations1=$handle->get_children(); 
     foreach ($variations1 as $value) { 
     $single_variation=new WC_Product_Variation($value); 
      echo '<option value="'.$value.'">'.implode("/", $single_variation->get_variation_attributes()).'-'.get_woocommerce_currency_symbol().$single_variation->price.'</option>'; 
} 

注:使用此$ single_variation-> get_price_html(),但它與HTML span標記,導致越來越隱藏在選項標籤輸出。

測試了上面的代碼,結果如下。

讓我知道這是否也適用於您。

enter image description here

0
function get_variation_data_from_variation_id($item_id) { 

    $_product = new WC_Product_Variation($item_id); 
    $variation_data = $_product->get_variation_attributes(); // variation data in array 
    $variation_detail = woocommerce_get_formatted_variation($variation_data, true); // this will give all variation detail in one line 
    // $variation_detail = woocommerce_get_formatted_variation($variation_data, false); // this will give all variation detail one by one 
    return $variation_data; // $variation_detail will return string containing variation detail which can be used to print on website 
    // return $variation_data; // $variation_data will return only the data which can be used to store variation data 
} 

我之前發現了這個計算器上不記得鏈接(請編輯如果找到這種方法的鏈接回答)。它顯示輸出的變化數據。該方法以變化id爲參數。

輸出

enter image description here

0

你必須在你的代碼一個錯字 - get_avaialable_variations

應該get_available_variations