WooCommerce – Ukryj wszystkie formy dostawy, jeżeli dostępna jest darmowa wysyłka

Jednym z największych problemów w e-commerce są porzucone koszyki i niska konwersja, która wynika często z niejasnego lub zbyt skomplikowanego procesu zakupu.

Oto pytanie, które otrzymałem w Wielkanoc przed północą:

W moim sklepie (…) prowadzę akcję, która za zakupy powyżej 100zł obniża koszty wysyłki, jednak mimo spełnienia warunków dalej wyświetla się domyślna i płatna wysyłka, a darmową trzeba wybrać klikając w odpowiednie miejsce. Chciałbym aby to było automatyczne lub aby znikała płatna przesyłka.

W odpowiedzi na nie dzisiaj przedstawię prosty sposób jak można uprościć kartę zamówienia, w przypadku kiedy korzystasz z darmowej dostawy, a zamówienie się na nią kwalifikuje.

Tak wygląda standardowo ekran zamówienia i wyboru formy dostawy zamówionych w sklepie produktów:

Nam zależy, aby w przypadku, gdy zamówienie może zostać zrealizowane z darmową wysyłką – Nie pokazywały się inne, płatne formy dostawy, a to zmniejsza ilość kroków i kliknięć jakie dzielą klienta od płatności i zatwierdzenia zamówienia i końcowo wpływa na wzrost konwersji.

A więc chcemy osiągnąć taki efekt:

Czyli brak wyboru opcji płatnych – wyświetlanie informacji o darmowej przesyłce leży w gestii motywu – czasami wyświetla się informacja, a czasami poprostu nic.

Poniżej znajduje się kod do wklejenia w functions.php (np. Motywu potomnego) lub wtyczkę funkcyjną.



This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters


/**
* Hide shipping rates when free shipping is available.
* Updated to support WooCommerce 2.6 Shipping Zones.
*
* @param array $rates Array of rates found for the package.
* @return array
*/
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 );

Link do kodu na GitHub

Oceń ten artykuł jako pierwszy
dHosting najlepszy serwer dla wordpress i nie tylko
Powiązane tematy: WordPress

Na stronie mogą znajdować się linki polecające (affiliacyjne), które pozwalają utrzymać bloga. Zakup z mojego polecenia nie generuje dla Ciebie dodatkowych kosztów, a ja otrzymam prowizje od kwoty zapłaconej.

4 komentarze do wpisu “WooCommerce – Ukryj wszystkie formy dostawy, jeżeli dostępna jest darmowa wysyłka”

  1. Maciej

    Ta funkcja pokaże tylko pierwszą opcję darmowej wysyłki. Jeżeli mamy ich więcej, np. darmowy kurier, darmowa poczta, darmowe paczkomaty, wystarczy zakomentować linię 13. linię skryptu (break;). Dodaj dwa prawe slashe (//) na początku linii.

    //break;

    1. Jakub Jaworowicz[ Autor Artykułu ]

      Dzięki za uzupełnienie :)

  2. Ecola

    Przydatny kod. Dziękuję. Amatorom wklejającym ten kod warto przypominać, że na końcu koniecznie musi być ?> bez spacji na końcu :-) W przeciwnym razie wordpress nie bedzie chcial logować żadnego admina.

    1. Jakub Jaworowicz[ Autor Artykułu ]

      To już zależy od motywu, kod wklejam jako wersję do dodania na końcu lub w treści :) więcej szkód by mogło zrobić gdybym dodał na mońcu ?> i ktoś by potem wkleił kolejny kod bez rozpoczynającego

Przyłącz się do dyskusji