Masz na sklepie WooCommerce skonfigurowaną darmową wysyłkę od np. minimalnej wartości zamówienia w koszyku?
Niestety bez modyfikacji formularz zamawiania mimo osiągnięcia ustalonej wartości zamówienia nadal będzie pokazywał wszystkie dostępne metody wysyłki, a to może wprowadzić klienta w lekkie zakłopotanie.
Jak ukryć pozostałe metody wysyłki w sytuacji gdy koszyk osiągnął minimalną wartość zamówienia? Oczywiście jest kilka możliwości, można skorzystać z wtyczki:
WC Hide Shipping methods
link: https://wordpress.org/plugins/wc-hide-shipping-methods/
i w ustawieniach WooCommerce zaznaczyć checkbox, który ukryje pozostałe metody wysyłki w momencie gdy dostępna jest darmowa wysyłka.
Jednak co zrobić gdy nie chcemy korzystać z wtyczki i modyfikując WordPressa nie sięgamy po wtyczki przy każdej zmianie, nowym pomyśle? Wystarczy dokleić poniższą funkcję w motywie potomnym do pliku functions.php:
function wplab_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', 'wplab_hide_shipping_when_free_is_available', 100 );
I teraz sytuacja w koszyku po osiągnięciu minimalnej wartości zamówienia wygląda następująco: