Čo tento snippet robí
WooCommerce štandardne zobrazuje len text „Zľava“.
Tento kód zobrazí konkrétne percento zľavy (napr. -25%).
Funguje:
- pre simple produkty
- aj pre variable produkty (vyberie najvyššiu zľavu)
Spoľahlivá tvorba a správa webstránok
Hľadáte spoľahlivého dodávateľa webovej stránky či internetového obchodu? Sme tu pre vás.
Kód
Vlož do functions.php alebo vlastného pluginu:
add_filter( 'woocommerce_sale_flash', function( $html, $post, $product ) { if ( ! $product instanceof WC_Product ) {
$product = wc_get_product( $post->ID );
} if ( ! $product ) {
return $html;
} $percentage = 0; if ( $product->is_type( 'variable' ) ) {
foreach ( $product->get_children() as $child_id ) {
$variation = wc_get_product( $child_id ); if ( ! $variation ) {
continue;
} $regular = (float) $variation->get_regular_price();
$sale = (float) $variation->get_sale_price(); if ( $regular > 0 && $sale > 0 && $sale < $regular ) {
$current_percentage = (int) round( ( ( $regular - $sale ) / $regular ) * 100 ); if ( $current_percentage > $percentage ) {
$percentage = $current_percentage;
}
}
}
} else {
$regular = (float) $product->get_regular_price();
$sale = (float) $product->get_sale_price(); if ( $regular > 0 && $sale > 0 && $sale < $regular ) {
$percentage = (int) round( ( ( $regular - $sale ) / $regular ) * 100 );
}
} return $percentage > 0
? '<span class="onsale">-' . esc_html( $percentage ) . '%</span>'
: $html;}, 10, 3 );
Kam to vložiť
functions.php(child theme)
alebo ideálne:- vlastný mini plugin
Čo otestovať
- simple produkt so zľavou
- variable produkt (rôzne varianty)
- archive (shop, kategórie)
- detail produktu
Tip (CSS)
Ak chceš badge zvýrazniť:
.onsale {
background: #FD2307;
color: #fff;
font-weight: bold;
}
Pozor
- ak má produkt nulovú cenu → nič sa nezobrazí
- ak používaš custom theme → môže mať vlastný sale badge
Záver
Malý zásah, ale veľký efekt na konverzie.
Zákazník okamžite vidí hodnotu zľavy — nemusí počítať.
O autorovi
Volám sa Marián Kohn a pomáham firmám riešiť technické problémy na WordPress a WooCommerce weboch.
Špecializujem sa na opravy spadnutých webov, výkon, bezpečnosť a riešenie chýb, ktoré brzdia biznis.
Keď WordPress zlyhá, zasahujem.