You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在WooCommerce单个产品页面将价格移至短描述下方?

解决WooCommerce单个产品页面价格重复显示的问题

嘿,这个问题我碰到过好多次,核心原因其实是你移除价格时用错了优先级,再加上Movedo主题的自定义逻辑影响,才导致价格显示两次的。

为什么会出现重复?

  • 原生WooCommerce里,woocommerce_template_single_price在woocommerce_single_product_summary钩子上的默认优先级是10,但你写的remove_action用了优先级4——等于根本没移除掉原来的价格输出!
  • 之后你又用add_action添加了一个优先级29的价格,所以页面上就同时存在原生(优先级10)和你新增(优先级29)的两个价格了。

一步步修正方案

1. 先修正基础代码(解决优先级错误)

把你子主题functions.php里的代码替换成下面的,确保正确移除原生价格:

// 移除原生WooCommerce的产品价格(注意优先级是10,这是官方默认值)
remove_action('woocommerce_single_product_summary', 'woocommerce_template_single_price', 10);
// 在短描述下方添加价格(短描述默认优先级是20,29会确保在它之后显示)
add_action('woocommerce_single_product_summary', 'woocommerce_template_single_price', 29);

2. 如果还是重复?检查主题自定义钩子

Movedo主题可能已经自定义了产品价格的输出逻辑,比如用了自己的函数来渲染价格。这时候需要额外移除主题添加的价格:

  • 打开Movedo主题的functions.php或者woocommerce/single-product.php文件,搜索woocommerce_single_product_summary相关的价格动作,大概率会看到类似这样的代码:
    add_action('woocommerce_single_product_summary', 'greatives_movedo_single_product_price', 10);
    
  • 把这个主题自定义的价格动作也移除,更新你的子主题代码:
    // 移除原生价格
    remove_action('woocommerce_single_product_summary', 'woocommerce_template_single_price', 10);
    // 移除Movedo主题自定义的价格(根据你找到的函数名和优先级修改)
    remove_action('woocommerce_single_product_summary', 'greatives_movedo_single_product_price', 10);
    // 重新添加价格到短描述下方
    add_action('woocommerce_single_product_summary', 'woocommerce_template_single_price', 29);
    

验证小技巧

先把你子主题里的价格相关代码注释掉,刷新产品页面:如果这时候价格还在原来的位置,说明主题确实自定义了价格输出,必须找到对应的函数移除才行。

内容的提问来源于stack exchange,提问作者user11158581

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.13 06:30:31