Created
May 13, 2019 17:32
-
-
Save ncesar/cd4bbe941e62f5f7afb7d3887a551694 to your computer and use it in GitHub Desktop.
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
/** | |
* @snippet Display Discount Percentage @ Loop Pages - WooCommerce | |
* @how-to Watch tutorial @ https://businessbloomer.com/?p=19055 | |
* @sourcecode https://businessbloomer.com/?p=21997 | |
* @author Rodolfo Melogli | |
* @compatible WooCommerce 3.5.4 | |
* @donate $9 https://businessbloomer.com/bloomer-armada/ | |
*/ | |
add_action( 'woocommerce_before_shop_loop_item_title', 'bbloomer_show_sale_percentage_loop', 25 ); | |
function bbloomer_show_sale_percentage_loop() { | |
global $product; | |
if ( ! $product->is_on_sale() ) return; | |
if ( $product->is_type( 'simple' ) ) { | |
$max_percentage = ( ( $product->get_regular_price() - $product->get_sale_price() ) / $product->get_regular_price() ) * 100; | |
} elseif ( $product->is_type( 'variable' ) ) { | |
$max_percentage = 0; | |
foreach ( $product->get_children() as $child_id ) { | |
$variation = wc_get_product( $child_id ); | |
$price = $variation->get_regular_price(); | |
$sale = $variation->get_sale_price(); | |
if ( $price != 0 && ! empty( $sale ) ) $percentage = ( $price - $sale ) / $price * 100; | |
if ( $percentage > $max_percentage ) { | |
$max_percentage = $percentage; | |
} | |
} | |
} | |
if ( $max_percentage > 0 ) echo "<div class='sale-perc'>-" . round($max_percentage) . "%</div>"; | |
} | |
.sale-perc { | |
background-color: #D9534F; | |
display: inline; | |
padding: .2em .6em .3em; | |
font-size: 75%; | |
font-weight: bold; | |
color: #fff; | |
text-align: center; | |
border-radius: .25em; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment