Show “Starting At” Price and Hide Maximum Price in WooCommerce

Minimum price WooCommerce

This is a relatively simple code, but it does require modifying the functions.php file in your child theme, which is not recommended unless you are familiar with how to edit a functions.php file in WordPress.

This code will allow you to display the minimum price with a “Starting at” prior to it rather than a price range (which, let’s admit, can be a turn-off to some price-conscious customers). You can see a demonstration of how this works in the screenshot above. This is a screenshot of it in action on my client HEALTHandMED‘s website.

Note, you can change “Starting at” in the code below to anything you want to fit your needs.


/**
* RETURNS MINIMUM PRICE AND HIDES MAXIMUM PRICE FOR VARIABLE PRODUCTS
**/
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 );
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( __( 'Starting at %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( __( 'Starting at %1$s', 'woocommerce' ), wc_price( $prices[0] ) ) : wc_price( $prices[0] );
if ( $price !== $saleprice ) {
$price = '' . $saleprice . ' ' . $price . '';
}
return $price;
}