Si trabajas con productos variables en Woocommerce, y en las variaciones utilizas diferentes precios, habrás observado que en el precio de los productos se muestra un intervalo de precios en vez de un precio único.

Este intervalo de precios se muestra tanto en las fichas de producto como en las páginas de categorías.

 

Quitar intervalo precios woocommerce en categorias

Aquí puedes ver el intervalo de precios en categorías de Woocommerce

 

rango de precios de producto variaciones woocommerce

Aquí puedes ver el intervalo de precios en un producto

 

 

DISFRUTA DE TODOS MIS CURSOS PREMIUM POR SOLO 10€/MES


VER CURSOS

 

 

 

 

 

1.- Razones por las que mostrar este intervalo de precios NO es la mejor opción

 

Lo cierto es que ese intervalo o rango de precios que se muestra en Woocommerce, puede ser bastante “mosqueante” para el usuario por varios motivos:

  • a.- Por que el ver varios precios es algo que, de primeras, no cuadra al visitante.
  • b.- Si el intervalo de precios es muy grande, el usuario ve un precio muy económico junto a un precio muy alto, y esto es algo que siembra la confusión y desconcierta al usuario, en un primer momento.

 

Aunque el usuario posteriormente analice la situación y entienda que es un intervalo de precios, es posible que si en un primer momento se siente confundido, directamente abandone la tienda online.

Tal vez lo ideal tampoco sería mostrar el precio más bajo a secas. Sino que se debería mostrar un texto del tipo: “Desde 50 €” o “A partir de 50 €”.

Vamos a ver a continuación, diferentes opciones para eliminar ese intervalo de precios en Woocommerce y sustituirlo por el precio más económico del intervalo.

 

 

 

2.- Plugin: “Quitar intervalo de Precios” para Woocommerce

 

Vamos a ver en primer lugar, cómo podemos quitar este intervalo de precios utilizando un plugin.

En este caso, te traigo un plugin de Enrique J Ros, muy económico, que tiene un precio de 4,99€ y que se llama “Quitar intervalo de precios”.

El plugin nos va a permitir quitar el intervalo de precios y personalizar el texto que queremos que se muestre en su lugar.

Una vez instalado y activado el plugin, la personalización la puedes realizar desde: “Ajustes > Intervalo de precios”

Ahí se te mostrará un campo de texto en el que podrás personalizar el texto que quieras. Debes tener en cuenta que la variable %precio% corresponde al precio más bajo del intervalo.

 

->Es decir, para poner “Desde 50€”, has de poner:

Desde %precio%

 

->Para poner “A partir de 50€”, has de poner:

A partir de %precio%

 

Así de fácil.

->IR AL PLUGIN QUITAR INTERVALOS DE PRECIOS

 

 

 

3.- Código: Quitar intervalo de precios en Woocommerce añadiendo código

 

Vamos a ver ahora, cómo podemos sustituir el intervalo o rango de precios para productos variables en Woocommerce, por un precio único, a través de código.

El código que te voy a pasar lo puedes añadir a tu wordpress de varias maneras:

 

a.- Añadir el código al final del archivo functions.php: esta es la peor forma de añadir el código, ya que al actualizar la plantilla tendrás que volver a añadir el código.

En este caso, debes buscar este archivo dentro de los archivos de tu plantilla y añadir el código al final del archivo.

 

b.- Añadir el código en el archivo functions.php de nuestro tema hijo: esta es una buena opción, ya que al actualizar la plantilla no se perderá el código. No es tan perfecta como las siguientes opciones, que independizan el código de la plantilla, pero es una buena opción.

En este caso tendrás que añadir el código al archivo functions.php dentro de tu tema hijo o child theme.

 

c.- Añadir el código en nuestro plugin personalizado de funciones: esta es una opción también muy interesante y optimizada. Pero, antes debemos crear y poner en marcha el plugin personalizado de funciones.

Luego añadiremos el código en el archivo del plugin.

En este post de Ángel Martín tienes más info sobre como crear este plugin personalizado de funciones

 

d.- Añadir el código con un plugin como code Snippets: esta solución también es muy interesante, ya que independizamos la plantilla de estos códigos.

Para añadir el código usaremos un plugin como code Snippets

En este post de DecodeCMS tienes info de cómo funciona code Snippets

 

El código que vamos a utilizar ha sido obtenido del publicado por Gehard Potgieter en su blog, y luego modificado para sustituir el intervalo de precios en Woocommerce por los siguientes posibles textos:

NOTA: Si quieres personalizar tu propio texto, fíjate que la diferencia entre los siguientes códigos está en 2 líneas. Fíjate en las dos líneas donde aparece 'Desde %1$s' Ahí es donde has de realizar la personalización.

Vamos a ver cómo quedaría con la opción 3.2

 

A partir de precio o Desde precio intervalos woocommerce

Anque aquí te muestro la ficha de producto, también cambiaría el precio en los productos de las categorías.

 

 

3.1.- Código para sustituir intervalo de precios por: “Desde 50€”

 

