WooCommerce - come visualizzare la categoria del prodotto sopra l'immagine?
Sono un principiante nel modificare WooCommerce. Spero che qualcuno possa aiutarmi con un problema che sto avendo mentre cerco di fare una piccola modifica al plugin per soddisfare una richiesta del mio cliente.
Sto cercando di modificare WooCommerce per visualizzare il nome della categoria per ogni prodotto. Voglio che il nome della categoria venga mostrato sopra l'immagine del prodotto nella pagina principale del negozio (la vista dove molti prodotti vengono mostrati contemporaneamente sullo schermo)
Ho cercato in giro, ma non riesco a trovare come richiamare product->category per ottenere il nome della categoria per ogni prodotto visualizzato.
Nei file di WooCommerce, ho trovato content-product.php
(in templates/content-product.php)
E vorrei inserire la categoria per ogni prodotto aggiungendo a questa azione:
do_action( 'woocommerce_before_shop_loop_item_title' );
Capisco che posso aggiungere una funzione nel functions.php del mio tema per iniettare del nuovo codice in 'woocommerce_before_shop_loop_item_title'
Ma non riesco a capire come ottenere la categoria per ogni prodotto.
Qualcuno può aiutarmi? O dirmi dove potrei trovare la risposta?
Ogni aiuto sarà molto apprezzato, grazie!

Il titolo del prodotto viene aggiunto all'hook woocommerce_single_product_summary
con priorità 5, quindi dovrai aggiungere lo stesso hook con una priorità più bassa (prima). Dovrai aggiungere questo codice al file functions.php del tuo tema. Presumo che quando dici "categoria" ti riferisci alla categoria del prodotto WooCommerce, quindi questo codice dovrebbe restituire la prima categoria e stamparla prima del titolo del prodotto:
function wpa89819_wc_single_product(){
$product_cats = wp_get_post_terms( get_the_ID(), 'product_cat' );
if ( $product_cats && ! is_wp_error ( $product_cats ) ){
$single_cat = array_shift( $product_cats ); ?>
<h2 itemprop="name" class="product_category_title"><span><?php echo $single_cat->name; ?></span></h2>
<?php }
}
add_action( 'woocommerce_single_product_summary', 'wpa89819_wc_single_product', 2 );

Grazie mille! la tua soluzione ha funzionato alla perfezione e sì, hai indovinato che mi riferivo alla categoria di prodotto WooCommerce, non alla categoria di pagina WordPress.

Ottimo! Se ha funzionato e risolto la tua domanda, potresti selezionarla come risposta?

Ciao helgatheviking, grazie ancora per il tuo aiuto. Scusa, sono un principiante e non riesco a capire come segnare questa come risposta?!?

Dovrebbe esserci un segno di spunta accanto a tutte le risposte. Quando clicchi su di esso diventerà verde per indicare che questa è la risposta corretta. Scegliere le risposte mantiene alta la tua percentuale in modo che le persone saranno più propense ad aiutarti in futuro. Per favore leggi la parte "come faccio a fare domande" delle FAQ

hai bisogno della funzione get_categories, che accetta i seguenti argomenti:
get_categories( $separator, $before, $after )
quindi nella sua forma più semplice (assumendo solo una categoria per prodotto), basta aggiungere <?php echo $product->get_categories(); ?>
al tuo content-product.php (riga 53).
Se hai più categorie, puoi farlo come nella pagina del singolo prodotto:
<?php echo $product->get_categories( ', ', '<span class="posted_in">' . _n( 'Categoria:', 'Categorie:', sizeof( get_the_terms( $post->ID, 'product_cat' ) ), 'woocommerce' ) . ' ', '.</span>' ); ?>

nota che se vuoi visualizzare il titolo sopra la miniatura, dovresti inserirlo alla riga 43, ma questo complica le cose poiché eventuali tag 'sale' ecc. potrebbero rimanere al loro posto (invece di spostarsi insieme alla miniatura).
