当 Woocommerce 提供免费送货服务时,我想隐藏其他送货选项。
因为即使有免费送货选项,现在最新版本的 woocommerce 仍然显示其他送货选项。
请帮忙
当 Woocommerce 提供免费送货服务时,我想隐藏其他送货选项。
因为即使有免费送货选项,现在最新版本的 woocommerce 仍然显示其他送货选项。
请帮忙
WooCommerce 2.6+ 有这个最近的代码片段。你可以使用:
add_filter( 'woocommerce_package_rates', 'hide_other_shipping_when_free_is_available', 100, 2 );
function hide_other_shipping_when_free_is_available( $rates, $package ) {
$free = array();
foreach ( $rates as $rate_id => $rate ) {
if ( 'free_shipping' === $rate->method_id ) {
$free[ $rate_id ] = $rate;
break;
}
}
return ! empty( $free ) ? $free : $rates;
}
您将需要刷新运输缓存数据:在 woocommerce 运输设置中禁用、保存和启用、保存当前运输区域的相关运输方式。
对于 WooCommerce 2.5,你应该试试这个:
add_filter( 'woocommerce_package_rates', 'hide_shipping_when_free_is_available', 10, 2 );
function hide_shipping_when_free_is_available( $rates, $package ) {
// Only modify rates if free_shipping is present
if ( isset( $rates['free_shipping'] ) ) {
// To unset a single rate/method, do the following. This example unsets flat_rate shipping
unset( $rates['flat_rate'] );
// To unset all methods except for free_shipping, do the following
$free_shipping = $rates['free_shipping'];
$rates = array();
$rates['free_shipping'] = $free_shipping;
}
return $rates;
}
将此代码粘贴到位于活动子主题或主题中的 function.php 文件中。
参考:当 FREE SHIPPING 可用时隐藏其他运输方式(官方文档)
有关的: