Cambiare i prezzi nei prodotti variabili di WooCommerce

Range prezzi prodotti variabili in WooCommerce

Con la versione 2.1 del 2014, gli sviluppatori di WooCommerce hanno avuto la bella pensata di cambiare il formato del prezzo dei prodotti variabili.

Prima era il più piacevole “A partire da:”, da WooCommerce 2.1 in poi è diventato il range “prezzo minimo – prezzo massimo”, a cui ci siamo abituati ma che non riesco proprio a farmelo piacere.

Sono sicuro che in taluni casi il range di prezzi minimo/massimo sia più indicato, ma negli store online di mezzo mondo siamo ancora abituati al vecchio sistema, e anche io lo preferisco.

In particolare ritengo sia più indicato in quegli store dove la differenza tra variazioni è minima, come per abbigliamento e accessori.

Per modificare il formato del prezzo nei prodotti variabili di WooCommerce, ci viene incontro il classico snippet php.

Come cambiare il formato dei prezzi nei prodotti variabili di WooCommerce

Per sostituire il range di prezzi minimo/massimo con il più amichevole (e ammiccante) “A partire da:”, è sufficiente aggiungere un filtro al file functions.php del tema, ovviamente meglio se si sta utilizzando un tema child:

// Prezzi WooCommerce prodotti variabili senza range
function rox_varb_price_range( $wcv_price, $product ) {
 
    $prefix = sprintf('%s: ', __('A partire da:', 'wooprice_norange'));
 
    $wcv_reg_min_price = $product->get_variation_regular_price( 'min', true );
    $wcv_min_sale_price    = $product->get_variation_sale_price( 'min', true );
    $wcv_max_price = $product->get_variation_price( 'max', true );
    $wcv_min_price = $product->get_variation_price( 'min', true );
 
    $wcv_price = ( $wcv_min_sale_price == $wcv_reg_min_price ) ?
        wc_price( $wcv_reg_min_price ) :
        '<del>' . wc_price( $wcv_reg_min_price ) . '</del>' . '<ins>' . wc_price( $wcv_min_sale_price ) . '</ins>';
 
    return ( $wcv_min_price == $wcv_max_price ) ?
        $wcv_price :
        sprintf('%s%s', $prefix, $wcv_price);
}
 
add_filter( 'woocommerce_variable_sale_price_html', 'rox_varb_price_range', 10, 2 );
add_filter( 'woocommerce_variable_price_html', 'rox_varb_price_range', 10, 2 );

Il risultato è quello che si vede qui sotto.

Corsi di Formazione WordPress - Prezzi prodotti variabili WooCommerce corretti

Si può sostituire la stringa “A partire da:” della riga 4 con la formula preferita.

Al posto di “A partire da:”, molti preferiscono il semplice “Da:”, dato che su molti store in lingua inglese siamo abituati a vedere il più semplice “From:”

Lo snippet mantiene la differenza di prezzo nei prodotti scontati, anteponendo al prezzo in saldo il prezzo originale grigio e barrato.

Lo snippet è stato testato con WooCommerce 4.1.0, WordPress 5.4.1, e con i temi Storefront e Flatsome.

Aggiornamento e adattamento di un articolo originale del 17 febbraio 2014.

Che ne pensi?
Domande? Suggerimenti?
Lascia un commento…

Condividi se ti è piaciuto!

Condividi su facebook
Condividi su twitter
Condividi su linkedin
Condividi su whatsapp

Maggori informazioni:

Roberto Rota

Roberto Rota

Libero professionista, un "artigiano del web", lavoro nella comunicazione in rete da quando esiste Internet. Mi occupo principalmente di assistenza su WordPress e assistenza e consulenza WooCommerce, seguo la realizzazione di progetti web, in particolare siti di e-commerce, visibilità e comunicazione in rete. Il mio curriculum è su Linkedin, e mi puoi trovare anche su Instagram, FaceBook e Twitter.

CONTRIBUISCI A QUESTO SITO
Se il mio lavoro ti è stato di aiuto,
e vuoi che io continui a publbicare,
contribuisci allo sviluppo di questo sito
con una donazione su PayPal.

