Woocommerce变量产品只显示一个价格,如果没有不同并显示折扣

问题描述 投票:-1回答:1

我有一个可变产品的网站。问题是当我有一个只有一个价格的可变产品时,可变价格会显示两次,并且折扣丢失:

怎么样:

enter image description here

它应该如何:

enter image description here

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

我怎样才能做到这一点?

php wordpress woocommerce
1个回答
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;
}
© www.soinside.com 2019 - 2024. All rights reserved.