Reemplazae el texto «Oferta» por el porcentaje de descuento en WooCommerce
Este código PHP sustituye la etiqueta predeterminada «Oferta» por el porcentaje de descuento aplicado al producto. Esto no solo mejora la apariencia de tu tienda, sino que también proporciona información clara a tus clientes sobre el ahorro que obtienen.
Añade el siguiente snippet al archivo functions.php de tu tema activo o utiliza un plugin de snippets:
function sale_badge_percentage() {
global $product;
if ( ! $product->is_on_sale() ) return;
if ( $product->is_type( 'simple' ) ) {
$max_percentage = ( ( $product->get_regular_price() - $product->get_sale_price() ) / $product->get_regular_price() ) * 100;
} elseif ( $product->is_type( 'variable' ) ) {
$max_percentage = 0;
foreach ( $product->get_children() as $child_id ) {
$variation = wc_get_product( $child_id );
$price = $variation->get_regular_price();
$sale = $variation->get_sale_price();
$percentage = 0;
if ( $price != 0 && ! empty( $sale ) ) $percentage = ( $price - $sale ) / $price * 100;
if ( $percentage > $max_percentage ) {
$max_percentage = $percentage;
}
}
}
if ( $max_percentage > 0 ) echo "<span class='onsale'>-" . round($max_percentage) . "%</span>";
}
add_action( 'woocommerce_sale_flash', 'sale_badge_percentage', 25 );
¿Cómo funciona?
- Identifica productos en oferta: El código verifica si el producto está en oferta utilizando el método is_on_sale().
- Calcula el porcentaje:
- Para productos simples, resta el precio de oferta del precio regular y calcula el porcentaje de descuento.
- Para productos variables, evalúa cada variación y calcula el porcentaje máximo de descuento.
- Reemplaza el texto: Si hay un descuento, muestra el porcentaje redondeado en lugar de «On Sale».
Ventajas:
- Claridad: Los clientes pueden ver exactamente cuánto están ahorrando, lo que puede incentivar la compra.
- Flexibilidad: Compatible con productos simples y variables.
- Fácil personalización: Puedes modificar el estilo de la etiqueta ajustando la clase CSS onsale en tu archivo de estilos.
Antes y después


Conclusión:
Este snippet es una excelente forma de mejorar la visualización de tus productos en oferta.