Messaggio "aggiunto al carrello" di Woocommerce nella pagina principale (home)
Sto realizzando un e-commerce con WooCommerce. Nella mia homepage c'è uno slider di prodotti con il pulsante aggiungi al carrello sotto ogni prodotto. Quando clicco sul pulsante, il prodotto viene aggiunto al carrello con successo, ma senza alcun messaggio.
Navigando su Internet, ho scoperto che i messaggi possono essere aggiunti nella pagina del negozio, nella pagina della categoria prodotti e nella pagina dei tag prodotti (in questo articolo). Secondo l'articolo, dovrei usare un filtro/hook per intercettare l'evento add-to-cart e visualizzare il messaggio nella pagina principale.
Ho provato questo:
add_filter( 'woocommerce_add_to_cart_message', 'custom_add_to_cart_message' );
function custom_add_to_cart_message() {
global $woocommerce;
// Output dei messaggi di successo
if (get_option('woocommerce_cart_redirect_after_add')=='yes') :
$return_to = get_permalink(woocommerce_get_page_id('shop'));
$message = sprintf('<a href="%s" class="button">%s</a> %s', $return_to, __('Continua lo Shopping →', 'woocommerce'), __('Prodotto aggiunto con successo al carrello.', 'woocommerce') );
else :
$message = sprintf('<a href="%s" class="button">%s</a> %s', get_permalink(woocommerce_get_page_id('cart')), __('Visualizza Carrello →', 'woocommerce'), __('Prodotto aggiunto con successo al carrello.', 'woocommerce') );
endif;
return $message;
}
ma non succede nulla. Qualcuno può aiutarmi?

Questo articolo ti aiuterà con questo problema https://docs.woocommerce.com/document/woocommerce-cart-notices/
Oppure puoi inserire il seguente codice nel file functions.php per ottenere il messaggio di successo
add_filter( 'woocommerce_add_to_cart_message', 'custom_add_to_cart_message' );
function custom_add_to_cart_message() {
global $woocommerce;
// Mostra i messaggi di successo
if (get_option('woocommerce_cart_redirect_after_add')=='yes') :
$return_to = get_permalink(woocommerce_get_page_id('shop'));
$message = sprintf('<a href="%s" class="button">%s</a> %s', $return_to, __('Continua gli acquisti →', 'woocommerce'), __('Prodotto aggiunto al carrello con successo.', 'woocommerce') );
else :
$message = sprintf('<a href="%s" class="button">%s</a> %s', get_permalink(woocommerce_get_page_id('cart')), __('Vedi carrello →', 'woocommerce'), __('Prodotto aggiunto al carrello con successo.', 'woocommerce') );
endif;
return $message;
}
function your_woo_ajax_solution( $translation, $text, $domain ) {
if ( $domain == 'woocommerce' ) { // nome del tuo dominio
if ( $text == 'View Cart' ) { // testo attualmente visualizzato
$translation = 'Prodotto aggiunto al carrello con successo.'; // Il testo che desideri mostrare
}
}
return $translation;
}
add_filter( 'gettext', 'your_woo_ajax_solution', 10, 3 );

Aggiungi un hook personalizzato alla pagina dove vuoi mostrare i messaggi di WooCommerce. In questo modo:
do_action('my_custom_hook');
Una volta aggiunto l'hook sopra, inserisci semplicemente il seguente codice nel file functions.php del tuo tema.
add_action('my_custom_hook', 'show_woo_notices');
function show_woo_notices() {
wc_print_notices();
}
