mirror of
https://gh.wpcy.net/https://github.com/mainwp/Code-Snippets-Functions.git
synced 2026-04-29 11:32:21 +08:00
https://stackoverflow.com/questions/74820664/how-to-show-the-discount-percentage-in-actual-in-woocommerce
21 lines
1.1 KiB
Text
21 lines
1.1 KiB
Text
add_filter( 'woocommerce_get_price_html', 'change_displayed_sale_price_html', 10, 2 );
|
|
function change_displayed_sale_price_html( $price, $product ) {
|
|
// Only on sale products on frontend and excluding min/max price on variable products.
|
|
if ( $product->is_on_sale() && ! is_admin() && ! $product->is_type( 'variable' ) ) {
|
|
// Get product prices
|
|
$regular_price = (float) $product->get_regular_price(); // Regular price
|
|
$sale_price = (float) $product->get_price(); // Active price (the "Sale price" when on-sale)
|
|
|
|
// "Saving price" calculation and formatting.
|
|
$saving_price = wc_price( $regular_price - $sale_price );
|
|
|
|
// "Saving Percentage" calculation and formatting.
|
|
$precision = 1; // Max number of decimals
|
|
$saving_percentage = round( 100 - ( $sale_price / $regular_price * 100 ), 1 ) . '%';
|
|
|
|
// Append to the formated html price.
|
|
$price .= sprintf( __( '<p class="saved-sale">Save: %1$s <em>(%2$s)</em></p>', 'woocommerce' ), $saving_price, $saving_percentage );
|
|
}
|
|
|
|
return $price;
|
|
}
|