Precio de liquidación en WooCommerce: cómo mostrar una segunda rebaja sobre el precio ya rebajado

LucusHost, el mejor hosting

Seguro que lo has visto alguna vez comprando online: entras en una ficha de producto y no ves uno, ni dos, sino tres precios. El normal, tachado. El rebajado, también tachado. Y por debajo, un tercer precio, más bajo que los otros dos, que es el que realmente vas a pagar.

Es la «rebaja de la rebaja». Un recurso que usan mucho las tiendas de moda(como el ejemplo que te pongo abajo de Emestudios), jardinería o cualquier negocio con stock estacional cuando necesitan vaciar inventario rápido: ya habían aplicado un descuento normal, pero como el producto sigue sin moverse (o se acerca el cambio de temporada), aplican una segunda rebaja encima, normalmente etiquetada como liquidación.

descuento del descuento woocommerce

¿Por qué no simplemente bajar el precio directamente al valor final, sin mostrar el histórico de rebajas? Porque el efecto visual importa. Ver tres precios en cascada comunica al comprador que ese producto ha ido perdiendo valor progresivamente, y que la oportunidad de comprarlo barato es todavía más urgente que con una rebaja normal. Es psicología de precios pura: cuantos más «peldaños» de descuento ve el usuario, mayor percibe el ahorro, aunque el precio final sea exactamente el mismo que si hubieras puesto ese número directamente.

WooCommerce, de fábrica, solo contempla dos precios: el normal y el de oferta. Si quieres añadir ese tercer escalón, necesitas un pequeño desarrollo a medida. Así que en este artículo te explico cuándo te conviene tener esta funcionalidad en tu tienda, qué beneficios reales tiene, y te dejo el snippet completo y funcional para que lo puedas implementar tú mismo.

¿Cuándo te conviene aplicar esta funcionalidad?

No es algo que necesites tener activo todo el año ni en todo tu catálogo (de hecho, mi consejo personal es que lo actives puntualmente, para productos concretos, y no como sistema permanente de precios). Estos son los escenarios donde de verdad aporta valor:

  • Liquidación de stock antes de descatalogar un producto. Es el caso de uso más claro. Tienes una referencia que vas a dejar de vender —quizá porque el proveedor la ha descontinuado, quizá porque no ha funcionado como esperabas— y necesitas venderla cuanto antes. Ya la tenías en oferta, pero necesitas darle ese empujón final.
  • Campañas fuertes de descuento sobre productos que ya estaban rebajados. Piensa en un Black Friday o un Cyber Monday: tienes productos que llevan semanas en oferta normal, y quieres aplicarles un descuento extra solo durante esos días concretos. En vez de recalcular manualmente el precio final y perder el rastro visual de la oferta original, el cliente ve claramente cuánto se está ahorrando en cada escalón.
  • Tiendas de temporada que necesitan vaciar inventario rápido. Moda, jardinería, decoración de temporada… cualquier negocio donde el stock pierde valor según pasa el tiempo. Si en marzo tenías rebajas de invierno y en mayo sigues con esas prendas en el almacén, aplicar una segunda rebaja de liquidación es mucho más efectivo que simplemente bajar el precio de oferta.
  • Productos con rotación muy lenta. Si llevas un tiempo viendo que un producto concreto, pese a estar en oferta, no se mueve, esta es una forma de darle una segunda oportunidad sin tener que reconfigurar toda la ficha desde cero.

Lo que tienen en común todos estos casos es que ya existía una rebaja previa y quieres comunicar que se profundiza en ella, no que estás simplemente cambiando el precio.

Qué beneficios tiene para tu tienda

Más allá del componente psicológico que ya he mencionado en la introducción, aplicar este tipo de rebaja en cascada tiene beneficios muy concretos:

  1. Refuerza la percepción de ahorro: No es lo mismo que el usuario vea «29,99 €» que vea «49,99 € → 39,99 € → 29,99 €». Aunque el precio final sea idéntico, el cerebro procesa mejor el ahorro cuando lo ve en pasos. Cada tachado adicional es una prueba visual de que el precio ha bajado de verdad, no es una cifra que te acabas de inventar.
  2. Genera sensación de urgencia real: Una segunda rebaja comunica que el producto está en su última fase antes de desaparecer del catálogo. Esto empuja a decisiones de compra más rápidas, sobre todo en usuarios que ya tenían el producto en el radar pero no habían terminado de decidirse.
  3. Te diferencia de una simple bajada de precio: Si tu competencia también está en rebajas, un «38% de descuento» plano se pierde entre docenas de banners parecidos. Mostrar el histórico completo de descuentos (normal → oferta → liquidación) cuenta una historia, y las historias generan más confianza que una cifra suelta.
  4. Te permite liquidar stock sin «quemar» tu precio de referencia: Aquí viene mi parte de consejo honesto: si bajas directamente el precio normal al precio de liquidación, pierdes la referencia de valor del producto para futuras subidas o restocks. Manteniendo los tres escalones, el histórico de precios queda «documentado» en la propia ficha, y cuando quites la liquidación, el precio de oferta normal sigue teniendo sentido para el comprador.
  5. Es reversible: Al ser un campo independiente, lo activas solo en los productos que te interesan y lo desactivas en el momento que quieras, sin tocar el precio de oferta que ya tenías configurado. No necesitas recalcular nada a mano.

