Jak ukryć metodę wysyłki jeśli dostępna jest darmowa dostawa w WooCommerce?
1 Odpowiedź
Hej!
Domyślnie WooCommerce pokazuje wszystkie dostępne metody wysyłki jednocześnie – klientka widzi i darmową dostawę, i kuriera za 15 zł. To myli i sprawia że ktoś może przypadkowo wybrać płatną opcję mimo że darmowa jest dostępna.
Ukryj płatne metody gdy jest darmowa – przez kod
W functions.php w motywie potomnym:
add_filter('woocommerce_package_rates', 'ukryj_gdy_darmowa_dostawa', 100);
function ukryj_gdy_darmowa_dostawa($rates) {
$free_shipping = false;
// Sprawdź czy wśród metod jest darmowa wysyłka
foreach ($rates as $rate) {
if ($rate->method_id === 'free_shipping') {
$free_shipping = true;
break;
}
}
// Jeśli jest darmowa - zostaw tylko ją
if ($free_shipping) {
foreach ($rates as $rate_id => $rate) {
if ($rate->method_id !== 'free_shipping') {
unset($rates[$rate_id]);
}
}
}
return $rates;
}
Wyczyść cache wysyłki po zmianach
WooCommerce cachuje metody wysyłki. Po dodaniu tego kodu wejdź do WooCommerce – Ustawienia – Wysyłka i kliknij link Wyczyść pamięć podręczną wysyłki. Bez tego zmiana może nie być widoczna od razu.
Efekt
Klientka wkłada produkty do koszyka, osiąga próg darmowej dostawy – i od tej chwili widzi tylko opcję za 0 zł. Żadnych dylematów, żadnych pomyłek. Czysto i logicznie. 😊