Jak wyłączyć metodę płatności PayU w zależności od metody wysyłki?

Wielu właścicieli sklepów internetowych napotyka na problem braku możliwości łatwego dostosowania widoczności metod płatności w zależności od wybranej metody wysyłki przez klienta na etapie składania zamówienia.

Jest to problem szczególnie ważny dla sklepów, które oferują różne metody wysyłki, takie jak wysyłka za pobraniem, kurierem czy paczkomatem. Dostosowanie widoczności metod płatności do wybranej metody wysyłki pozwala na uniknięcie pomyłek oraz ułatwia proces składania zamówienia dla klienta.

W tym artykule pokaże Ci jak dostosować widoczność metod płatności w przypadku wybrania przez klienta konkretnej metody wysyłki. Pokażę Ci kod na przykładzie bramki płatności PayU. Zapraszam do lektury!

Domyślne metody wysyłki w WooCommerce

W sklepie internetowym opartym na WooCommerce, mamy do dyspozycji wiele różnych metod wysyłki, które pozwalają na dostarczenie zamówionych produktów do klientów w sposób szybki i wygodny. Domyślnie, w WooCommerce, mamy do wyboru 3 podstawowe metody wysyłki – płaska stawka, darmowa wysyłka oraz odbiór osobisty.

Metoda płaska stawka – (w kodzie oznaczana jako flat_rate) pozwala na ustalenie jednej stałej opłaty za wysyłkę, niezależnie od wagi lub ilości zamówionych produktów. Jest to rozwiązanie szczególnie atrakcyjne dla sklepów, które oferują produkty o podobnej wadze lub wielkości, a także dla sklepów, które chcą zachęcić klientów do większych zakupów, oferując im darmową wysyłkę przy przekroczeniu określonej wartości koszyka.

Drugą dostępną metodą wysyłki jest darmowa wysyłka (w kodzie oznaczana jako free_shipping). Pozwala ona na darmową wysyłkę zamówień spełniających określone warunki, takie jak minimalna wartość koszyka lub konkretne produkty. Jest to świetny sposób na zachęcenie klientów do większych zakupów oraz na zwiększenie sprzedaży.

Ostatnią domyślnie dostępną metodą wysyłki jest odbiór osobisty (w kodzie oznaczana jako local_pickup). Ta opcja pozwala klientom odebrać zamówione produkty bezpośrednio w sklepie stacjonarnym lub w wybranym punkcie odbioru. Jest to rozwiązanie szczególnie atrakcyjne dla klientów, którzy chcą zaoszczędzić na kosztach dostawy, a jednocześnie mają łatwy dostęp do sklepu.

Dodatkowe metody wysyłki możemy dodać za pomocą dedykowanych do tego wtyczek. Zobacz wpis o brokerach kurierów dla WooCommerce.

Domyślne metody płatności w WooCommerce

Decydując się na stworzenie sklepu internetowego opartego na WooCommerce, po zainstalowaniu wtyczki WooCommerce, mamy do dyspozycji domyślnie 3 formy płatności – przelew tradycyjny (w kodzie oznaczana: bacs), płatność czekiem (w kodzie oznaczana: cheque) i za pobraniem (w kodzie oznaczana: cod).

Choć ta liczba może wydawać się niewielka, warto zaznaczyć, że każda z tych form płatności jest uniwersalna i powszechnie stosowana na świecie, dzięki czemu będzie dostępna dla większości klientów.

Warto jednak zwrócić uwagę, że korzystanie z tych domyślnych metod płatności może ograniczać nasze możliwości i wpłynąć na poziom sprzedaży. Dlatego musisz rozważyć dodanie innych metod płatności, które są bardziej popularne w danym kraju lub regionie.

Na przykład, w Polsce bardzo popularne są szybkie płatności online, takie jak przelewy internetowe czy płatności kartą. Możemy skorzystać z jednej z wielu dostępnych wtyczek, takich jak Stripe czy PayU, aby umożliwić klientom płatności natychmiastowe.

Przeczytaj więcej o dostępnych metodach płatności na WooCommerce.

Problem wykorzystania domyślnych metod płatności i wysyłki

Wykorzystanie domyślnych metod płatności i wysyłki nie tylko ogranicza możliwości wyboru klienta, ale też bezpośrednio przekłada się na zarobki sklepu. Na przykład w Polsce bardzo popularnym jest wybór wysyłki pobraniowej.

Zatem w takim przypadku oczywistym jest, że klient powinien móc wybrać płatność za pobraniem. Jednakże bez dodatkowych wtyczek lub kodu nie osiągniemy takiego efektu.

