如何在WooCommerce结账页为自定义费用名称添加可点击链接
WooCommerce结账页为危险品自定义费用添加链接方案
PHP方案(推荐)
利用woocommerce_cart_totals_fee_label过滤器,仅在前端购物车/结账页修改费用标签显示,后台、邮件及发票中的费用名称保持纯净。
add_filter( 'woocommerce_cart_totals_fee_label', 'append_link_to_dangerous_goods_fee', 10, 2 ); function append_link_to_dangerous_goods_fee( $label, $fee ) { // 匹配你的自定义费用名称关键词,比如你设置的费用名是"危险品处理费"或"Dangerous Goods Handling Fee" if ( str_contains( $fee->name, '危险品' ) || str_contains( $fee->name, 'Dangerous Goods' ) ) { // 替换为你的运费政策页面链接,可添加target="_blank"新窗口打开 $label .= ' <a href="/shipping-policy#dangerous-goods" target="_blank">(查看详情)</a>'; } return $label; }
说明
- 该过滤器仅作用于前端购物车和结账页的费用标签渲染,不会影响后台订单、邮件通知及发票中的费用名称
- 将代码添加到当前主题的
functions.php文件,或自定义功能插件中 - 需根据实际费用名称调整匹配关键词,替换链接为你的运费政策URL
JavaScript方案(前端DOM修改)
如果无法修改PHP代码,可通过前端JS动态添加链接,仅在结账页前端生效。
jQuery(document).ready(function($) { // 初始化时添加链接 addDangerousGoodsFeeLink(); // 监听购物车更新事件,避免更新后链接消失 $(document.body).on('updated_cart_totals', addDangerousGoodsFeeLink); function addDangerousGoodsFeeLink() { $('.woocommerce-checkout-review-order-table tr.fee').each(function() { var $feeLabel = $(this).find('th'); var labelText = $feeLabel.text(); // 匹配费用名称关键词 if (labelText.includes('危险品') || labelText.includes('Dangerous Goods')) { // 避免重复添加链接 if (!$feeLabel.find('a').length) { $feeLabel.append(' <a href="/shipping-policy#dangerous-goods" target="_blank">(查看详情)</a>'); } } }); } });
说明
- 将代码添加到主题的自定义JS设置区域,或通过
wp_enqueue_script方式加载 - 需根据实际费用名称调整匹配关键词,替换链接为你的运费政策URL
- 监听
updated_cart_totals事件,确保用户修改购物车内容后链接仍能正常显示
内容的提问来源于stack exchange,提问作者Richard
相关产品推荐
相关产品推荐