39 commenti su “Cambiare i prezzi nei prodotti variabili di WooCommerce”

  1. gabriele rosatini

    Ciao Roberto,

    veramente bella soluzione. Ma se volessi applicare questa funzione solo ad una specifica categoria?

    1. Ciao Gabriele,

      bisognerebbe guardarci visto che lo snippet agisce sia sul singolo prodotto che sui loop degli archivi, magari appena mi capita cerco di fare qualche prova.

      rob

  2. Ciao Roberto in un negozio dove si vendono merci al pezzo e merci al kg….
    come si imposta un “prezzo al Kg” per quel prodotto e il prezzo al pezzo per gli altri prodotti?
    Come me la cavo?

  3. Ciao Roberto,
    una domanda al volo, ho provato il codice da te creato e funziona perfettamente… l’unico mio problema è che mi sconpare anche la dicitura “iva esclusa”.

    Come posso risolvere questa cosa?

    Ti ringrazio anticipatamente!!

    1. Ciao Stefano, con un po’ di tempo a disposizione si potrebbe richiamare la funzione relativa alla dicitura, ma per una soluzione veloce puoi aggiungerla in html nella riga 13, nella pare che racchiude l’ultimo tag “ins”.

  4. sei un grandissimo! Grazie! Mi hai salvato. io lo Ho usato per il prezzo al kg. e ho modificato il codice impostandolo sul prezzo massimo (nel mio caso 1 kg). Posto qu se serve.

    // Use WC 2.0 variable price format
    add_filter( ‘woocommerce_variable_sale_price_html’, ‘wc_wc20_variation_price_format’, 10, 2 );
    add_filter( ‘woocommerce_variable_price_html’, ‘wc_wc20_variation_price_format’, 10, 2 );
    function wc_wc20_variation_price_format( $price, $product ) {
    $max_price = $product->get_variation_price( ‘max’, true );
    $price = sprintf( __( ‘Prezzo al kg: %1$s’, ‘woocommerce’ ), wc_price( $max_price ) );
    return $price;
    }

    Grazie ancora!

  5. salve chiedo un aiuto a tutti voi, io sono molto inesperta,
    stavo programmando uno sconto tramite codice coupon per i miei clienti.
    il problema è questo
    io effettuo già normalmente uno sconto ( ex • maglia €57 barrato €50)
    ora attivando un coupon sconto la percentuale viene applicata a €50 mentre io vorrei fosse da €57(prezzo di partenza prodotto)
    come posso sospendere momentaneamente questo nostro piccolo sconto senza andare a modificare ad uno uno i prezzi sia prima dell attivazione coupon / e ovviamente al termine dell utilizzo codice che i prezzi tornino con il nostro piccolo sconto.

    spero di essere riuscita a spiegarmi.

    grazie per l’aiuto.

  6. Buongiorno.
    Ho realizzato un sito e-commerce che funziona perfettamente ma ora mi viene chiesto di permettere alle aziende con P.IVA europea, di poter acquistare i prodotti eliminando l’IVA nel carrello e nel conteggio, mentre deve rimanere per i clienti senza P.IVA.

    Ho inserito un plugin che tramite iscrizione al sito, applica uno sconto pari all’IVA ma la soluzione non piace ai miei clienti poiché l’IVA viene ricalcolata comunque dopo lo sconto effettuato e che vorrebbero proprio eliminare la voce IVA dal carrello.

    Potrebbe aiutarmi a risolvere il problema?
    La ringrazio infinitamente.
    Ivano

      1. Ciao Roberto.
        Ora scarico il plugin e controllo le funzionalità. Grazie infinite per il prezioso aiuto, non conoscevo questo plugin.
        Buona giornata e ancora grazie.
        Ivano

  7. Stefano Evangelisti

    Ciao Davide, Ciao R0berto, avete trovato la soluzione a questo dettaglio. Cioè visualizzare la strinfa a partire da solo se il prezzo è differente?

  8. Ciao a tutti,
    innanzitutto ringrazio Roberto per questo articolo perchè mi è stato utilissimo, molto chiaro e semplice nella spiegazione, soprattutto per me che sono agli inizi e non capisco molto di woo commerce. Ma ho un’altro problema da risolvere e spero che mi siate tutti d’aiuto.
    Ho modificato il file function php del mio tema (hill) e finalmente la dicitura “a partire da..” funziona, però non ho capito come impostare il prezzo più basso. Per essere più chiara : sto lavorando ad un sito dove ci sono delle variazioni sulla quantità, ad esempio se acquisto 100 pezzi di un determinato articolo ho un prezzo, se ne acquisto 200 ne avrò un altro e così via. Ma ovviamente avendo associato il Bulk per le variazioni, mi applica il primo prezzo (cioè quello piu alto, in base alla quantità minima) per poter applicare la scontistica quando acquisto quantità maggiori.
    Come devo muovermi?

    1. Bella domanda…

      Ovviamente lo snippet prende il prezzo più basso direttamente dalle variazioni, ma se ci sono altri fattori di mezzo la faccenda si complica.

      Così su due piedi non saprei, dipende da cosa usi per generare gli sconti. Se si tratta di un plugin, potresti chiedere supporto al suo sviluppatore mostrandogli lo snippet, magari sa già come adattarlo.

      rob

  9. ciao roberto, grazie per la soluzione che adesso fa al caso mio.
    Vorrei sapere una cosa: tutti parlate di tema child ma vi riferite al tema (estetico -twentyfourteen per esempio) oppure alla creazione di un tema child di woocommerce?

    Nel caso si trattasse di un tema child di woocommerce come devo fare per crearlo?

    1. Ciao Gian, credo tu abbia bisogno di un po’ di chiarezza sui temi child.

      Quando usi un tema su wordpress, se per caso lo modifichi uno dei suoi files al primo aggiornamento azzeri le modifiche.

      Per evitare questo, si crea un tema figlio, che si appoggia al tema originale, dove si creano tutte le modifiche del caso senza modificar eil tema originale.

      rob

  10. Ciao Roberto, stamattina ho aggiornato woocommerce all’ultima versione e adesso il filtro non funziona più! :*( che può essere successo? Grazie

  11. Ciao Roberto e grazie mille per l’utile articolo.
    L’unico problema è che nei prodotti in offerta non compare più il prezzo di listino barrato (che compariva anche di colore rosso) prima del prezzo reale di vendita nella lista dei prodotti.

    C’è un modo per modificare la funzione PHP e ripristinare questa funzionalità?
    Altrimenti scorrendo i prodotti non si capisce più quando un articolo è in offerta.

    Grazie mille!

  12. Ciao Roberto, grazie per l’articolo utilissimo per il mio caso.
    Ti chiedo però se è possibile, rimuovere la stringa “A partire da” dai prodotti variabili che non hanno variazione di prezzo.
    In quanto anche un prodotto variabile, dove c’è solo la variabile del colore ma con un unico prezzo viene mostrato anch’esso con la dicitura “A partire da”.
    Spero di essermi spiegato e ti ringrazio ancora

    1. Ciao Davide, ottima osservazione.

      Lo snippet è semplice, ricava il prezzo minore e aggiunge la stringa.

      Bisognerebbe lavorarci un po’, per trovare il modo di distinguere i prodotti variabili con un solo prezzo, non dovrebbe essere impossibile.

      rob

  13. ciao Roberto,
    ho aggiunto il codice scritto e funziona alla grande!!!
    Solo ch enella versione inglese non si traduce la scritta ” apartire da:” ..forse perchè si trova dentro il file functions.php?
    Come plugin di traduzione utilizzo wpml e nella ricerca delle stringhe non compare nulla.
    come posso fare?
    grazie ancora
    Mighè

  14. Ciao Roberto,
    stavo cercando proprio questa modifica! Condividiamo la stessa idea… meglio “A partire da”! Purtroppo non riesco a trovare il punto dove poter fare la modifica… mi potresti dire con esattezza il punto? Faccendo riferimento quindi al file function.php del theme..
    Ciao grazie mille
    DAVIDE

    1. Ciao Davide, quando si aggiunge una nuova funzione al file functions.php in genere le si inseriscono alla fine del file.

      È sconsigliabile però modificare il tema originale ma usare un tema child, altrimenti al primo aggiornamento del tema perdi tutte le modifiche.

      rob

  15. Ciao. Replico a me stesso specificando che bastava aggiungere un argomento alla funzione sprintf.
    Quindi:

    sprintf( __( 'A partire da: %1$s', 'woocommerce', '€ IVA incl.'), wc_price( $min_price ) );
    return $price;

  16. Ciao Rob!
    Una domanda: come posso aggiungere il suffisso dell’IVA al prezzo più basso?
    Con questo codice ora viene mostrato il prezzo più basso del range. Ma non ho più il suffisso della tassazione. I prezzi singoli, invece, sì.
    Grazie sin d’ora per il tuo supporto.

    1. Ciao Alessandro, scusa. Ho lo stesso problema, vorrei visualizzare solo il prezzo più basso, ma non capisco dove modificare il codice. Puoi aiutarmi? grazie

  17. Carissimo Roberto volevo chiederti un aiuto: aggiornando woocommerce mi sono accorta che sono spariti i titoli che indicano gli attributi del prodotto nella frontend, come misura scegli xxl,xx e colore.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.

Cerca nel sito:

Assistenza specializzata WordPress e WooCommerce

Altri articoli

Mandami un messaggio

Ciao, come posso aiutarti?