Display FREE Text Instead of Zero Price in WooCommerce

Replace WooCommerce default zero price display with attractive FREE label using woocommerce_cart_item_price and woocommerce_cart_item_subtotal filters for cart and checkout pages. Check product price with get_price method detecting zero or empty values, return custom FREE label with HTML span styling, apply to single product pages with woocommerce_get_price_html filter, use empty or zero comparison checking price status, style FREE text with color and CSS for visual appeal, make free products more enticing than $0.00 display, improve conversion rates with psychological pricing, and provide better user experience clearly indicating no-cost products throughout shopping journey.

Display β€œFREE” if Product Price is 0 or Empty On WooCommerce Cart Page Or Checkout Page.

Woocommerce Woocommerce Hooks Wordpress

Display β€œFREE” if Product Price is 0 or Empty On WooCommerce Cart Page Or Checkout Page. Tutorial/Guide

Do you ever need to replace the default WooCommerce pricing label for a free product?

  If we ask any user what will he/she like the text "FREE" or a price tag of "0.00". Majority will say "Free" Attracts More.   Now Let's talk about WooCommerce ,In WooCommerce when product price is zero or empty then on cart page or checkout page and product page will show zero price ($0.00). Instead of showing the default WooCommerce pricing label of $0.00, you want to show custom text,like “FREE” or “Download Now”. In Previous Image we so price tag , But I still believe “FREE” looks much better than “$0.00”. It’s much more enticing, isn’t it?  

For Cart and Checkout Page:

 

function FreeCartItemPriceCustomLabel( $price, $cart_item, $cart_item_key ) {
 $FreeLabel = '<span class="amount" style=" color: #f7ad06 !important; ">' . __('Free') . '</span>';
 if( $cart_item['data']->get_price() > 0 ){
  return $price;
 }else{
  return $FreeLabel;
 }
}
add_filter('woocommerce_cart_item_subtotal','FreeCartItemPriceCustomLabel', 21, 3);
add_filter('woocommerce_cart_item_price','FreeCartItemPriceCustomLabel', 21, 3);

 

For Single Product Page:

  Display “FREE” if WooCommerce Product Price is 0 or Empty on Single Product Page  

function FreeCartItemPriceCustomHtml( $price, $product ) {
 if ( '' === $product->get_price() || 0 == $product->get_price() ) {
  $price = 'FREE';
 }  
}
add_filter('woocommerce_get_price_html','FreeCartItemPriceCustomHtml', 21, 2);

Or

 

function FreeCartItemPriceCustomHtml( $price, $product ) {
 if ( empty( $product->get_price() ) ) {
  $price = 'FREE';
 }  
}
add_filter('woocommerce_get_price_html','FreeCartItemPriceCustomHtml', 21, 2);

  Using "if" conditional statement we are just checking the price to make sure that it is “empty” i.e. free or price zero, and then if it is, returning different label text which in the case above is the word “FREE”.   If the product is not free, then we don’t change anything and return the original price.    

πŸ’‘ Have a Coding Problem?

Search our archives or reach out to our team for solutions and expert advice.