php - WooCommerce: oculta otros métodos de envío cuando el ENVÍO GRATUITO está disponible
wordpress shipping (1)
Existe este fragmento de código reciente para WooCommerce 2.6+. que puedes probar:
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;
}
Deberá actualizar los datos de envío en caché: deshabilitar, guardar y habilitar, guardar los métodos de envío relacionados para la zona de envío actual, en la configuración de envío de woocommerce.
Para WooCommerce 2.5, deberías probar esto:
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;
}
Pegue este código en el archivo function.php ubicado en su tema o tema hijo activo.
Referencia:
Me gustaría ocultar otras opciones de envío cuando el envío gratuito esté disponible en Woocommerce.
Porque la última versión de woocommerce ahora todavía muestra otras opciones de envío, incluso si hay una opción de envío GRATUITO.
Por favor ayuda