Cum să afișezi prețurile variabile implicit în WooCommerce?

10 oct. 2013, 19:19:30
Vizualizări: 36K
Voturi: 3

Aș dori să afișez prețul variabil implicit în secțiunea "preț de la" pe pagina produsului individual, și să nu am prețul prefixat cu "de la".

Este confuz pentru cumpărător să vadă un preț cu "de la" și apoi sub acesta un preț pentru fiecare variație, care se modifică odată ce o variație este selectată.

vezi imaginea atașată

Așadar, în loc să am două seturi de câmpuri pentru preț, vreau să afișez doar unul, indiferent dacă este vorba de un produs simplu sau variabil.

exemplu afișare preț variabil WooCommerce

2
Comentarii

Ai căutat deja pe site?

kaiser kaiser
10 oct. 2013 20:10:32

Am răspuns la o întrebare foarte asemănătoare în acest răspuns aici: https://stackoverflow.com/questions/43617537/move-woocommerce-variation-price/49414293#49414293

Lucas Bustamante Lucas Bustamante
21 mar. 2018 21:08:03
Toate răspunsurile la întrebare 2
0

Funcția woocommerce_template_single_price() care se ocupă de afișarea prețului "normal" este pluggable, ceea ce înseamnă că poate fi suprascrisă adăugând acest cod în fișierul functions.php:

//suprascriere funcție woocommerce
function woocommerce_template_single_price() {
    global $product;
    if ( ! $product->is_type('variable') ) { 
        woocommerce_get_template( 'single-product/price.php' );
    }
}

Aceasta funcționează deoarece în woocommerce-template.php funcția este inițializată astfel:

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

După cum puteți vedea, condiția spune dacă funcția nu există, dar funcția există deja. Varianta pe care o adăugăm în functions.php va fi utilizată, deoarece este inițializată mai devreme.

Pentru a afișa prețul variantei atunci când este încărcată pagina unui produs variabil, trebuie să selectați o variantă implicită a produsului în pagina de editare a produsului.

10 oct. 2013 21:29:52
0

Folosesc tema "Porto" și am avut și eu această problemă. Puteți rezolva problema introducând acest cod în fișierul functions.php din tema child:

// Prețul cel mai mic

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 ) {
    // Prețul principal
    $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] );

    // Prețul de vânzare
    $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;
}

Atunci prețul dvs. va arăta ca un singur preț și va fi cel mai mic preț din produsul variabil. Funcționează. Am folosit acest cod.

20 feb. 2016 23:55:50