2017-07-12 6 views
1

私はcsvファイルを使用して製品のインポートに取り組んでいます。私はcsvから最初にすべての製品のリストを表示し、woocommerceからすべてのカテゴリを表示する必要があります。すべてのカテゴリとサブカテゴリがそこに来ているが、私は、例えばWoocommerceどのようにすべての製品catgoriesとそこにサブカテゴリを表示するには?

Clothes 
-- Jeans 
------ Blue 
------ Black 
-- T-shirt 
Jwellery 
    -- Diamond 
    ------ Chain 
    ------ Ring 
    -- Gold 
Phone 

hieraricalために、複数のチェックボックスを選択してそれらを表示する必要がある。しかし、これらすべてを1行に来ています。私は親と子のカテゴリーであることを見つけることができません。これは私のコードです。助けてください。

$args = array(
         'hierarchical' => 1, 
         'show_option_none' => '', 
         'hide_empty' => 0, 
         'taxonomy' => 'product_cat' 
        ); 
        $subcats = get_categories($args); 
        echo '<ul id="test" class="test">'; 
         foreach ($subcats as $sc) { 
         $link = get_term_link($sc->slug, $sc->taxonomy); 
         if($sc->category_parent == 0) 
         { 
          echo '<li><input type="checkbox" name="product_cat[]" value="'.$sc->name.'"/><a href="'. $link .'">'.$sc->name.'</a></li>'; 
         }else 
         { 
          echo '<li>&nbsp;&nbsp;<input type="checkbox" name="product_cat[]" value="'.$sc->name.'"/><a href="'. $link .'">'.$sc->name.'</a></li>'; 
         } 
         } 
        echo '</ul>'; 

答えて

0

$args = array(
    'taxonomy'  => 'product_cat', 
    'parent'  => false, // get top level categories 
    'orderby'  => 'name', 
    //'order'   => 'ASC', 
    'hierarchical' => 1, 
    'show_option_none' => '', 
    'hide_empty' => false, 
); 

$categories = get_categories($args); 
echo "<ul>"; 
foreach ($categories as $category){ 
    $link=get_category_link($category->term_id); 
    echo "<label><a href=".$link."><input type=checkbox value=". $category->name . " name=". $category->name . ">". $category->name ."</a>" ."</label>"; 

    $sub_args = array(
     'taxonomy'  => 'product_cat', 
     'parent'  => $category->term_id, // get child categories 
     'orderby'  => 'name', 
     //'order'   => 'ASC', 
     'hierarchical' => 1, 
     'show_option_none' => '', 
     'hide_empty' => false, 
    ); 

    $sub_categories = get_categories($sub_args); 
    ?> 
    <ul> 
    <?php 
    foreach ($sub_categories as $sub_category){ 
     $links=get_category_link($sub_category->term_id); 
     ?> 
<li> <?php 
     echo '<label><a href='.$links.'><input type="checkbox" id="type-'. $sub_category->name . '" rel="'. $sub_category->name . '">'. $sub_category->name .'</a>'. '</label>'; 
?> 
</li> 
<?php 
//////////////////////// 
$sub_arg = array(
     'taxonomy'  => 'product_cat', 
     'child_of'  => $sub_category->term_id, // get child categories 
     'orderby'  => 'name', 
     //'order'   => 'ASC', 
     'hierarchical' => 1, 
     'show_option_none' => '', 
     'hide_empty' => false, 
    ); 

    $su_categories = get_categories($sub_arg); 
    ?> 
    <ul> 
    <?php 
    foreach ($su_categories as $su_category){ 
     $cat_link=get_category_link($su_category->term_id); 
     ?> 
<li> <?php 
     echo '<label><a href='.$links.'><input type="checkbox" id="type-'. $su_category->name . '" rel="'. $su_category->name . '">'. $su_category->name .'</a>'. '</label>'; 
?> 
</li> 
<?php 
    } 

////////////////////////////// 
    } 
?> 
</ul> 
<?php 
} 
echo "</ul>"; 
0
Use below code 

    $taxonomy  = 'product_cat'; 
     $orderby  = 'name'; 
     $show_count = 0;  // 1 for yes, 0 for no 
     $pad_counts = 0;  // 1 for yes, 0 for no 
     $hierarchical = 1;  // 1 for yes, 0 for no 
     $title  = ''; 
     $empty  = 0; 

     $args = array(
      'taxonomy'  => $taxonomy, 
      'orderby'  => $orderby, 
      'show_count' => $show_count, 
      'pad_counts' => $pad_counts, 
      'hierarchical' => $hierarchical, 
      'title_li'  => $title, 
      'hide_empty' => $empty 
    ); 
    $all_categories = get_categories($args); 
    foreach ($all_categories as $cat) { 
     if($cat->category_parent == 0) { 
      $category_id = $cat->term_id;  
      echo '<br /><a href="'. get_term_link($cat->slug, 'product_cat') .'">'. $cat->name .'</a>'; 

      $args2 = array(
        'taxonomy'  => $taxonomy, 
        'child_of'  => 0, 
        'parent'  => $category_id, 
        'orderby'  => $orderby, 
        'show_count' => $show_count, 
        'pad_counts' => $pad_counts, 
        'hierarchical' => $hierarchical, 
        'title_li'  => $title, 
        'hide_empty' => $empty 
      ); 
      $sub_cats = get_categories($args2); 
      if($sub_cats) { 
       foreach($sub_cats as $sub_category) { 
        echo $sub_category->name ; 
       } 
      } 
     }  
    } 
このコードの弟を試してみてください
関連する問題