WooCommerce 3.0 – woocommerce_free_price_html – No Longer Working

Feb 14, 2018

WooCommerce 3.0 – woocommerce_free_price_html – No Longer Working


This post was originally created on our sister site WP Cover.
View Original Article
February 14, 2018

WooCommerce 3.0 has arrived!  While many are jumping for joy at new features & improved code, there’s some of us that have had to devote some time to putting out fires.  WooCommerce 3.0 depreciated, added, and modified some important filters & API requests that were working in 2.0 causing client bugs.  One issue we’ve recently come across is with the following filters:

  • woocommerce_free_price_html
  • woocommerce_variable_free_price_html
  • woocommerce_variation_free_price_html

 
Our previous function as shown below, was utilized with Advanced Custom Fields to manipulate the text that was displayed when the product price was set to $0.00:

 

add_filter( 'woocommerce_variable_free_price_html','wpcover_free_price_text' );
add_filter( 'woocommerce_free_price_html','wpcover_free_price_text' );
add_filter( 'woocommerce_variation_free_price_html','wpcover_free_price_text' );

function wpcover_free_price_text( $price ) {
	global $post;
	if(get_field('wpc_price_headline', $post->ID)) {
		return get_field('wpc_price_headline', $post->ID);
	} else {
		return '$10 / Per Team';
	}
}

As you can see from the above snippet, the code would check if the price of a simple or variable product had a regular price of $0.00. If so, it checked to see if the product had a valve in the Advanced Custom Field of wpc_price_headline, if not it returned some standard text.

What Happened & The Fix

Information on why exactly this filter stop working was hard to come by. From what I did find within the WooCommerce site, it was depreciated due to localization issues. However, the fix was pretty straight-forward and worked nicely, here is what I did:

add_filter( 'woocommerce_get_price_html','wpcover_free_price_text' );

function wpcover_free_price_text( $price, $product ) {
	global $post;
	global $product;
	$pprice = $product->get_price();
	if($pprice == '0.00') {
		if(get_field('wpc_price_headline', $post->ID)) {
			return get_field('wpc_price_headline', $post->ID);
		} else {
			return '$10 / Per Team';
		}
	}
}

There’s your fix!

The post WooCommerce 3.0 – woocommerce_free_price_html – No Longer Working appeared first on WP Cover.

Additional News

Perfect!

Let's get started. Fill out the form below to email us or request a call back.