/**
* Use WC 2.0 variable price format, now include sale price strikeout
*
* @param string $price
* @param object $product
* @return string
*/
function wc_wc20_variation_price_format( $price, $product ) {
// Main Price
$prices = array( $product->get_variation_price( 'min', true ), $product->get_variation_price( 'max', true ) );
$price = $prices[0] !== $prices[1] ? sprintf( __( 'Desde %1$s', 'woocommerce' ), wc_price( $prices[0] ) ) : wc_price( $prices[0] );

// Sale Price
$prices = array( $product->get_variation_regular_price( 'min', true ), $product->get_variation_regular_price( 'max', true ) );
sort( $prices );
$saleprice = $prices[0] !== $prices[1] ? sprintf( __( 'Desde %1$s', 'woocommerce' ), wc_price( $prices[0] ) ) : wc_price( $prices[0] );

if ( $price !== $saleprice ) {
$price = '' . $saleprice . ' ' . $price . '';
}

return $price;
}
add_filter( 'woocommerce_variable_sale_price_html', 'wc_wc20_variation_price_format', 10, 2 );
add_filter( 'woocommerce_variable_price_html', 'wc_wc20_variation_price_format', 10, 2 );

 

 

3.2.- Código para sustituir intervalo de precios por: “A partir de 50€”

 

/**
* Use WC 2.0 variable price format, now include sale price strikeout
*
* @param string $price
* @param object $product
* @return string
*/
function wc_wc20_variation_price_format( $price, $product ) {
// Main Price
$prices = array( $product->get_variation_price( 'min', true ), $product->get_variation_price( 'max', true ) );
$price = $prices[0] !== $prices[1] ? sprintf( __( 'A partir de %1$s', 'woocommerce' ), wc_price( $prices[0] ) ) : wc_price( $prices[0] );

// Sale Price
$prices = array( $product->get_variation_regular_price( 'min', true ), $product->get_variation_regular_price( 'max', true ) );
sort( $prices );
$saleprice = $prices[0] !== $prices[1] ? sprintf( __( 'A partir de %1$s', 'woocommerce' ), wc_price( $prices[0] ) ) : wc_price( $prices[0] );

if ( $price !== $saleprice ) {
$price = '' . $saleprice . ' ' . $price . '';
}

return $price;
}
add_filter( 'woocommerce_variable_sale_price_html', 'wc_wc20_variation_price_format', 10, 2 );
add_filter( 'woocommerce_variable_price_html', 'wc_wc20_variation_price_format', 10, 2 );

 

 

3.3.- Código para sustituir intervalo de precios por: “Desde 50 € IVA inc.”

 

/**
* Use WC 2.0 variable price format, now include sale price strikeout
*
* @param string $price
* @param object $product
* @return string
*/
function wc_wc20_variation_price_format( $price, $product ) {
// Main Price
$prices = array( $product->get_variation_price( 'min', true ), $product->get_variation_price( 'max', true ) );
$price = $prices[0] !== $prices[1] ? sprintf( __( 'Desde %1$s IVA Inc.', 'woocommerce' ), wc_price( $prices[0] ) ) : wc_price( $prices[0] );

// Sale Price
$prices = array( $product->get_variation_regular_price( 'min', true ), $product->get_variation_regular_price( 'max', true ) );
sort( $prices );
$saleprice = $prices[0] !== $prices[1] ? sprintf( __( 'Desde %1$s IVA Inc.', 'woocommerce' ), wc_price( $prices[0] ) ) : wc_price( $prices[0] );

if ( $price !== $saleprice ) {
$price = '' . $saleprice . ' ' . $price . '';
}

return $price;
}
add_filter( 'woocommerce_variable_sale_price_html', 'wc_wc20_variation_price_format', 10, 2 );
add_filter( 'woocommerce_variable_price_html', 'wc_wc20_variation_price_format', 10, 2 );

 

 

3.4.- Código para sustituir intervalo de precios por: “A partir de 50 € IVA inc.”

 

/**
* Use WC 2.0 variable price format, now include sale price strikeout
*
* @param string $price
* @param object $product
* @return string
*/
function wc_wc20_variation_price_format( $price, $product ) {
// Main Price
$prices = array( $product->get_variation_price( 'min', true ), $product->get_variation_price( 'max', true ) );
$price = $prices[0] !== $prices[1] ? sprintf( __( 'A partir de %1$s IVA Inc.', 'woocommerce' ), wc_price( $prices[0] ) ) : wc_price( $prices[0] );

// Sale Price
$prices = array( $product->get_variation_regular_price( 'min', true ), $product->get_variation_regular_price( 'max', true ) );
sort( $prices );
$saleprice = $prices[0] !== $prices[1] ? sprintf( __( 'A partir de %1$s IVA Inc', 'woocommerce' ), wc_price( $prices[0] ) ) : wc_price( $prices[0] );

if ( $price !== $saleprice ) {
$price = '' . $saleprice . ' ' . $price . '';
}

return $price;
}
add_filter( 'woocommerce_variable_sale_price_html', 'wc_wc20_variation_price_format', 10, 2 );
add_filter( 'woocommerce_variable_price_html', 'wc_wc20_variation_price_format', 10, 2 );

 

 

Compártelo ya!!