Woocommerce ha da sempre il problema che quando si raggiunge la spedizione gratuita offre comunque le altre spedizioni.
Fortunatamente è sufficiente inserire una porzione di codice che permette di disabilitare le altre spedizioni in caso di spedizione gratuita.
E’ sufficiente copiare e incollare questo codice al termine del file functions.php nel vostro tema (meglio se nel vostro tema “figlio”).
Questo codice è testato sulla versione 4.7 di Woocommerce
/** * Free Shipment only Payment */ 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 );