Skip to content

Instantly share code, notes, and snippets.

@kloon
Last active October 16, 2022 16:46
Show Gist options
  • Star 16 You must be signed in to star a gist
  • Fork 4 You must be signed in to fork a gist
  • Save kloon/8981075 to your computer and use it in GitHub Desktop.
Save kloon/8981075 to your computer and use it in GitHub Desktop.
WooCommerce 2.1 variation price, revert to 2.0 format
/**
* Use WC 2.0 variable price format, now include sale price strikeout
*
* @param string $price
* @param object $product
* @return string
*/
function wc_wc20_variation_price_format( $price, $product ) {
// Main Price
$prices = array( $product->get_variation_price( 'min', true ), $product->get_variation_price( 'max', true ) );
$price = $prices[0] !== $prices[1] ? sprintf( __( 'From: %1$s', 'woocommerce' ), wc_price( $prices[0] ) ) : wc_price( $prices[0] );
// Sale Price
$prices = array( $product->get_variation_regular_price( 'min', true ), $product->get_variation_regular_price( 'max', true ) );
sort( $prices );
$saleprice = $prices[0] !== $prices[1] ? sprintf( __( 'From: %1$s', 'woocommerce' ), wc_price( $prices[0] ) ) : wc_price( $prices[0] );
if ( $price !== $saleprice ) {
$price = '<del>' . $saleprice . '</del> <ins>' . $price . '</ins>';
}
return $price;
}
add_filter( 'woocommerce_variable_sale_price_html', 'wc_wc20_variation_price_format', 10, 2 );
add_filter( 'woocommerce_variable_price_html', 'wc_wc20_variation_price_format', 10, 2 );
@groggy96
Copy link

groggy96 commented Sep 7, 2014

Is it possible to have a hook that would completely override the pricing and use text instead. I know its a strange request but Its something I need to do and I can't find an answer anywhere.

@eddallen
Copy link

eddallen commented Sep 9, 2014

Thanks for this! SO useful! - Has anyone worked out a way of setting it up with composite products as alexkappel mentioned above but keeping it safely stored in the child theme?

@groggy96 This does something similar to what you're after, it might take some editing to get it exactly right though?

@karidamato
Copy link

This worked great for me until I updated WooCommerce to 4.0 and my theme (The Retailer). Now, it causes my shopping cart to go wonky—instead of "Choose an option" the menu reads the first price option and the number in the middle of my " - " and " + " "Add to Cart" disappears! Any ideas on how to revert the price to the "FROM" format without the other issues?

@amouratoglou
Copy link

Hi people,

1st of all, Thanks for sharing...

It was working perfectly, but somehow it's not working anymore , but breaking the site!

I have a problem with the snippet, getting Server internal error 500 after implementing in functions.php

My Ajax cart is working and then the error 500 appears and the white screen...

seems to be in conflict with this YITH Ajax plugin...

also I got this error message: anybody knows what can be wrong??

PHP Warning: Cannot modify header information - headers already sent by (output started at /home/organicb/public_html/wp-content/themes/flatsome-child/functions.php:20) in /home/organicb/public_html/wp-includes/pluggable.php on line 1121

@kelerby
Copy link

kelerby commented Nov 11, 2014

The recent update for this is still showing the "FROM:" pricing. Does anyone have any suggestion or workarounds for this issue?

@nr-s
Copy link

nr-s commented Feb 16, 2015

Many thanks..

@Al5ki
Copy link

Al5ki commented Mar 16, 2015

Hi guys,

I would really appreciate some help on this issue, the above code works great, so thanks for everyone who collaborated on it.

However,I need to show the price including tax, I have tried reverse engineering other codes and merging to no avail.

Can anyone help?

Also, I would ideally like to show the term From: on every product, not just the ones with different prices, if that's possible somehow?

Many thanks in advance,
Al5ki

@mario312
Copy link

Thanks. this worked like a charm.

@swohlert
Copy link

Have been using this for quite a while now, but I'm in the progress of adding a language to my webshop. Does anyone know a fix for this?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment