Obține lista principală de categorii de produse în WooCommerce

16 ian. 2013, 08:16:53
Vizualizări: 18.2K
Voturi: 1

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?

0
Toate răspunsurile la întrebare 4
0

Verifică părintele fiecărei categorii, termenii de nivel superior vor avea valoarea părintelui 0:

$product_category = wp_get_post_terms( $post->ID, 'product_cat' );

foreach( $product_category as $cat ):
    if( 0 == $cat->parent )
        echo $cat->name;
endforeach;
16 ian. 2013 08:46:24
0

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.

13 oct. 2013 23:07:15
1

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; ?>
28 feb. 2015 12:42:54
Comentarii

Vă rugăm să nu doar să copiați codul, poate [editați] și adăugați o explicație despre cum acest lucru ar putea rezolva problema.

Mayeenul Islam Mayeenul Islam
28 feb. 2015 12:59:31
0

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
}
25 ian. 2023 22:45:01