WooCommerce 2 toon Vanaf prijs en geen prijsrange

1 maart 2014 om 18:40

Je kan aan WooCommerce op twee manieren prijzen toevoegen:

  1. Een product heeft één prijs
  2. Een product heeft meerdere prijzen

In het geval van optie 2 kan je denken aan een broek met verschillende maten, kleuren of opties. WooCommerce zal dan de prijs op de overzicht- en detailpagina’s tonen als een prijsrange van bijvoorbeeld “€ 200 – 300”.

Als dit niet wenselijk is kan je door middel van de onderstaande PHP functie de vanaf prijs tonen. Er komt op de overzicht- en detailpagina’s dan “Vanaf € 100” te staan. De functie plaats je in het functions.php bestand van je webwinkel thema.

Bekijk ook het nieuwe bericht “WooCommerce toon Vanaf prijs en geen prijsrange bij aanbiedingen“.

/**
* Show a minimum price not a price range.
* Version: Woocommerce 2.0
**/
add_filter('woocommerce_variable_price_html', 'custom_variation_price', 10, 2);
function custom_variation_price( $price, $product ) {
	if ($product->min_variation_price) {
		$price  = '<span>' . _e('Vanaf') . '</span>';
		$price .= woocommerce_price($product->min_variation_price);
	}

	return $price;
}

Als je alleen wilt dat de tekst “Vanaf” getoond wordt als er een verschil tussen de minimale/maximale prijs zit gebruik dan onderstaande code:

Woocommerce 2.0

/**
 * Show only the text "Vanaf" when there is a difference between
 * $product->min_variation_price AND $product->max_variation_price
 * Version: Woocommerce 2.0
 */
add_filter('woocommerce_variable_price_html', 'custom_variation_price_ifdiffer', 10, 2);
function custom_variation_price_ifdiffer( $price, $product ) {
	if ($product->min_variation_price !== $product->max_variation_price) { 
		$price = '' . _e('Vanaf') . ' ';
		$price .= woocommerce_price($product->min_variation_price);
	}			

	return $price;
}

Woocommerce 3.0

/**
 * Show only the text "Vanaf" when there is a difference between
 * $product->min_variation_price AND $product->max_variation_price
 * Version: Woocommerce 3.0
*/
add_filter('woocommerce_variable_price_html','custom_variation_price_ifdiffer', 10, 2);
function custom_variation_price_ifdiffer( $price, $product ) {
	if (count($product->get_children()) > 1) {
		$price = '' . _e('Vanaf') . ' ';
		$price .= woocommerce_price($product->price);
	}	

	return $price;
}

 

Getest op: WordPress 4.0.1 en Woocommerce 2.2.8.

Tweet about this on TwitterGoogle+Share on FacebookPrint this page