Messaggio "aggiunto al carrello" di Woocommerce nella pagina principale (home)

30 ago 2016, 15:34:54
Visualizzazioni: 28.3K
Voti: 0

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 &rarr;', '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 &rarr;', 'woocommerce'), __('Prodotto aggiunto con successo al carrello.', 'woocommerce') );
    endif;
        return $message;
}

ma non succede nulla. Qualcuno può aiutarmi?

0
Tutte le risposte alla domanda 5
0

La soluzione era semplice come dovrebbe essere: ho semplicemente aggiunto questo pezzo di codice nel mio file .php della pagina principale:

do_action( 'woocommerce_before_single_product' );
30 ago 2016 16:36:05
0

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 &rarr;', '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 &rarr;', '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 ); 
30 ago 2016 15:42:18
0

WooCommerce ha questa funzione separata

wc_print_notices();

quindi usa semplicemente quella nelle tue pagine template. Non è necessario usare echo o print, usa la funzione così com'è.

29 set 2020 04:10:48
1

Copia questo codice e incollalo nel tuo tema page.php o singlepage.php

do_action('woocommerce_before_single_product');
10 nov 2017 09:15:03
Commenti

Nota: Questa soluzione stamperà tutto ciò che è agganciato all'hook woocommerce_before_single_product. Sconsiglio vivamente questo approccio.

Sillo Sillo
20 apr 2018 02:07:46
0

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();
}
14 apr 2023 12:59:35