En WooCommerce el formato de los precios de productos variables puede ser algo confuso.
Aparece el precio más alto y el más bajo separados por un guión de la siguiente forma:
Esta forma de mostrar los precios en los productos variables no es la más intuitiva del mundo.
En este tutorial veremos como cambiarlo para que en vez de aparecer como un rango de precios aparezca «Desde 35€»
Siendo el resultado:
Suscríbete a mi canal:
Para conseguirlo tenemos que añadir el siguiente código en el fichero functions.php de nuestra plantilla.
Recuerda que si vas a hacer cambios en los ficheros de la plantilla es aconsejable usar un child theme y por supuesto hacer un backup de tu web 😉
/** * Change price format from range to "From:" * * @param float $price * @param obj $product * @return str */ function iconic_variable_price_format( $price, $product ) { $prefix = sprintf('%s: ', __('Desde', 'iconic')); $min_price_regular = $product->get_variation_regular_price( 'min', true ); $min_price_sale = $product->get_variation_sale_price( 'min', true ); $max_price = $product->get_variation_price( 'max', true ); $min_price = $product->get_variation_price( 'min', true ); $price = ( $min_price_sale == $min_price_regular ) ? wc_price( $min_price_regular ) : '<del>' . wc_price( $min_price_regular ) . '</del>' . '<ins>' . wc_price( $min_price_sale ) . '</ins>'; return ( $min_price == $max_price ) ? $price : sprintf('%s%s', $prefix, $price); } add_filter( 'woocommerce_variable_sale_price_html', 'iconic_variable_price_format', 10, 2 ); add_filter( 'woocommerce_variable_price_html', 'iconic_variable_price_format', 10, 2 );
La palabra «Desde» la puedes cambiar por otra en la variable $prefix = »;
Espero que te sea útil 😉
Saludos
Óscar