2015-10-08 115 views
1

我正在進行woocommerce定製。但我現在還不夠好,現在該如何獲得產品的屬性。我也想獲得一個屬性存檔頁面的鏈接。Woocommerce定製單一產品視圖

我把woocommerce文件夾放在我的主題文件夾中。這樣我可以制定自定義行爲。在這woocommerce文件夾是一個文件主題名稱/ woocommerce /單品/標籤/ tabs.php

此文件是使用打印產品說明。之後,我把代碼片段放在打印類別名稱和它的描述中。我也希望它能夠打印產品的屬性。 (最好鏈接到它的存檔頁面)。

有沒有辦法使用片段的一部分來回顯產品的屬性?

global $post; 
 
    $terms = get_the_terms($post->ID, 'product_cat'); 
 
    $attribute_names = array('Producten'); 
 
     foreach ($attribute_names as $attribute_name) { 
 
        $taxonomy = get_taxonomy($attribute_name); 
 
        if ($taxonomy && ! is_wp_error($taxonomy)) { 
 
          $terms = wp_get_post_terms($post->ID, $attribute_name); 
 
          $terms_array = array(); 
 
        if (! empty($terms)) { 
 
          foreach ($terms as $term) { 
 
            $archive_link = get_term_link($term->slug, $attribute_name); 
 
            $full_line = '<a href="' . $archive_link . '">'. $term->name . '</a>'; 
 
            array_push($terms_array, $full_line); 
 
          } 
 
          echo $taxonomy->labels->name . ' ' . implode($terms_array, ', '); 
 
        } 
 
      } 
 
     } 
 
    foreach ($terms as $term) {        
 
     $name = $term->name; 
 
     $desc = $term->description; 
 

 
     break; 
 
    } 
 

 
echo $name; 
 
echo '<br>'; 
 
echo $desc;

+0

哪些是你想要的屬性? –

+0

我有一個屬性項,命名爲我的產品變體中的顏色,具有屬性,紅色,綠色,藍色等... –

+0

我給了你一些代碼,未經測試,但你會從中得到一些方法。 –

回答

0

你需要編寫這樣的事情,不完全是這樣,你需要在這裏做一些修改,我只是發佈了一些代碼的部分從我的工作,有我在檢索重量和價格如果你需要的話,你可以添加類別。如果您有任何錯誤或問題,請在使用此代碼後告訴我,因爲我沒有對其進行測試。

<?php 
     $arg = array('posts_per_page' => -1, 'numberposts' => -1, 'post_type' => 'product'); 
     $products = get_posts($arg); 
     <?php $product_obj = new WC_Product_Factory(); ?> <?php if ($products): ?> 
     <?php foreach($products as $product): ?><?php $product = $product_obj->get_product($product); ?> 

     <?php if ($product->product_type == 'variable'): ?> 
     <?php $children = $product->get_children($args = '', $output = OBJECT); ?> 

     <?php 
     foreach ($children as $key=>$value) { 
      $product_variatons = new WC_Product_Variation($value); 
      if ($product_variatons->exists() && $product_variatons->variation_is_visible()) { 
      $variations[$value] = $product_variatons->get_variation_attributes(); 
       }