Innym przypadkiem może być ograniczenie metod płatności w odwrotnym przypadku. Czyli gdy chcemy wykorzystać wysyłkę kurierem lub np.: do paczkomatu i wyłączyć widoczność metody płatności za pobraniem.

Sprawdzenie kodu metody wysyłki

Po włączeniu wszystkich metod wysyłki w sklepie możemy sprawdzić ich oznaczenie w przeglądarce, na stronie podsumowania zamówienia. W tym celu należy otworzyć inspektora kodu lub inne narzędzie, które pozwoli nam podejrzeć kod HTML strony.

Następnie po najechaniu na wybraną metodę wysyłki znajdujemy pole input radio opisujące daną metodę, a w kodzie musimy znaleźć właściwość „value”.

Na poniższym zrzucie ekranu możesz zaobserwować, że „odbiór osobisty” posiada value: „local_pickup:6”. Analogicznie możemy postępować z innymi metodami wysyłki.

Sprawdzenie kodu metody płatności

Kod metody płatności możemy podejrzeć analogicznie jak kod metody przesyłki. W tym celu otwieramy inspektora kodu w przeglądarce na stronie podsumowania zamówienia i najeżdzamy na konkretną metodę płatności.

Następnie znajdujemy pole input radio opisujące daną metodę i znajdujemy właściwość value.

W poniższym przykładzie widzimy, że metoda płatności blikiem posiada value: „payublik”. I to właśnie tę wartość wykorzystamy w kodzie.

Jak wyłączyć metody płatności PayU dla wysyłki pobraniowej?

Rozwiązaniem na tego typu zagwozdki może być fragment kodu lub dedykowana do tego wtyczka. W tym fragmencie przedstawię Ci fragment kodu, który zadziałał dla sklepu WooCommerce, który wykorzystuje bramkę płatności PayU z ich dedykowanej wtyczki.

Scenariusz, dla jakiego wyłączamy metody płatności: gdy klient wybiera metodę wysyłki „za pobraniem” oraz odbiór osobisty. W przypadku tego sklepu metoda za pobraniem była oznaczona w kodzie jako: flat_rate:7, natomiast odbiór osobisty jako: local_pickup:6.

Natomiast metody płatności, jakie wyłączamy w tym scenariuszu to: bacs, payublik, payulistbanks, payusecureform, payupaypo, payutwistopl. Chcesz wyłączyć mniej lub więcej to po prostu dodaj lub usuń bazując na kodzie poniżej.

function towp_checkout( $gateways ) {
    $chosen_shipping_rates = ( isset( WC()->session ) ) ? WC()->session->get( 'chosen_shipping_methods' ) : array();

    if ( in_array( 'flat_rate:7', $chosen_shipping_rates ) or in_array( 'local_pickup:6', $chosen_shipping_rates ) ) {
        unset( $gateways['bacs'] );
        unset( $gateways['payublik'] );
        unset( $gateways['payulistbanks'] );
        unset( $gateways['payusecureform'] );
        unset( $gateways['payupaypo'] );
        unset( $gateways['payutwistopl'] );
    }

    return $gateways;
}
if(!is_admin() AND is_checkout()){add_filter( 'woocommerce_available_payment_gateways', 'towp_checkout' );}

Zatem przejdźmy do analizy powyższego kodu.

  • Linijka 1: definicja funkcji
  • Linijka 2: utworzenie tablicy z wybraną przez klienta metodą wysyłki
  • Linijka 4: Sprawdzenie, czy klient wybrał konkretną metodę wysyłki
  • Linijki 5-10: wyłączenie konkretnych metod płatności – tutaj możesz dodać lub zmienić metody płatności jakie chcesz wyłączyć.
  • Linijka 13: zwrócenie informacji, które metody płatności powinny być dostępne
  • Linijka 15: włączenie funkcji poza panelem administratora i na stronie checkout

Warunek sprawdzający tylko jedną metodę wysyłki brzmiałby następująco:

if ( in_array( 'flat_rate:7', $chosen_shipping_rates ) ) {
        unset( $gateways['bacs'] );
        unset( $gateways['payublik'] );
        unset( $gateways['payulistbanks'] );
        unset( $gateways['payusecureform'] );
        unset( $gateways['payupaypo'] );
        unset( $gateways['payutwistopl'] );
}
// pozostały kod...

Gdzie dodać kod by wprowadzić zmiany na stronie zamówienia?

Powyższy kod jest kodem w języku PHP, zatem powinien zostać dodany w pliku functions.php motywu potomnego lub jako „code snippet” we wtyczce służącej do zarządzania fragmentami kodów np.: wp code lite.

Zanim to wykonasz pamiętaj wykonać kopię zapasową, by w razie problemów cofnąć zmiany. A wprowadzanie zmian sugeruję testować na wersji staging sklepu.

