Ascunde produsele necategorizate din pagina magazinului
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.

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.
