WooCommerce - Use "Starting at" prefix for variable price range
<?php | |
/** | |
* Custom variable price HTML. | |
* Shows "Starting at" prefix with when min price is different from max price. | |
* | |
* @param stirng $price Product price HTML | |
* @param WC_Product_Variable $product Product data. | |
* @return string | |
*/ | |
function cs_my_wc_custom_variable_price_html( $price, $product ) { | |
$prices = $product->get_variation_prices( true ); | |
$min_price = current( $prices['price'] ); | |
$max_price = end( $prices['price'] ); | |
// Return price if min is equal to max. | |
if ( $min_price === $max_price || $product->is_on_sale() ) { | |
return $price; | |
} | |
return sprintf( __( 'Starting at %s', 'your-text-domain' ), wc_price( $min_price ) . $product->get_price_suffix() ); | |
} | |
add_filter( 'woocommerce_variable_price_html', 'cs_my_wc_custom_variable_price_html', 10, 2 ); | |
/** | |
* Custom variable sale price HTML. | |
* Shows "Starting at" prefix with when min price is different from max price. | |
* | |
* @param stirng $price Product price HTML | |
* @param WC_Product_Variable $product Product data. | |
* @return string | |
*/ | |
function cs_my_wc_custom_variable_sale_price_html( $price, $product ) { | |
$prices = $product->get_variation_prices( true ); | |
$min_price = current( $prices['price'] ); | |
$min_regular_price = current( $prices['regular_price'] ); | |
$max_regular_price = end( $prices['regular_price'] ); | |
// Return price if min is equal to max. | |
if ( $min_regular_price === $max_regular_price ) { | |
return $price; | |
} | |
$price = $product->get_price_html_from_to( $min_regular_price, $min_price ); | |
return sprintf( __( 'Starting at %s', 'your-text-domain' ), $price . $product->get_price_suffix() ); | |
} | |
add_filter( 'woocommerce_variable_sale_price_html', 'cs_my_wc_custom_variable_sale_price_html', 10, 2 ); |
This comment has been minimized.
This comment has been minimized.
Hi how show this item? |
This comment has been minimized.
This comment has been minimized.
|
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
This comment has been minimized.
Hi
there is a problem
always the minimum price will be shown
even when the minimum price is for an out of stock price
we should add availability check and then use the minimum price of the available price