Last active
July 14, 2019 00:31
-
-
Save accessomnath/82516cebfd6478351da9c06feaa88123 to your computer and use it in GitHub Desktop.
to get the sale percentage
This file contains hidden or 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 | |
// Now you can have (3 possibilities): | |
// 1) The saving price: | |
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 ); | |
// Append to the formated html price | |
$price .= sprintf( __('<p class="saved-sale">Save: %s</p>', 'woocommerce' ), $saving_price ); | |
} | |
return $price; | |
} | |
// 2) The saving percentage: | |
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 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: %s</p>', 'woocommerce' ), $saving_percentage ); | |
} | |
return $price; | |
} | |
// 3 Both of them (the discounted price and percentage): | |
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: %s <em>(%s)</em></p>', 'woocommerce' ), $saving_price, $saving_percentage ); | |
} | |
return $price; | |
} | |
?> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment