Saltear al contenido principal
Sustituir Rango De Precios En Woocomerce

Sustituir rango de precios en Woocomerce

Adoro Woocomerce, algún día explicaré por qué lo prefiero antes que Prestashop o que cualquier otro gestor de tiendas online. Pero hay algo que nunca me gustó y es la forma en que muestra los precios en los productos con variantes. Eso de mostrar el rango de precios de la variante más barata a la más cara (por ejemplo 60€-200€) es lioso y el cliente puede tomar como referencia el precio más caro y dejar de tener interés por el producto. Creo que así a primera vista no se tendría que mostrar nunca el precio más caro, lo ideal sería mostrar algo parecido a Desde: 60€. Hay que buscar una manera de cambiar el rango de precios.

Estuve varios meses buscando solución a esto hasta que di con la solución gracias a un tal Gerhard Potgieter que explica en su blog cómo hacerlo. Básicamente se trata de pegar un código al final del archivo function.php de la plantilla de WooCommerce. Una vez hecho y guardado los cambios dejará de mostrarse el rango de precios para mostrar Desde: y el precio de la variante más barata.

El código que tenemos que pegar es el siguiente:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
//Ocultar rango de precios en WooCommerce
add_filter( 'woocommerce_variable_sale_price_html', 'my_variation_price_format', 10, 2 );

add_filter( 'woocommerce_variable_price_html', 'my_variation_price_format', 10, 2 );

function my_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;
}// Place in your theme's functions.php file
// Revert grouped product prices to WooCommerce 2.0 format
add_filter( 'woocommerce_grouped_price_html', 'wc_wc20_grouped_price_format', 10, 2 );
function wc_wc20_grouped_price_format( $price, $product ) {
$tax_display_mode = get_option( 'woocommerce_tax_display_shop' );
$child_prices = array();

foreach ( $product->get_children() as $child_id ) {
$child_prices[] = get_post_meta( $child_id, '_price', true );
}

$child_prices = array_unique( $child_prices );
$get_price_method = 'get_price_' . $tax_display_mode . 'uding_tax';

if ( ! empty( $child_prices ) ) {
$min_price = min( $child_prices );
$max_price = max( $child_prices );
} else {
$min_price = '';
$max_price = '';
}

if ( $min_price == $max_price ) {
$display_price = wc_price( $product->$get_price_method( 1, $min_price ) );
} else {
$from = wc_price( $product->$get_price_method( 1, $min_price ) );
$display_price = sprintf( __( 'From: %1$s', 'woocommerce' ), $from );
}
return $display_price;
}

 

Desde el panel de WordPress vamos a Apariencia > Editor y seleccionamos el archivo functions.php. El código lo copiamos al final del archivo y a continuación pulsamos en el botón Actualizar archivo. Cambiar el rango de precios 

Esta entrada tiene 0 comentarios

Deja un comentario

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