Los productos variables son una gran herramienta de ecommerce, y permiten que un único producto, pueda mostrar precios y características diferentes dentro de su misma ficha. Ej: Un cliente podría elegir talla, color e incluso estampados diferentes en un mismo tipo de camiseta.
En realidad, podría escoger cualquier modificación que se nos ocurriese, ya que los productos variables son 100% flexibles.
El problema, es que hasta día de hoy (versión 3.3.2), cuando se añaden variaciones entorno al precio (Ej: La talla XXL es más cara que la XXS), WooCommerce lo representa de una manera un tanto incómoda. Como intervalo:
Si quisiéramos hacer que se mostrase como cualquier otro producto, y que el precio que mostrase fuese el de la variación más económica, bastaría con:
1º- Tener acceso FTP a nuestra web.
2º- Buscar el archivo [codigo]functions.php[/codigo] y editarlo. Se encuentra en [codigo]wp-content/themes/nombre_de_tu_tema/functions.php[/codigo]
Recomendamos que, en lugar de hacer la modificación ahí directamente, se cree un tema hijo.
3º Añadir la siguiente función:
//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( __( '%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( __( '%1$s', 'woocommerce' ), wc_price( $prices[0] ) ) : wc_price( $prices[0] ); if ( $price !== $saleprice ) { $price = '<del>' . $saleprice . '</del> <ins>' . $price . '</ins>'; } return $price; }
Esto hará que en lugar de mostrarse como arriba, ahora se vea así:
Buen día, excelente tutorial, existe algún código o plugin que en vez de que se muestre el precio menor, se muestre «Valores por defecto del formulario:» en toda la tienda y no solo en la pagina individual del producto?
Muchas Gracias lo he estado buscando bastante cómo quitar el rango de precios en la página de tienda de woocommerce tanto en español como en ingles y lo he conseguido con tu post!!!
Gracias otra vez!!!
Hola, muchas gracias por el post, cómo podría dejar el precio más alto en vez del más bajo?