Nascondere i prodotti non categorizzati dalla pagina del negozio

24 apr 2018, 18:01:05
Visualizzazioni: 20.8K
Voti: 4

Quando WooCommerce è stato aggiornato alla versione 3.3, è stata aggiunta la categoria di prodotti 'Non categorizzato' che è apparsa poi in tutte le pagine (inclusa la pagina del negozio WooCommerce) dove venivano visualizzati i prodotti. Tutti i prodotti che non hanno almeno una categoria assegnata vengono quindi (logicamente, immagino) assegnati alla categoria 'Non categorizzato'.

Ho sempre utilizzato l'approccio (forse non ideale) di nascondere i prodotti stagionali rimuovendo tutte le categorie da questi prodotti quando erano fuori stagione. Questo nuovo cambiamento ha fatto sì che questi prodotti 'nascosti' apparissero improvvisamente sul sito in vendita in questa nuova categoria, cosa che non voglio in nessuna pagina.

Ho cercato sul web un modo per nascondere la categoria di prodotti 'Non categorizzato' e ho scoperto che questo problema è molto diffuso. Sono state proposte diverse soluzioni, tra cui rendere la categoria "Non categorizzato" una sottocategoria e poi nascondere tutte le sottocategorie o nascondere le categorie usando CSS.

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

Tuttavia, nessuna di queste soluzioni è abbastanza 'pulita' o robusta.

La mia soluzione alternativa è stata quella di mostrare solo i prodotti che voglio rendere visibili utilizzando lo shortcode delle categorie di prodotti (senza l'ID della categoria non categorizzata). Per esempio:

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

ma questo non risolve il problema nella pagina del negozio (che non usa shortcode).

Mi chiedo se qualcuno ha un metodo robusto per nascondere la categoria di prodotti 'Non categorizzato' poiché è un problema attuale e sembra essere molto diffuso al momento.

0
Tutte le risposte alla domanda 2
1
11

Ho risolto questo problema basandomi sul codice gentilmente fornito da rynoldos (https://gist.github.com/rynaldos/a9d357b1e3791afd9bea48833ff95994) nel seguente modo:

Includi il seguente codice nel tuo file functions.php:

/** Rimuove categorie dal negozio e altre pagine
 * in 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 );

Questo codice si applica alla pagina del negozio in WooCommerce. Se vuoi applicarlo a una pagina diversa, sostituisci is_shop() con is_page('IL_TUO_SLUG_PAGINA').

Anch'io ho avuto difficoltà nel trovare una soluzione a questo problema, ma il codice sopra funziona bene per me.

24 apr 2018 18:21:41
Commenti

Nota per i lettori non statunitensi, lo slug è localizzato, quindi nel Regno Unito, ad esempio, lo slug si scrive con una 's', non con una 'z'. Difficile da individuare quando sembra non funzionare.

izb izb
8 apr 2020 11:24:11
2

Ho trovato un modo semplice per nascondere la categoria "Uncategorized" nella pagina del negozio: ho cambiato il suo genitore da "Nessuna" a un'altra categoria che ho già.

Spero che sia utile :-)

Marianne

14 mag 2018 19:33:40
Commenti

Puoi chiarire... come hai fatto?

Prajwol Onta Prajwol Onta
8 ago 2019 05:08:13

Non esiste una "categoria genitore" - questa risposta non ha alcun senso.

wickywills wickywills
6 apr 2022 17:03:30