I am trying to get product categories in WooCommerce, but get_terms()
function doesn't work for me. I am getting an empty array.
What I am doing wrong? How to get all Woocommerce product category terms?
Product category is a "custom taxonomy" product_cat
used by WooCommerce products.
You need to use get_terms()
, with the correct taxonomy, this way:
// Get Woocommerce product categories WP_Term objects
$categories = get_terms( ['taxonomy' => 'product_cat'] );
// Getting a visual raw output
echo '<pre>'; print_r( $categories ); echo '</pre>';
You can also get empty product categories using get_terms()
like:
$categories = get_terms( ['taxonomy' => 'product_cat', 'hide_empty' => false] );
Tested and works (WordPress 3.5+ and WooCommerce 2.4+)… Both should works for you.
You will get something like:
Array
(
[0] => WP_Term Object
(
[term_id] => 83
[name] => Uncategorized
[slug] => uncategorized
[term_group] => 0
[term_taxonomy_id] => 83
[taxonomy] => product_cat
[description] =>
[parent] => 0
[count] => 5
[filter] => raw
[meta_value] => 1
)
[2] => WP_Term Object
(
[term_id] => 11
[name] => Tshirts
[slug] => tshirts
[term_group] => 0
[term_taxonomy_id] => 11
[taxonomy] => product_cat
[description] =>
[parent] => 0
[count] => 13
[filter] => raw
[meta_value] => 2
)
// … and so on …
)