Answers:
绝对不要直接编辑核心文件和插件文件,因为任何更新都可能会覆盖您的更改。如果您在WooCommerce源代码中查找该get_price_html
方法,则可以使用许多过滤器来修改函数的输出。
有关add_filter
在apply_filters
呼叫中添加过滤器的更多信息,请参见Codex 。
从get_price_html
在class-wc-product
:
return apply_filters('woocommerce_get_price_html', $price, $this);
因此,添加您自己的过滤器:
add_filter( 'woocommerce_get_price_html', 'wpa83367_price_html', 100, 2 );
function wpa83367_price_html( $price, $product ){
return 'Was:' . str_replace( '<ins>', ' Now:<ins>', $price );
}
<del>£2</del><ins>£1</ins>
,我该如何Was:<del>£2</del> Now:<ins>£1</ins>
使用过滤器将其更改为?
woocommerce_get_price_html
过滤器中发生了什么$price
。在我的网站上,woocommerce显示免费产品改为$ 0Free!
function wpa83368_price_html( $price,$product ){
// return $product->price;
if ( $product->price > 0 ) {
if ( $product->price && isset( $product->regular_price ) ) {
$from = $product->regular_price;
$to = $product->price;
return '<div class="old-colt"><del>'. ( ( is_numeric( $from ) ) ? woocommerce_price( $from ) : $from ) .' Retail </del> | </div><div class="live-colst">'.( ( is_numeric( $to ) ) ? woocommerce_price( $to ) : $to ) .'Our Price</div>';
} else {
$to = $product->price;
return '<div class="live-colst">' . ( ( is_numeric( $to ) ) ? woocommerce_price( $to ) : $to ) . 'Our Price</div>';
}
} else {
return '<div class="live-colst">0 Our Price</div>';
}
}