Wsparcie » Używanie i konfiguracja WordPressa » Darmowa wysyłka pow której zniknie opcja płatnego kuriera

  • Rozwiązany macmar

    (@macmar)


    Witam,
    jak w temacie
    tzn chodzi mi o to jak zrobić taki oto myk:
    przy zamówieniach do kwoty 300zł pokazuje się w koszyku wybór metody płatności/wysyłki:
    Kurier płatny
    Wysyłka za pobraniem (kwota)
    Odbiór osobisty
    mam nastawione, że powyżej 300zł jest możliwość darmowej wysyłki (przy przedpłacie), ale w koszyku wygląda to jak poniżej:
    Kurier płatny
    Kurier bezpłatny
    Wysyłka za pobraniem
    Odbiór osobisty

    a chciałbym aby powyżej 300zł kurier płatny znikał z widoku dla klienta – bo wprowadza niepotrzebne zamieszanie… i nie powiem mnie też to wqrza

    próbowałem już wtyczki active payments – działała spoko ale po aktualizacji WP wywala mi stronę – więc musiałem ją usunąć
    szukałem innych wtyczek, ale z wielu przejrzanych (naprawdę bardzo wielu) żadna nie działa tak jakbym tego oczekiwał – wszystkie te wtyczki wyrzucają z koszyka wszystkie metody i pozostaje TYLKO darmowa wysyłka, a chciałbym żeby było jeszcze za pobraniem i odb. os.
    ma ktoś pomysł jak to rozwiązać?

    z góry dzięki za pomoc!

Viewing 13 replies - 1 through 13 (of 13 total)
  • Moderator Paweł Knapek

    (@adpawl)

    np. coś w ten deseń

    function hide_shipping_when_free_is_available( $rates ) {
     $new_rates = array(); $free = false;
     $allowed_rates = array('free_shipping', 'local_pickup'); //dozwolone metody przy darmowej wysyłce
    	
     foreach ( $rates as $rate_id => $rate ) {
      if ( 'free_shipping' === $rate->method_id ) $free = true;
      if( in_array( $rate->method_id, $allowed_rates ) ) {
       $new_rates[ $rate_id ] = $rate;
      }
     }
     return ( $free === true ) ? $new_rates : $rates;
    }
    add_filter( 'woocommerce_package_rates', 'hide_shipping_when_free_is_available', 100 );
    macmar

    (@macmar)

    rozumiem ten kod wkleić do functions.php w motywie tak?

    macmar

    (@macmar)

    wkleiłem, ale nie o to do końca mi chodziło
    znika płatna wysyłka ale znika też płatna wysyłka za pobraniem – a za pobraniem chciałem żeby zostawało…

    Moderator Paweł Knapek

    (@adpawl)

    Tutaj sobie w tablicy dopisujesz te swoje dodatkowe metody jakie maja pozostać
    $allowed_rates = array('free_shipping', 'local_pickup');

    macmar

    (@macmar)

    dziękuję!
    a jak nazywa się płatność za pobraniem w woocommerce? bo nie mogę tego znaleźć

    $allowed_rates = array(‚free_shipping’, ‚local_pickup’, ‚za pobraniem’);

    macmar

    (@macmar)

    wpisałem tak
    $allowed_rates = array(‚free_shipping’, ‚local_pickup’, ‚cod’);

    ale nie działa

    macmar

    (@macmar)

    wpisałem cash_on_delivery
    wywaliło błąd i strona się zwiesiła – przywróciłem stary plik functions
    ale na edgu działała strona z cash_on_delivery w pliku – i też nie wyświetlało za pobraniem

    Moderator Paweł Knapek

    (@adpawl)

    Płaska stawka – flat_rate
    Darmowa wysyłka – free_shipping
    Odbiór osobisty – local_pickup

    Użyłeś pewnie płaskiej stawki, dlatego kasuje.|
    Zamiast tego, płatne pobranie zrób ostatnią opcją.

    macmar

    (@macmar)

    zrobiłem tak:

    $allowed_rates = array('free_shipping', 'local_pickup', 'cod'); – nie działa
    $allowed_rates = array('free_shipping', 'local_pickup', 'cash_on_delivery'); – wywala stronę

    a flat rate – skąd będzie program wiedział że to za pobraniem?
    w ustawieniach woocommerce pobranie mam wszędzie na ostatnim miejscu

    jak zrobiłem tak:

    $allowed_rates = array('free_shipping', 'local_pickup', 'flat_rate');

    to pokazuje mi oba sposoby wysyłki w koszyku
    Darmowa wysyłka (Kurier)
    Kurier: 16,00 zł
    Kurier pobranie: 25,00 zł
    Odbiór osobisty

    • Ta odpowiedź została zmodyfikowana 5 months temu przez macmar.
    • Ta odpowiedź została zmodyfikowana 5 months temu przez macmar.
    Moderator Paweł Knapek

    (@adpawl)

    Darmowego kuriera robisz free_shipping, a kuriera pobranie i odbiór osobisty robisz local_pickup i po problemie.

    macmar

    (@macmar)

    zrobiłem w ustawieniach płatności (tam nie ma odbioru osobistego – jest w zakładce wysyłka – ale tam nie ma wyboru czy ma być płaska stawka czy local pickup)
    w ustawieniach płatności za pobraniem było ustawione „każda metoda – płaska stawka -> zmieniłem na „każda metoda – odbiór osobisty
    i nadal nie pojawia się na liście wyboru…
    już nie mam pojęcia jak do tego podejść…

    Moderator Paweł Knapek

    (@adpawl)

    To działa tylko na metodach wysyłki, nie płatności.
    Jeżeli aktywna jest darmowa wysyłka, wycina wszystko poza darmową wysyłka i odbiorem osobistym.
    Czyli jeżeli w wysyłce masz przykładowo metodę Darmowa wysyłka (Kurier) ustawianą jako płaska stawka /flat_rate, to ją wytnie.
    Dlatego wspominałem, byś w metodach wysyłki zmienił ją z płaskiej stawki na darmowa wysyłka / free_shipping czy odbiór osobisty / local_pickup, to zostanie.

    Metody płatności nic do tego nie maja i nie potrzeba ich w to mieszać. W metodach płatności możesz sobie potem dla danej metody płatności przypisać konkretne metody wysyłki. – ale to już dla tego kodu nie ma kompletnie żadnego znaczenia, bo on operuje jedynie na metodach wysyłki, nie płatności.

    Jak zaś chcesz się bawić w uzależnianie metody wysyłki od metody płatności, to:
    https://blog.lh.pl/uzaleznic-sposob-platnosci-metody-wysylki-woocommerce/
    https://jaworowi.cz/flexible-shipping-uzaleznienie-metody-platnosci-od-formy-dostawy-11151.php

    dziękuję za pomoc,
    poradziłem sobie z wtyczką aktywne płatności + Flexible Shipping
    działa jak oczekiwałem.
    pozdrawiam

Viewing 13 replies - 1 through 13 (of 13 total)