Ascunde produsele necategorizate din pagina magazinului

24 apr. 2018, 18:01:05
Vizualizări: 20.8K
Voturi: 4

Când WooCommerce s-a actualizat la versiunea 3.3, categoria de produse 'Necategorizate' a fost adăugată și a apărut pe toate paginile (inclusiv pe pagina magazinului WooCommerce) unde erau afișate produse. Toate produsele care nu au cel puțin o categorie atribuită sunt apoi (logic, presupun) atribuite categoriei 'necategorizate'.

Am folosit întotdeauna abordarea (posibil nu ideală) de a ascunde produsele sezoniere prin eliminarea tuturor categoriilor de la aceste produse când erau în afara sezonului. Această nouă schimbare a însemnat că aceste produse 'ascunse' au apărut brusc pe site la vânzare în această nouă categorie, lucru pe care nu îl doresc pe nicio pagină.

Am căutat pe internet o modalitate de a ascunde categoria de produse 'Necategorizate' și am descoperit că această problemă este răspândită. Au fost propuse mai multe soluții, inclusiv transformarea categoriei "necategorizate" într-o subcategorie și apoi ascunderea tuturor subcategoriilor sau ascunderea categoriilor folosind CSS.

Vezi https://wordpress.org/support/topic/uncategorized-product-category-still-showing-after-3-3-1/

Cu toate acestea, niciuna dintre aceste soluții nu este 'curată' sau suficient de robustă.

Soluția mea alternativă a fost să afișez doar produsele pe care vreau să fie vizibile folosind shortcode-ul categoriilor de produse (fără ID-ul categoriei necategorizate). De exemplu:

[product_categories ids="11, 19, 18, 14, 7, 8, 9, 10, 15, 98, 16, 17"]

dar aceasta nu rezolvă problema pe pagina magazinului (care nu folosește shortcode-uri).

Mă întreb dacă cineva are o metodă robustă pentru ascunderea categoriei de produse 'Necategorizate', deoarece este o problemă de actualitate și pare să fie răspândită în acest moment.

0
Toate răspunsurile la întrebare 2
1
11

Am rezolvat această problemă pe baza unui cod oferit cu amabilitate de rynoldos (https://gist.github.com/rynaldos/a9d357b1e3791afd9bea48833ff95994) după cum urmează:

Includeți următorul cod în fișierul functions.php:

/** Elimină categorii din magazin și alte pagini
 * în WooCommerce
 */
function wc_hide_selected_terms( $terms, $taxonomies, $args ) {
    $new_terms = array();
    if ( in_array( 'product_cat', $taxonomies ) && !is_admin() && is_shop() ) {
        foreach ( $terms as $key => $term ) {
              if ( ! in_array( $term->slug, array( 'uncategorized' ) ) ) {
                $new_terms[] = $term;
              }
        }
        $terms = $new_terms;
    }
    return $terms;
}
add_filter( 'get_terms', 'wc_hide_selected_terms', 10, 3 );

Acest cod se aplică paginii de magazin din WooCommerce. Dacă doriți să-l aplicați unei alte pagini, înlocuiți is_shop() cu is_page('SLUG-UL-PAGINII-DUMNEAVOASTRA').

Și eu am avut o întâmplare încercând să găsesc o soluție la această problemă, dar codul de mai sus funcționează excelent pentru mine.

24 apr. 2018 18:21:41
Comentarii

Notă pentru cititorii non-americani, slug-ul este localizat, deci în Marea Britanie, de exemplu, slug-ul se scrie cu 's', nu cu 'z'. Un bug greu de observat când nu pare să funcționeze.

izb izb
8 apr. 2020 11:24:11
2

Am găsit o metodă simplă de a ascunde categoria "Necategorizat" pe pagina magazinului: am schimbat categoria părinte "Niciuna" cu o altă categorie pe care o am.

Sper să vă fie de ajutor :-)

Marianne

14 mai 2018 19:33:40
Comentarii

Poți să clarifici... cum ai făcut asta?

Prajwol Onta Prajwol Onta
8 aug. 2019 05:08:13

Nu există o "categorie părinte" - acest răspuns nu are niciun sens.

wickywills wickywills
6 apr. 2022 17:03:30