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