-
-
Save bobwol/6cdddfa1ff40c84e9837de36bb4c31ce to your computer and use it in GitHub Desktop.
WooCommerce - Use "Starting at" prefix for variable price range
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?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 ); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment