DeveWork

WooCommerce 自定义商品价格显示HTML结构

WooCommerce 虽然有中文本地化支持,但整个插件本身是按照欧美人的习惯去开发的,一些细节上不可能做到各个国家或地区的用户满意。下面就用一个例子抛砖引玉,自定义商品价格显示HTML结构。

默认的话,WooCommerce 输出商品价格显示HTML结构是这样的(当商品本身设置了一般价格与优惠价):

	
	促销中
            
		

商品名称

¥109.00 ¥99.00

前端显示的话类似:

新旧价格的显示大概遵循“¥109.00 ¥99.00”的形式,但根据国人的习惯(不知道是不是这样?),一般显示为 “¥99.00 ¥109.00 ”。要想显示出我们的效果的话,那就可以通过对woocommerce_get_price_html 函数下刀,hook之。

代码如下:

price > 0 ) {
      if ( $product->price && isset( $product->regular_price ) ) {
        $from = $product->regular_price;
        $to = $product->price;
        return ''.( ( is_numeric( $to ) ) ? woocommerce_price( $to ) : $to ) .'
        '. ( ( is_numeric( $from ) ) ? woocommerce_price( $from ) : $from ) .' ';
      } else {
        $to = $product->price;
        return '' . ( ( is_numeric( $to ) ) ? woocommerce_price( $to ) : $to ) . '';
      }
   } else {
     return '免费';
   }
}
?>

代码已经托管到 Github gist 上:https://gist.github.com/Jeff2Ma/91c6f19ab63552be269c