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)
  • 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 );

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

    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…

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

    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’);

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

    ale nie działa

    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

    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ą.

    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 2 miesięcy, 2 tygodnie temu przez  macmar.
    • Ta odpowiedź została zmodyfikowana 2 miesięcy, 2 tygodnie temu przez  macmar.

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

    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ść…

    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)
  • You must be logged in to reply to this topic.