更新日期:2021-12-01
woocommerce 的變動商品價格是顯示『最低價 – 最高價』,一般商場都是標示『XXX元起』,這個我們也能修改做到一樣的顯示方法。
add_filter( 'woocommerce_variable_price_html', 'variable_product_price', 10, 2 );
function variable_product_price( $v_price, $v_product ) {
if( !is_product() && !is_shop() ) return $v_price;
// Product Price
$prod_prices = array(
$v_product->get_variation_price( 'min', true ),
$v_product->get_variation_price( 'max', true )
);
$prod_price = $prod_prices[0]!==$prod_prices[1] ? sprintf(__('%1$s 起', 'woocommerce'), wc_price( $prod_prices[0] ) ) : wc_price( $prod_prices[0] );
// Regular Price
$regular_prices = array(
$v_product->get_variation_regular_price( 'min', true ),
$v_product->get_variation_regular_price( 'max', true )
);
sort( $regular_prices );
$regular_price = $regular_prices[0]!==$regular_prices[1] ? sprintf(__('%1$s 起','woocommerce') , wc_price( $regular_prices[0] ) ) : wc_price( $regular_prices[0] );
if ( $prod_price !== $regular_price ) {
$prod_price = '<del>'.$regular_price.$v_product->get_price_suffix() . '</del> <ins>' . $prod_price . $v_product->get_price_suffix() . '</ins>';
}
return $prod_price;
}