Obține lista principală de categorii de produse în WooCommerce
Folosesc o temă WooCommerce pentru site-ul meu. Încerc să afișez o listă cu doar categoriile principale de produse. Am încercat acest cod. Dar returnează toate categoriile principale și subcategoriile.
$product_category = wp_get_post_terms( $post->ID, 'product_cat' );
Trebuie să afișez doar lista principală de categorii de produse. Cum pot face asta?

Puteți face acest lucru foarte ușor folosind shortcode-urile WooCommerce
echo do_shortcode('[product_categories number="12" columns="4"]');
Dacă doriți ca shortcode-ul să afișeze toate categoriile, folosiți:
echo do_shortcode('[product_categories number="12" columns="4" parent="0"]');
Cred că am explicat suficient de clar pentru a înțelege.
De asemenea, puteți analiza implementarea în fișierul content_product-cat.php și să folosiți propriul loop personalizat. Shortcode-urile de mai sus vor afișa conținutul acestui fișier, apropo.

Te rog folosește acest cod.
Funcționează pentru mine..
<?php
$term = get_queried_object()->term_id;
$termid = get_term($term, 'product_cat' );
$args = array(
'orderby' => 'name',
'order' => 'ASC',
'hide_empty' => false,
'child_of' => $term,
'parent' =>0
);
$subproducts = get_terms( 'product_cat', $args);
foreach ($subproducts as $subproduct) {
echo $subproduct->name; ?>

preluat de aici: http://stackoverflow.com/questions/20777929/woocommerce-how-do-i-get-the-most-top-level-category-of-the-current-product-ca/#answer-20778095
function get_root_term() {
global $post;
$prod_terms = get_the_terms( $post->ID, 'product_cat' );
foreach ($prod_terms as $prod_term) {
// obține ID-ul categoriei de produs
$product_cat_id = $prod_term->term_id;
// obține un array cu toate nivelurile părinte ale categoriei
$product_parent_categories_all_hierachy = get_ancestors( $product_cat_id, 'product_cat' );
// taie array-ul și extrage ultimul set din array
$last_parent_cat = array_slice($product_parent_categories_all_hierachy, -1, 1, true);
foreach( $last_parent_cat as $last_parent_cat_value ) {
$root_term = $last_parent_cat_value;
}
}
return $root_term;
}
// utilizare
$root_term = get_root_term();
if ( $root_term === 27 ) {
// faci ceva
}
