Get all product categories in WooCommerce
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 outputecho '<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 …)