Woocommerce可变产品仅显示一个价格(如果没有不同)并显示折扣

时间:2018-09-16 22:48:19

标签: php wordpress woocommerce

我有一个产品可变的网站。问题是,当我有一个仅含一个价格的可变产品时,可变价格就这样显示两次,而缺少折扣:

情况如何:

enter image description here

它的外观如何:

enter image description here

但是,当产品没有折扣且价格不同时,价格应显示在第一张图片上。

我该怎么做?

1 个答案:

答案 0 :(得分:0)

这是我的解决方案:

add_filter('woocommerce_variable_sale_price_html', 'custom_product_price', 10, 2);
add_filter('woocommerce_variable_price_html','custom_product_price', 10, 2 );

function custom_product_price( $price, $product ){
    $variation_min_reg_price = $product->get_variation_regular_price('min', true);
    $variation_min_sale_price = $product->get_variation_sale_price('min', true);
	$variation_min_price = $product->get_variation_price('min');
	$variation_max_price = $product->get_variation_price('max');
	$regular_price = $product->regular_price;

	if ($variation_min_price == $variation_max_price) {
		if ($product->is_on_sale() && !empty($variation_min_sale_price)) {
            $price = '<del>' .  woocommerce_price($variation_min_reg_price) . '</del>
					  <ins>' .  woocommerce_price($variation_min_sale_price) . '</ins>';
		} else {
			if(!empty($variation_min_reg_price))
				$price = woocommerce_price($variation_min_reg_price);
			else
				$price = woocommerce_price($regular_price);
		}
	} else {
		$price = woocommerce_price($variation_min_price) . ' – ' . woocommerce_price($variation_max_price);
	}
    return $price;
}