Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Get WooCommerce product categories from WordPress

I am trying to get the product categories from WooCommerce through a function in my WordPress theme

    function get_me_list_of($atts, $content = null)     {            $args = array( 'post_type' => 'product', 'posts_per_page' => 10, 'product_cat' => $atts[0]);          $loop = new WP_Query( $args );          echo '<h1 class="upp">Style '.$atts[0].'</h1>';         echo "<ul class='mylisting'>";         while ( $loop->have_posts() ) : $loop->the_post();          global $product;           echo '<li><a href="'.get_permalink().'">'.get_the_post_thumbnail($loop->post->ID, 'thumbnail').'</a></li>';      echo '<li><a href="'.get_permalink().'">'.$loop->post->post_title.'</a></li>';  echo '<li><a href="">'.get_categories().'</a></li>';         endwhile;           echo "</ul>";          wp_reset_query();        }      ?> 

The above code returns some products, but the product categories.

When I included echo '<li><a href="">'.get_categories().'</a></li>'; in the code above it returns as an array. How do I fix this?

How do i change this to get the product categories from WooCommerce?

like image 516
Tester Avatar asked Jan 09 '14 00:01

Tester


People also ask

Where is product category page WooCommerce?

Go to Appearance > Customize > WooCommerce > Product Catalog. Here you choose what to display on the main shop page. Then, select Show categories to have product categories displayed on your shop. You also should decide what to display on product category pages.

Where is product category in WordPress?

How to add/edit product categories. Categories are managed from the Products > Categories screen. Similar to categories on your posts in WordPress, you can add, delete, and edit product categories.

How do I link product categories to pages in WordPress?

To enable it, you will want to click on the Screen Options button on the top right side of the Appearance → Menus page and check the box for Product Categories. Once you've done so, refresh the page and you should be able to see another menu item selection for Product Categories. Hope this helps.


1 Answers

<?php    $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 ;             }            }     }        } ?> 

This will list all the top level categories and subcategories under them hierarchically. do not use the inner query if you just want to display the top level categories. Style it as you like.

like image 191
Suman.hassan95 Avatar answered Sep 18 '22 14:09

Suman.hassan95