Si estás usando Woocommerce Role Pricing o Woocommerce Groups Pricing, para aplicar descuentos en tu tienda Woocommerce según roles/grupos, y necesitas mostrar tanto el precio original como el descontado, puedes añadir este código a tu fichero functions.php:
Si estás usando Woocommerce 2.5.x
add_filter( 'woocommerce_get_price_html', 'your_own_price_html', 100, 2 );
function your_own_price_html( $price, $product ){
$result = $price;
if ( get_option( "wgp-baseprice", "regular" ) == "sale" ) {
$price_key = '_price';
} else {
$price_key = '_regular_price';
}
if ( $product->product_type == 'variable' ) {
$children = $product->get_children(true);
$original_prices = array();
$commission = 0;
foreach ( $children as $child ) {
$original_prices[] = get_post_meta( $child, $price_key, true );
if ( $commission == 0 ) {
$commission = WGP_Variations_Admin::get_commission( $product, $child );
}
}
if ( $commission > 0 ) {
$min_price = min( $original_prices );
$max_price = max( $original_prices );
$original_price = $min_price !== $max_price ? sprintf( _x( '%1$s–%2$s', 'Price range: from-to', 'woocommerce' ), wc_price( $min_price ), wc_price( $max_price ) ) : wc_price( $min_price );
}
} else {
$commission = WooGroupPricing::get_commission( $product );
if ( $commission ) {
$original_price = woocommerce_price(get_post_meta( $product->id, $price_key, true ));
}
}
if ( $commission ) {
$result = 'Was:' . $original_price . " Now:" . $price;
}
return $result;
}
Si estás usando Woocommerce < 2.5.0
add_filter( 'woocommerce_get_price_html', 'your_own_price_html', 100, 2 );
function your_own_price_html( $price, $product ){
$result = $price;
if ( $product->is_type( 'variation' ) ) {
$commission = WGP_Variations_Admin::get_commission( $product, $product->variation_id );
} else {
$commission = WooGroupPricing::get_commission( $product );
}
if ( $commission ) {
$result = 'Was:' . woocommerce_price(get_post_meta( $product->id, '_price', true )) . " Now:" . $price;
}
return $result;
}