Warunkowe metody wysyłki i płatności dzięki wtyczce

Wtyczki działające na WooCommerce mają to do siebie, że zwykle są płatne to znaczy, że musimy wykupić subskrypcję wsparcia i aktualizacji wtyczki. Tak jest również w tym przypadku.

Wtyczka, która załatwia nam robotę tego kodu to np.: Conditional Shipping and Payments. Wtyczka jest dostępna na marketplace WooCommerce.com za 79$ rocznie. Wtyczka jednak pozwala na znacznie więcej niż opracowany przeze mnie kod.

Oto lista możliwości wtyczki WooCommerce Conditional Shipping and Payments:

  1. Tworzenie warunkowych zasad dotyczących darmowej wysyłki:
    • Dla poszczególnych produktów, kategorii lub klas wysyłkowych.
    • Ograniczenie metod wysyłki i opłat na podstawie wagi paczki, liczby przedmiotów lub wartości koszyka.
    • Zapobieganie wysyłce poszczególnych produktów lub kategorii do ograniczonych krajów, stanów i kodów pocztowych.
    • Ograniczenie opcji wysyłki i płatności dla określonych klientów i ról klientów, takich jak posiadacze członkostw lub klienci hurtowi.
    • Wykorzystywanie określonych bramek płatności do zakupu subskrypcji lub oferowania darmowej wysyłki przy odnowieniu subskrypcji.
  2. Ograniczanie metod wysyłki:
    • Dla poszczególnych produktów, kategorii lub klas wysyłkowych.
    • Na podstawie wagi, ilości przedmiotów lub wartości koszyka.
    • Podczas aktywacji kodu kuponu.
    • Podczas zakupu subskrypcji.
    • Dla poszczególnych klientów, ról klientów lub członków strony.
  3. Ograniczanie bramek płatności:
    • W zależności od metody wysyłki, kraju, stanu lub kodu pocztowego.
    • W zależności od wybranego kraju rozliczeniowego.
    • Na podstawie wartości zamówienia lub waluty.
    • Dla poszczególnych produktów, kategorii produktów lub klas wysyłkowych.
    • Podczas płatności za subskrypcje.
    • Dla poszczególnych klientów, ról klientów lub członków strony.
  4. Tworzenie ograniczeń dotyczących wysyłki do określonych krajów i stanów:
    • Stworzenie zasad dla produktów, kategorii produktów lub klas wysyłkowych.
    • Tworzenie niestandardowych zasad warunkowych na podstawie zawartości koszyka lub wartości przesyłki.
    • Ograniczenia na podstawie ról klientów lub członkostw.
  5. Dostosowywanie zasad wysyłki do przepisów celnych i warunków przewoźników:
    • Utworzenie zasad dla konkretnych krajów lub stanów, aby spełnić wymagania przepisów importowych.
    • Dostosowanie zasad wysyłki do warunków przewoźników, takich jak ograniczenia wagowe czy terytorialne.
  6. Wsparcie dla różnych ról klientów i członkostw:
    • Możliwość ograniczenia dostępności opcji wysyłki i płatności dla określonych grup klientów, takich jak hurtownicy, posiadacze członkostw czy zarejestrowani użytkownicy strony.
  7. Elastyczność w dostosowywaniu zasad:
    • Wtyczka pozwala na tworzenie indywidualnych zasad, które można łączyć i dopasowywać w zależności od potrzeb sklepu.
  8. Integracja z subskrypcjami:
    • Możliwość zarządzania zasadami dla zakupów subskrypcji, takich jak oferowanie darmowej wysyłki przy odnowieniu czy ograniczenie dostępnych bramek płatności.
  9. Personalizacja oferty dla klientów:
    • Ograniczenie lub ukrywanie opcji wysyłki i płatności w zależności od indywidualnych klientów, ich ról czy członkostw, umożliwiając dostosowanie oferty do potrzeb każdego użytkownika.
  10. Obsługa kuponów rabatowych:
    • Ustalanie zasad, które aktywują się podczas użycia kodu kuponu, umożliwiając na przykład bezpłatną wysyłkę, ograniczenie dostępnych metod wysyłki czy dostosowanie bramek płatności.

Podsumowanie

Zanim dodasz wtyczkę lub kod PHP do swojego sklepu, pamiętaj o kopiach bezpieczeństwa, a najlepiej przetestuj działanie na wersji staging sklepu. Dzięki temu unikniesz przerw w działaniu sklepu.

Jeśli chciałbyś zlecić uruchomienie sklepu lub modyfikacje w nim, to zapraszam Cię do kontaktu ze mną. Chętnie Ci pomogę.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *