当 WooCommerce 3 中提供免费送货时,我正在使用隐藏详细信息统一费率,稍微更改了答案代码以隐藏除一种以外的所有送货方式。我要显示的唯一方法是“Woocommerce Advanced Shipping”插件的费率。
我正在使用正确的费率 ID 等...
一切正常,除非客户尝试单击该运输方式,但它不会保持选中状态。它只是跳回免费送货。
我已经尝试过调试,还尝试了带有原生 woocommerce 统一费率 ID 的代码,它显示/能够很好地选择它。
add_filter( 'woocommerce_package_rates', 'conditionally_hide_shipping_methods', 100, 2 );
function conditionally_hide_shipping_methods( $rates, $package ) {
$flat_rates_express = array( '2588' );
$free = $flat2 = array();
foreach ( $rates as $rate_key => $rate ) {
// Updated Here To
if ( in_array( $rate->id, $flat_rates_express ) )
$flat2[ $rate_key ] = $rate;
if ( 'free_shipping:12' === $rate->id )
$free[ $rate_key ] = $rate;
}
return ! empty( $free ) ? array_merge( $free, $flat2 ) : $rates;
}
我要保持显示的 ID:“2588”(来自插件的自定义运费)
当可以免费送货时,如何禁用统一运费方式并保持自定义运费(来自插件)?