V základním nastavení zobrazuje WooCommerce u variabilních produktů rozsah cen od – do. Tedy cenu nejlevnější z variant a cenu nejdražší varianty. Pokud chcete zobrazení upravit například zobrazení jen ceny od, tak máme pro vás snadnou pomoc v podobě jednoduchého kódu.
Kód pro úpravu zobrazení ceny u variabilních produktů
Pro úpravu zobrazované ceny použijte následující kód, který vložíte třeba do souboru functions.php ve vaší šabloně, nebo jinde podle svého uvážení.
Cenu upravíme pomocí filteru woocommerce_get_price_html, ze kterého použijeme jen první parametr $price, který upravíme podle našich potřeb. V našem případě najdeme varianty za nejnižší a za nejvyšší cenu. Porovnáme je mezi sebou a pokud nemají stejnou hodnotu, tak přidáme naši předponu od.
add_filter( 'woocommerce_get_price_html', 'uprava_zobrazeni_ceny_variabilniho_produktu', 10, 2 );
function uprava_zobrazeni_ceny_variabilniho_produktu( $price, $product ) {
// Pokud produkt není variabilní, tak se vrátí původní cena
if( ! $product->is_type('variable') ) return $price;
$prices = $product->get_variation_prices( true );
if ( empty( $prices['price'] ) )
return apply_filters( 'woocommerce_variable_empty_price_html', '', $product );
$min_price = current( $prices['price'] );
$max_price = end( $prices['price'] );
// Vytvoříme předponu "od "
$prefix_html = '<span class="price-prefix">' . __('od ') . '</span>';
// Pokud stojí všechny varianty stejně, tak se nezobrazí slovo "od "
$prefix = $min_price !== $max_price ? $prefix_html : '';
// Složení výskledného řetězce složeného z naší předpony, zformátované ceny a suffixu
$string_ceny = $prefix . wc_price( $min_price ) . $product->get_price_suffix();
// Vrátíme upravenou cenu, která bude dále upravitelná stejným filterem
return apply_filters( 'woocommerce_variable_price_html', $string_ceny, $product );
}
Tento kód nám upraví zobrazení ceny jak v katalogu, tak na stránce samotného produktu. Pokud chcete zobrazení ceny zobrazit pouze někde, tak lze použít podmínky.
