你居然能来这篇笔记,那么大概率是因为你设置好WooCommerce的配送功能后遇到了这种情况。这个一直都是WooCommerce一个反人类的小BUG,当你可以享受包邮时,其他的付费选项还出现是不合理的。有些高级主题会自己去掉多余的配送选项,而有些不会。下图是Elementor的checkout widget,它这里就不会自己删除,我们看看需要什么操作。
有一些用户可能看到你网站上哪写着到一定金额就免运费,所以在付款的时候不会具体看运费这一块了,可能会导致最后有不良的影响。
通过插件删除多余配送选项
这种插件后台非常多,我这随便说个:Hide shippig Method,你下载插件安装后,它其实就自动运行了,不需要任何其他操作。
它还可以添加一些额外的显示规则,这个就看你自己的需求了。它默认设置就是当有包邮选项时,其他选项消失。
或者用WC Hide Shipping Methods,它的设置没有像上面那个那么花里胡哨,就是单纯的隐藏付费选项。
通过代码删除多余配送选项
你可以通过代码插件运行代码或者用子主题添加自定义代码,这是最“干净”的方法。
function my_hide_shipping_when_free_is_available( $rates ) {
$free = array();
foreach ( $rates as $rate_id => $rate ) {
if ( 'free_shipping' === $rate->method_id ) {
$free[ $rate_id ] = $rate;
break;
}
}
return ! empty( $free ) ? $free : $rates;
}
add_filter( 'woocommerce_package_rates', 'my_hide_shipping_when_free_is_available', 100 );