Calificación:
  • 0 voto(s) - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5
Solución al problema de rango de precios en WooCommerce
#1
Con la nueva versión de WooCommerce 2.1 se han introducido infinidad de mejoras en el núcleo del plugin para mejorar su rendimiento, se ha redefinido la sección de ajustes y también se ha liberado la primera versión de la REST API que permitirá conectar WooCommerce con otras aplicaciones web de ecommerce.
El objetivo de todas estas mejoras es hacer al plugin de WooCommerce más rápido y escalable, manteniendo su usabilidad y siempre teniendo en cuenta el feedback recibido por parte de los usuarios. Esto no quiere decir que todo los cambios introducidos en la nueva versión hayan recibido una buena acogida. Un ejemplo de ello es el nuevo formato que se ha usado para mostrar los precios de las variaciones de productos, que ahora se muestra con un rango entre el menor y el mayor precio. Pues bien, para los que quieran mantener el antiguo formato que sólo mostraba el precio más bajo, voy a mostrar una solución al problema de rango de precios en WooCommerce 2.1.

Cómo sustituir el formato de rango de precios en WooCommerce para variaciones de productos.
En la anterior versión 2.0 de WooCommerce, cuando se trabajaba con variaciones de productos, se mostraba el siguiente formato de precio: “Desde: 60€“, donde 60€ era el precio de la variación de productos más barata. Al actualizar a la nueva versión 2.1 de WooCommerce, el precio para las variaciones de productos se muestra en formato de rango de valores, algo así: “60€ – 80€“, ahora 80€ sería el precio de la variación de producto más cara.
[img=400x0]http://woodemia.com/wp-content/uploads/2014/07/rango-de-precios-woocommerce.png[/img]
El problema del rango de precios es que es muy confuso a primera vista y puede hacer que el cliente tome el mayor precio como referencia y acabe abandonando la compra. Para evitar que esto ocurra y mostrar de nuevo el formato de precio de la versión 2.0, Gerhard Potgieter publicó hace poco en su blog una solución muy sencilla que te presento a continuación.
La solución consiste en pegar el siguiente código snippet al final del archivo function.php de tu plantilla de WooCommerce.


/**

* 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( __( 'From: %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( __( 'From: %1$s', 'woocommerce' ), wc_price( $prices[0] ) ) : wc_price( $prices[0] );




   if ( $price !== $saleprice ) {

       $price = '<del>' . $saleprice . '</del> <ins>' . $price . '</ins>';

   }

   

   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 );

view rawfunctions.php hosted with [Imagen: 2764.png] by GitHub

La forma más sencilla de hacerlo es entrando en tu panel de administración de WordPress y yendo a la sección “Apariencia > Editor“. Una vez dentro, a la derecha, en el apartado “Plantillas“, haz clic sobre “Funciones del tema” y se cargará en el editor el código de tu archivo function.php. Por último, sólo tienes que desplazarte hasta la última línea del archivo, pegar el código snippet anterior y hacer clic en “Actualizar archivo” para guardar los cambios. 

Aquí tienes un ejemplo del resultado final.
[img=400x0]http://woodemia.com/wp-content/uploads/2014/07/mostrar-precio-mas-bajo-productos-variables-woocommerce.jpg[/img]
Cómo cambiar el formato de rango de precios para productos agrupados en WooCommerce.
El código anterior sólo resuelve el problema para productos con variaciones, pero ¿qué pasa con los productos agrupados de WooCommerce? Si tú trabajas con productos agrupados, estos también se muestra con un formato de rango de precios. Pues bien, la solución consiste en usar otro código snippet que el bueno de Gerhard Potgieter también ha querido compartir con el resto. El código es el siguiente:

<?php

// 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;

}

view rawfunctions.php hosted with [Imagen: 2764.png] by GitHub


Simplemente hay que seguir los mismos pasos que expliqué en el apartado anterior y ¡listo!
Espero que este sencillo truco te haya sido de ayuda para arreglar el problema de rango de precios en WooCommerce y volver al formato anterior.
Es probable que si los usuarios siguen prefiriendo el formato con un sólo precio, WooCommerce lo tenga en cuenta para próximas versiones y ya no haya que depender de ningún código snippet, pero mientras tanto esta es la mejor solución que conozco.


Posibles temas similares...
Tema Autor Respuestas Vistas Último mensaje
  [Duda] Problema espaciados en imagenes PabloA3 17 441 26-09-2018, 03:35 AM
Último mensaje: DaveNPlay
  Problema con interlineado PabloA3 7 269 10-09-2018, 09:08 PM
Último mensaje: PabloA3
Estrella Configurar múltiples vendedores en WooCommerce WMasterT 2 141 30-07-2018, 08:09 PM
Último mensaje: WMasterT
  Wordpress problema [While Screen] yuma2009 4 663 03-02-2017, 04:04 AM
Último mensaje: yuma2009
  ¿Cuánto cuesta montar una tienda online que venda con WooCommerce? logoregion 8 839 19-04-2016, 02:09 PM
Último mensaje: betiko2424
  Evitar imágenes de productos borrosas en WooCommerce logoregion 2 899 25-03-2016, 06:46 AM
Último mensaje: garcon
  Cómo mostrar productos destacados en WooCommerce logoregion 0 546 08-02-2016, 09:59 PM
Último mensaje: logoregion
  Cómo usar las clases de envío en WooCommerce logoregion 0 498 08-02-2016, 09:56 PM
Último mensaje: logoregion
  WooCommerceAplicación oficial de WooCommerce para el móvil Aplicación oficial de WooC logoregion 0 408 08-02-2016, 09:55 PM
Último mensaje: logoregion
  Comisión en WooCommerce según método de pago logoregion 0 557 07-02-2016, 08:19 PM
Último mensaje: logoregion



Usuarios navegando en este tema: 1 invitado(s)