Dicho esto, una advertencia antes de pasar al código: esto no es un truco para inflar descuentos ficticios. Los tres precios deben corresponder a rebajas reales que haya tenido el producto (lo veremos con más detalle en la FAQ sobre la Directiva Ómnibus). Usado con honestidad, es una herramienta de conversión potente; usado para maquillar precios, es ilegal y además erosiona la confianza de tus clientes a medio plazo.

¿Cómo implementarlo en WooCommerce?

Como siempre, puedes pegarlo en el functions.php de tu tema hijo, o si prefieres no tocar código directamente, en un plugin de snippets como te explico aquí o en el vídeo insetado en este artículo:

add_action( 'woocommerce_product_options_pricing', 'dl_add_clearance_price_field' );
function dl_add_clearance_price_field() {
    woocommerce_wp_text_input( array(
        'id'                => '_dl_clearance_price',
        'label'             => __( 'Precio de liquidación', 'woocommerce' ) . ' (' . get_woocommerce_currency_symbol() . ')',
        'desc_tip'          => true,
        'description'       => __( 'Si se rellena, se mostrará como una segunda rebaja sobre el precio rebajado. El precio normal y el rebajado aparecerán tachados y este será el precio final de venta.', 'woocommerce' ),
        'data_type'         => 'price',
        'wrapper_class'     => 'show_if_simple show_if_variable',
    ) );
}

add_action( 'woocommerce_process_product_meta', 'dl_save_clearance_price_field' );
function dl_save_clearance_price_field( $product_id ) {
    if ( isset( $_POST['_dl_clearance_price'] ) ) {
        $clearance_price = wc_format_decimal( sanitize_text_field( wp_unslash( $_POST['_dl_clearance_price'] ) ) );

        if ( $clearance_price !== '' && is_numeric( $clearance_price ) ) {
            update_post_meta( $product_id, '_dl_clearance_price', $clearance_price );
        } else {
            delete_post_meta( $product_id, '_dl_clearance_price' );
        }
    }
}

add_filter( 'woocommerce_product_get_price', 'dl_apply_clearance_price', 100, 2 );
add_filter( 'woocommerce_product_variation_get_price', 'dl_apply_clearance_price', 100, 2 );
function dl_apply_clearance_price( $price, $product ) {
    $clearance_price = $product->get_meta( '_dl_clearance_price' );

    if ( $clearance_price !== '' && is_numeric( $clearance_price ) ) {
        return $clearance_price;
    }

    return $price;
}

add_filter( 'woocommerce_get_price_html', 'dl_clearance_price_html', 100, 2 );
function dl_clearance_price_html( $price_html, $product ) {
    $clearance_price = $product->get_meta( '_dl_clearance_price' );

    if ( $clearance_price === '' || ! is_numeric( $clearance_price ) ) {
        return $price_html;
    }

    $regular_price = $product->get_regular_price();

    $sale_price = $product->get_sale_price();

    $second_strike = $sale_price !== '' ? $sale_price : $regular_price;

    if ( ! $regular_price ) {
        return $price_html;
    }

    $html  = '<del aria-hidden="true">' . wc_price( wc_get_price_to_display( $product, array( 'price' => $regular_price ) ) ) . '</del> ';
    $html .= '<del aria-hidden="true">' . wc_price( wc_get_price_to_display( $product, array( 'price' => $second_strike ) ) ) . '</del> ';
    $html .= '<ins>' . wc_price( wc_get_price_to_display( $product, array( 'price' => $clearance_price ) ) ) . '</ins>';

    return $html;
}

add_filter( 'woocommerce_product_is_on_sale', 'dl_clearance_is_on_sale', 10, 2 );
function dl_clearance_is_on_sale( $on_sale, $product ) {
    $clearance_price = $product->get_meta( '_dl_clearance_price' );

    if ( $clearance_price !== '' && is_numeric( $clearance_price ) ) {
        return true;
    }

    return $on_sale;
}

Una vez implementado, lo primero que verás será en los detalles del producto, desde la edición de producto de WooCommerce un nuevo campo «Precio de liquidación»:

anadir precio liquidacion woocommerce

Con esto conseguimos el siguiente efecto en la ficha de producto:

precio en liquidacion woocommerce

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)

Especialista en Comercio electrónico con Woocommerce. Te ayudo a crear, gestionar y publicitar tu Ecommerce en función de tu sector y público objetivo. Puedes encontrarme en Diegol.top

¿Necesitas ayuda con este tutorial? Mándame un correo y te resuelvo todas las dudas!


Ver servicios Curso de WooCommerce

También puedes realizar una donacion para seguir apoyando la salida de nuevos tutoriales y actualizaciones

Reader Interactions

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *