Come visualizzare i prezzi variabili di default in WooCommerce?

10 ott 2013, 19:19:30
Visualizzazioni: 36K
Voti: 3

Vorrei visualizzare il prezzo variabile di default nella scheda "prezzo a partire da" nella pagina del singolo prodotto, e non avere il prezzo "a partire da".

È confusionario per l'acquirente vedere un prezzo "a partire da" e poi sotto di esso un prezzo per ogni variazione, che cambia una volta che viene scelta una variante.

vedi immagine allegata

Quindi invece di avere due serie di campi prezzo, voglio visualizzare solo uno, sia che si tratti di un prodotto singolo o variabile.

Esempio di visualizzazione prezzi variabili in WooCommerce

2
Commenti

Hai già cercato nel sito?

kaiser kaiser
10 ott 2013 20:10:32

Ho risposto a una domanda molto simile in questa risposta qui: https://stackoverflow.com/questions/43617537/move-woocommerce-variation-price/49414293#49414293

Lucas Bustamante Lucas Bustamante
21 mar 2018 21:08:03
Tutte le risposte alla domanda 2
0

La funzione woocommerce_template_single_price() che gestisce la visualizzazione del prezzo "normale" è pluggable, il che significa che può essere sovrascritta inserendo questo nel tuo functions.php:

//sovrascrive la funzione di WooCommerce
function woocommerce_template_single_price() {
    global $product;
    if ( ! $product->is_type('variable') ) { 
        woocommerce_get_template( 'single-product/price.php' );
    }
}

Questo funziona perché in woocommerce-template.php la funzione viene inizializzata così:

if ( ! function_exists( 'woocommerce_template_single_price' ) ) {
    function woocommerce_template_single_price() {
        woocommerce_get_template( 'single-product/price.php' );
    }
}

Come puoi vedere, la condizione dice se la funzione non esiste, ma la funzione esiste già. Quella che inseriamo nel functions.php verrà utilizzata perché viene inizializzata prima.

Per mostrare il prezzo della variazione quando viene caricata una pagina di prodotto singolo con un prodotto variabile, devi selezionare una variazione di prodotto predefinita nella pagina di modifica del prodotto.

10 ott 2013 21:29:52
0

Sto utilizzando il tema "Porto" e ho avuto anche io questo problema. Puoi risolvere il problema inserendo questo codice nel tuo functions.php del child theme:

// Prezzo più basso

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 ) {
    // Prezzo Principale
    $prices = array( $product->get_variation_price( 'min', true ), $product->get_variation_price( 'max', true ) );
    $price = $prices[0] !== $prices[1] ? sprintf( __( '%1$s', 'woocommerce' ), wc_price( $prices[0] ) ) : wc_price( $prices[0] );

    // Prezzo in Sconto
    $prices = array( $product->get_variation_regular_price( 'min', true ), $product->get_variation_regular_price( 'max', true ) );
    sort( $prices );
    $saleprice = $prices[0] !== $prices[1] ? sprintf( __( '%1$s', 'woocommerce' ), wc_price( $prices[0] ) ) : wc_price( $prices[0] );

    if ( $price !== $saleprice ) {
        $price = '<del>' . $saleprice . '</del> <ins>' . $price . '</ins>';
    }

    return $price;
}

In questo modo il tuo prezzo apparirà come un prezzo singolo e sarà il prezzo più basso tra le variabili del prodotto. Funziona. L'ho utilizzato personalmente.

20 feb 2016 23:55:50