WooCommerce感谢页:移除商品列表(ex.vat)标签,仅保留小计项
刚好碰到过类似的需求,给你两个可行方案,优先推荐第一种,不用改模板,能兼容WooCommerce后续升级:
方案一:使用PHP钩子函数(推荐)
这个方法通过WooCommerce自带的钩子,只在感谢页(订单收到页面)移除商品列表里的(ex.vat)标签,完全不影响小计栏的显示:
- 打开你的WordPress子主题(一定要用子主题,避免主题升级丢失修改)的
functions.php文件 - 把下面的代码粘贴到文件末尾:
add_filter( 'woocommerce_order_item_price_html', 'remove_ex_vat_from_thankyou_product_list', 10, 3 ); function remove_ex_vat_from_thankyou_product_list( $price_html, $item, $order ) { // 仅在感谢页执行替换操作 if ( is_wc_endpoint_url( 'order-received' ) ) { // 替换掉商品价格里的(ex.vat),如果你的显示是带空格的(ex. vat),就把引号里的内容改成这个 $price_html = str_replace( '(ex.vat)', '', $price_html ); } return $price_html; }
- 保存文件,刷新感谢页就能看到效果了
原理:这个钩子专门针对订单中单个商品项的价格HTML输出,我们只在感谢页触发替换,小计属于订单总计区域的独立输出,不会被这个钩子影响,所以会保留(ex. vat)标签。
方案二:修改感谢页模板(适合习惯改模板的开发者)
如果钩子方法不生效(比如你的价格显示是自定义插件修改过的),可以直接修改感谢页的模板文件:
- 从WooCommerce插件目录复制模板文件:
wp-content/plugins/woocommerce/templates/checkout/thankyou.php - 把复制的文件放到你的子主题对应目录:
wp-content/themes/你的子主题名称/woocommerce/checkout/(如果目录不存在就手动创建) - 打开子主题里的
thankyou.php,找到商品列表循环的部分(大概是从foreach ( $order->get_items() as $item_id => $item ) :开始的代码块) - 找到输出商品价格的代码行(通常是
echo $item->get_formatted_price();),把它替换成下面的代码:
$item_price = $item->get_formatted_price(); // 仅在感谢页移除(ex.vat)标签 if ( is_wc_endpoint_url( 'order-received' ) ) { $item_price = str_replace( '(ex.vat)', '', $item_price ); } echo $item_price;
- 保存文件后刷新感谢页即可
注意事项
- 替换的字符串要和你页面上实际显示的完全一致,比如如果是
(ex. vat)(带空格),就把代码里的(ex.vat)改成(ex. vat) - 如果你用了自定义的订单商品显示插件,可能需要调整替换的目标元素,比如检查页面HTML里的具体文本内容
内容的提问来源于stack exchange,提问作者GravityCode
相关产品推荐
相关产品推荐

