选中Local Pickup时隐藏WooCommerce显示的运费金额
解决WooCommerce购物车页面选中自提选项时隐藏运费金额的问题
以下是三种实用的解决方案,根据你的需求选择即可:
方案1:纯CSS实现(最简单)
利用CSS的:checked伪类,直接定位选中状态下的自提选项价格元素并隐藏:
/* 隐藏选中状态下的自提选项运费金额 */ input.shipping_method[value^="local_pickup"]:checked + label .woocommerce-Price-amount { display: none; } /* 可选:如果需要默认隐藏自提选项的价格,添加下面这段 */ input.shipping_method[value^="local_pickup"] + label .woocommerce-Price-amount { display: none; }
使用方式:将代码添加到WordPress主题的自定义CSS面板(外观→自定义→额外CSS),或子主题的style.css文件中。[value^="local_pickup"]会匹配所有自提类型的配送方式,无需关注具体ID。
方案2:JavaScript动态控制
如果需要在切换配送选项时实时显示/隐藏价格,用JavaScript监听单选框变化:
document.addEventListener('DOMContentLoaded', function() { const shippingRadios = document.querySelectorAll('input.shipping_method'); function togglePickupPrice() { shippingRadios.forEach(radio => { const label = document.querySelector(`label[for="${radio.id}"]`); const priceSpan = label.querySelector('.woocommerce-Price-amount'); if (radio.value.startsWith('local_pickup')) { priceSpan.style.display = radio.checked ? 'none' : 'inline'; } }); } // 页面加载时初始化状态 togglePickupPrice(); // 监听选项切换事件 shippingRadios.forEach(radio => { radio.addEventListener('change', togglePickupPrice); }); });
使用方式:将代码添加到主题的footer.php文件(</body>标签前),或通过WordPress的脚本注册钩子添加。
方案3:WooCommerce钩子从源头修改(最彻底)
直接修改WooCommerce的输出逻辑,让自提选项不再渲染价格:
add_filter('woocommerce_cart_shipping_method_full_label', 'remove_local_pickup_price', 10, 2); function remove_local_pickup_price($label, $method) { if ($method->method_id === 'local_pickup') { // 仅保留自提选项名称,移除价格部分 $label = $method->get_title(); } return $label; }
使用方式:将代码添加到主题(或子主题)的functions.php文件,或使用自定义代码插件。这个方法会从根源上避免价格渲染,无需前端处理。
内容的提问来源于stack exchange,提问作者eva last
相关产品推荐
相关产品推荐

