如何解决当WooCommerce中有其他特定的送货方式处于活动状态时,隐藏特定的送货方式
启用免费送货后,有很多方法可以隐藏送货方式。
我的问题是,我总是为网站上的每个订单提供免费送货服务。
同时,我还提供了“更快”的交付方式,需要额外付款。
因此,在这种情况下,Internet上的代码对我没有帮助。
因此,当出现其他特定的运输方式时,如何隐藏特定的运输方式。
我将举一个例子。
对于价格在350美元以下的订单,网站上提供2种运输选项:
一种。通过常规邮件免费送货
b。通过特快专递交付,费用为35美元
订购350个以上时,有3个选项。
一种。通过常规邮件免费送货
b。通过特快专递交付,费用为35 $
C。免费送货。
在此示例中,我想在出现货件c时隐藏货件b。
我进行了很多搜索,但没有找到任何方法。任何帮助表示赞赏。
解决方法
已更新-添加了丢失的;
首先,您需要获得正确的运输费率IDs ,以用于“通过特快专递交付($ 35)”和“通过特快专递免费送货”。
这可以在检查运输方式单选按钮上(使用浏览器检查器)检查生成的html代码时执行。所以您会看到类似的内容:
其中送货方式费率ID为free_shipping:10
(单选按钮“值”)。
当可用“特快专递免费送货”时,下面的代码将隐藏“特快专递收费(费用$ 35)”(您必须设置两个运费ID)*:
add_filter( 'woocommerce_package_rates','customizing_shipping_methods',10,2 );
function customizing_shipping_methods( $rates,$package ) {
$flat_express_delivery_rate_id = 'flat_rate:12'; // Paid delivery by express mail (cost $35)
$free_express_delivery_rate_id = 'free_shipping:10'; // Free delivery by express mail
// When Free delivery by express mail is available
if( isset($rates[$free_express_delivery_rate_id]) ) {
// Remove Paid delivery by express mail (cost $35)
unset($rates[$flat_express_delivery_rate_id]);
}
return $rates;
}
代码进入活动子主题(或活动主题)的functions.php文件中。经过测试,可以正常工作。
刷新运输方式
保存此代码后,请清空购物车以刷新运输方式,或者如果需要,请转到运输区域设置,然后禁用/保存并重新启用/保存来自运输区域的所有运输方式。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。