如何在WooCommerce产品页面显示含对应价格的自定义积分提示文本?
解决WooCommerce产品短描述区域动态显示价格对应积分的问题
我来帮你搞定这个动态显示积分的需求!你当前的代码只是输出固定文本,没有调用当前产品的价格数据,所以没法实现“价格多少就显示多少积分”的效果。我们只需要在函数里获取当前产品的价格,再把它插入到提示文本里就行,具体修改如下:
修改后的代码
add_action( 'woocommerce_single_product_summary', function() { // 获取当前产品的全局对象 global $product; // 先确认产品对象有效,避免在非产品页面触发错误 if ( ! is_a( $product, 'WC_Product' ) ) { return; } // 获取产品的价格(返回的是字符串格式的价格数值) $product_price = $product->get_price(); // 输出带动态积分的提示文本,用esc_html转义确保安全 echo '购买此产品可获得' . esc_html( $product_price ) . '积分'; }, 25 );
额外说明
- 安全处理:用
esc_html()转义价格输出是WordPress开发的最佳实践,可以避免潜在的XSS安全问题。 - 整数积分处理:如果你的产品价格是带小数的(比如59.99美元),但积分需要取整数,只需要把获取价格的部分改成:
然后输出时用$product_points = intval( $product->get_price() );$product_points代替$product_price即可。 - 代码放置位置:建议把代码放到你的子主题
functions.php文件里,这样主题更新时不会丢失自定义代码;如果没有子主题,也可以放到主主题的functions.php,但记得提前备份。
内容的提问来源于stack exchange,提问作者Hsfar
相关产品推荐
相关产品推荐

