Product Archive, Product Page

WooCommerce Change “$0.00” To “Free”

WooCommerce product showing custom text instead of 0


There are no pre-requisites in order for you to be able to implement this solution.

How To Implement This Solution?

Simply copy the pre-coded solution to your active theme’s functions.php or preferably the Code Snippets Plugin.

About This Solution

If you have products which are free, the single product template and archive loop item will display the price as “$0.00” by default. This default display could confuse users. A better options would be to display text like “Free” or “Price on application”. This snippet looks at whether a product has a price or if it is set to 0 and if true, will display custom text.

 * Snippet Name:	WooCommerce Change "$0.00" to "Free"
 * Snippet Author:

add_filter( 'woocommerce_get_price_html', 'ecommercehints_change_zero_price_display', 10, 2 );
function ecommercehints_change_zero_price_display( $price, $product ) {
if (empty($product->get_price()) || $product->get_price() == 0) { // If price is not entered or set to 0
$price = __( 'Free', 'woocommerce' );
return $price;

Snippet Benefits

  • Override the display for the $0.00 price when a product does not have a price or if it is set to 0 (free).

100 WooCommerce Conversion Rate Optimisation Tips

This field is for validation purposes and should be left unchanged.

Let’s collaborate!

Need to outsource WordPress development?

Join forces with UnlimitedWP for an outsourced white label web development service you can truly rely on.

First Timer Here?

Sign up to receive 20% off on your first month with us.