This website uses cookies

Our website, platform and/or any sub domains use cookies to understand how you use our services, and to improve both your experience and our marketing relevance.

Cómo añadir una pantalla personalizada de precios dinámicos en WooCommerce

Updated on septiembre 1, 2025

6 Min Read

Es habitual que los precios cambien continuamente, de un día para otro, de una franja horaria a otra, y también en función del dispositivo utilizado para buscar los productos. La ventaja es obvia: si la oferta cambia según la demanda del consumidor, se pueden maximizar los beneficios.

El mecanismo que subyace a estas variaciones se denomina precios dinámicos. Recalcula constantemente los precios en función de variables predefinidas mediante distintos algoritmos, y los propietarios de las tiendas pueden aprovecharlo teniendo en cuenta la estacionalidad y el comportamiento de los usuarios.

En este artículo, te explicaré cómo puedes añadir precios dinámicos personalizados en WooCommerce para todos los productos y productos específicos basados en campos de producto.

Prepara tu tienda online para el futuro con autónomos

Mantén tu tienda online preparada para todos los picos de tráfico inesperados con Cloudways Autonomous. Mantente a la vanguardia con escalabilidad avanzada y tecnología de vanguardia.

Cambiar la visualización del precio de todos los productos

Cambiar la visualización de precios de WooCommerce implica dos filtros importantes:

  1. woocommerce_get_price_html
  2. woocommerce_cart_item_price

woocommerce_get_price_html cambia cómo se muestra el precio en las páginas de producto y tienda.

function cw_change_product_price_display( $precio ) {
  $precio .= ' En Cada Artículo Producto';
  devuelve $precio;
  }
  add_filter( 'woocommerce_get_price_html', 'cw_change_product_price_display' );
  add_filter( 'woocommerce_cart_item_price', 'cw_change_product_price_display' );

woocommerce_cart_item_price cambia la forma en que se muestran los precios de los productos en la tabla del carrito.

ct_price_display' ); add_filter( 'woocommerce_cart_item_price', 'cw_change_product_price_display' );

El filtro woocommerce_get_price_html cambiará esto en las páginas de la tienda:

Cambiar la visualización de precios de WooCommerce

Del mismo modo, en las páginas de productos individuales:

páginas de productos individuales

El filtro woocommerce_cart_item_price ajustará también esta visualización dentro del carrito:

páginas de productos individuales

Ordenar la visualización del precio de un solo producto

¿Y si quieres cambiar la visualización del precio de un producto concreto? Esto se puede hacer utilizando los mismos filtros, ya que pasarán argumentos adicionales para cambiar condicionalmente el precio.

Desde el lanzamiento hasta la personalización de tus tiendas WooCommerce, Cloudways está a tu servicio.

Tanto si eres principiante como experto, la Plataforma Cloudways se basa en la interfaz de usuario, con la que podrás crear y personalizar tu tienda online en pocos segundos.

Esta vez separaré estos filtros y utilizaré dos funciones para modificar los precios del producto y del carrito.

Sólo comprobaré el ID del producto y cambiaré la visualización del precio de ese producto.

function cw_change_product_html( $precio_html, $producto ) {
  if ( 22 === $producto->id ) {
  $precio_html = '<span class="importe">50,00 $ por unidad</span>';
  }

  devuelve $precio_html;
}
add_filter( 'woocommerce_get_price_html', 'cw_change_product_html', 10, 2 );


function sv_change_product_price_cart( $price, $cart_item, $cart_item_key ) {
  if ( 22 === $art_item['product_id'] ) {
  $precio = '50,00 $ por Unidad<br>(7-8 brochetas por unidad)";
  }
  devuelve $precio;
}
add_filter( 'woocommerce_cart_item_price', 'sv_change_product_price_cart', 10, 3 );

La primera función cambiará mi página de producto:

cambiar la página de mi producto

Junto con el expositor de la tienda:

escaparate

Mientras que la segunda función ajustará la visualización de mi carrito con los nuevos precios de WooCommerce:

ajustar la visualización de mi cesta

Sin embargo, si tienes varios productos con precios unitarios, este método podría ser muy engorroso, y probablemente no quiera utilizar un interruptor o un bloque de sentencia if para cada ID de producto. En su lugar, recomiendo utilizar un campo personalizado de producto para ajustar la visualización del precio. Utilizaré el ID para obtener este campo y luego me ahorraré mucha codificación porque introduciré el campo mediante programación.

Cambiar la visualización del precio en función de los campos del producto

Si quieres cambiar la visualización del precio de algunos productos (cada producto puede tener un precio unitario diferente), un campo personalizado resultará en un código mucho más sencillo, ya que puedo añadir el campo para cada producto de la lista y luego simplemente recuperar este campo en el código:

simplemente recupera este campo en el código:

Añadir campo personalizado en WooCommerce

