Display the default discounted price and percentage on Woocommerce products

I am trying to display the percentage discount of a product on Woocommerce. The solution originally provided (linked below) works, however the discount percentage doesn't display if there is a default product variation set. Only when the selection is changed to another variation does the percentage discount appear. How would I modify the code to display the percent discount immidiately - without having to select another variation?

The original solution: Display the discounted price and percentage on Woocommerce products

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;

}


#php #wordpress

4 Likes43.90 GEEK