No WooCommerce, quando um produto variável tem variação de preço, o padrão é o campo preço mostrar o preço mais baixo e o preço mais alto, porém isso fica confuso para os clientes. Ao desenvolver um site em que isso acontecia, precisei achar uma maneira que mostrasse apenas o menor preço. Pesquisei e achei esse tutorial: https://learnwoo.com/hide-price-range-woocommerce-variable-products/. O código fica o seguinte:
//Esconder variação de preço para produtos variáveis no WooCommerce
function lw_variable_product_price( $v_price, $v_product ) {
//Preço do Produto
$prod_prices = array( $v_product->get_variation_price( 'min', true ), $v_product->get_variation_price( 'max', true ) );
$prod_price = $prod_prices[0]!==$prod_prices[1] ? sprintf(__('A partir de: %1$s', 'woocommerce'), wc_price( $prod_prices[0] ) ) : wc_price( $prod_prices[0] );
//Preço Regular
$regular_prices = array( $v_product->get_variation_regular_price( 'min', true ), $v_product->get_variation_regular_price( 'max', true ) );
sort( $regular_prices );
$regular_price = $regular_prices[0]!==$regular_prices[1] ? sprintf(__('A partir de: %1$s','woocommerce'), wc_price( $regular_prices[0] ) ) : wc_price( $regular_prices[0] );
if ( $prod_price !== $regular_price ) {
$prod_price = '<del>'.$regular_price.$v_product->get_price_suffix() . '</del> <ins>' . $prod_price . $v_product->get_price_suffix() . '</ins>';
}
return $prod_price;
}
add_filter( 'woocommerce_variable_sale_price_html', 'lw_variable_product_price', 10, 2 );
add_filter( 'woocommerce_variable_price_html', 'lw_variable_product_price', 10, 2 );