Una vez que hayas añadido el campo personalizado, podrás recuperar el precio unitario y, si se ha establecido uno para el producto, ajustar la visualización del precio para que utilice el precio unitario y una etiqueta personalizada en su lugar:

function cw_change_product_html( $precio_html, $producto ) {
  $precio_unidad = get_post_meta( $producto->id, 'precio_unidad', true );
  if ( ! empty( $precio_unidad ) ) {
  $precio_html = '<span class="importe">' . wc_precio( $precio_unidad ) . ' por kg  </span>';  
  }
    
  devuelve $precio_html;
}
add_filter( 'woocommerce_get_price_html', 'cw_change_product_html', 10, 2 );
// Cambia los precios del carrito si se establece un precio_unitario
function cw_change_product_price_cart( $price, $cart_item, $cart_item_key ) {
  $precio_unitario = get_post_meta( $art_item['id_producto'], 'precio_unitario', true );
  if ( ! empty( $precio_unidad ) ) {
  $precio = wc_precio( $precio_unidad ) . ' por kg';   
  }
  devuelve $precio;
}  
add_filter( 'woocommerce_cart_item_price', 'cw_change_product_price_cart', 10, 3 );

Nota: wc_price() es una función muy útil para dar formato a los números dentro de la configuración de visualización de precios de la tienda. Todos los códigos se colocan en functions.php, que se encuentra en la carpeta del tema.

En este caso, la visualización del precio en la página del producto/tienda sólo cambiará si se establece un precio unitario. Si no, el precio seguirá siendo el mismo.

visualización del precio en el producto

Esto también ocurrirá con los artículos del carrito: la visualización del precio de WooCommerce se ajustará condicionalmente en función de si el artículo tiene un precio_unidad establecido en el campo personalizado:

precio_unitario fijado en el campo personalizado

Mostrar los precios de WooCommerce con WP_Query

El siguiente código muestra los precios dinámicos de WooCommerce utilizando WP_Query.

<php
 
$categorías_producto = array('nombre_gato');

$wc_query = new WP_Query( array(
  'post_type' =>  'producto',
  'post_status' =>  'publicar',
  'posts_per_page' =>  10,
  'consulta_impuestos' =>  array( array(
  taxonomía' =>  'producto_cat',
  'campo' =>  babosa
  términos" =>  $categorías_producto,
  ) )
) );
?>
<h1>  Nombre de la categoría  </h1>

    <?php if ($wc_consulta->have_posts()) : ?>
    <?php while ($wc_consulta->have_posts()) :
  $wc_consulta->el_post(); ?>
        <a href="<?php el_permalink(); ?>">
            <?php the_post_thumbnail('full'); ?>

            <h1><?php el_título(); ?> </h1>
            <?php $precio = get_post_meta( get_the_ID(), '_precio', true ); ?>
            <p><?php echo wc_precio( $precio ); ?></p>

        </a>
        <?php endwhile; ?>
    <?php wp_reset_postdata(); ?>
    <?php si no: ?>
    <li>
        <?php _e( 'No tienes ninguna entrada' ); ?>
    </li>
    <?php endif; ?>

La función más importante en el fragmento de código anterior es WP_Query, que proporciona varias funciones importantes como post_type, post_status, posts_per_page y tax_query. Todas estas funciones proporcionan una funcionalidad común dentro del bucle principal. La función get_post_meta() obtiene los metavalores. la moneda seleccionada actualmente se muestra mediante la función wc_price(). En la consulta principal, se utiliza wp_reset_postdata() para establecer el global $post en la entrada actual. Por último, $woocommerce_price_display_cat tiene la categoría de producto de WooCommerce seleccionada actualmente.

Resumen

En este artículo, traté el tema de la modificación de la visualización del precio en las páginas de producto de WooCommerce. Esta sencilla alteración puede hacerse añadiendo un código sencillo a los filtros de las páginas de producto. Deja un comentario abajo si tienes preguntas o sugerencias sobre el código o el artículo.

Share your opinion in the comment section. COMMENT NOW

Share This Article

Owais Khan

Owais trabaja como Director de Marketing en Cloudways, donde se centra en el crecimiento, la generación de demanda y las asociaciones estratégicas. Con más de una década de experiencia en marketing digital y B2B, Owais prefiere construir sistemas que ayuden a los equipos a alcanzar todo su potencial.

×

Webinar: How to Get 100% Scores on Core Web Vitals

Join Joe Williams & Aleksandar Savkovic on 29th of March, 2021.

Do you like what you read?

Get the Latest Updates

Share Your Feedback

Please insert Content

Thank you for your feedback!

Do you like what you read?

Get the Latest Updates

Share Your Feedback

Please insert Content

Thank you for your feedback!

¿Quieres experimentar la plataforma Cloudways en todo su esplendor?

Realice una visita guiada GRATUITA de Cloudways y compruebe usted mismo lo fácil que es administrar su servidor y sus aplicaciones en la plataforma de alojamiento en la nube líder.

Iniciar mi recorrido