Press "Enter" to skip to content

PrestaShop 1.7.x – błąd wysyłania formularza kontaktowego – wystąpił błąd podczas wysyłania wiadomości

Admin 9

Problem ma miejsce w zakupionym szablonie do PrestaShop 1.7.x i jego geneza jest analogiczna jak w przypadku naprawy podobnego błędu w wersji 1.6.x:

PrestaShop 1.6 wystąpił błąd podczas wysyłania wiadomości – problem z wysyłaniem formularza kontaktowego [AKTUALIZACJA]

Objawia się on błędem przy wysłaniu wiadomości mimo, że wszystkie wymagane pola są wypełnione:

Wystąpił błąd podczas wysyłania wiadomości, spróbuj ponownie.

Oczywiście kolejne próby wysyłania wiadomości są bezskuteczne.

PrestaShop – „wystąpił błąd podczas wysyłania wiadomości” – naprawa problemu

Inaczej niż w przypadku 1.6.x może tutaj chodzić dodatkowo o darmowy moduł do RODO (zobacz artykuł gdzie można go pobrać), który jest lub może być zainstalowany w Twoim sklepie.

W pliku:

themes/{SZABLON}/modules/contactform/views/templates/widget/contactform.tpl

Należy zatem umieścić ten kod:

{if isset($id_module)}
  <div class="form-group row">
    <div class="offset-md-3">
      {hook h='displayGDPRConsent' id_module=$id_module}
    </div>
  </div>
{/if}

 

Zaraz przed kodem:

      </section>
<footer class="form-footer text-sm-right">

 

W Twoim szablonie może znacznik < FOOTER > nieco inaczej wyglądać

Drugą kwestią jest konieczność przekazania ukrytych pól w formularzu.

Upewnij się, że w znaczniku < FOOTER > znajduje się ten kod:

<style>
  input[name=url] {
    display: none !important;
  }
</style>
<input type="text" name="url" value=""/>
<input type="hidden" name="token" value="{$token}" />

 

Jeśli go nie ma umieść go, aby wyglądało to np. w ten sposób:

<footer class="form-footer text-sm-right">
  <style>
    input[name=url] {
      display: none !important;
    }
  </style>
  <input type="text" name="url" value=""/>
  <input type="hidden" name="token" value="{$token}" />

 

Wyczyszczenie cache

Twój sklep moze mieć włączony cache – należy go oczyścić aby zmiany były widoczne:

UWAGA, przed zmianą wartości na tej stronie konfiguracji zapisz zastane ustawienia. Np. wykonaj screenshot. Po naprawie problemu z formularzem przywróc je do stanu z przed zmian. Warto zachować tą konfigurację, jeśli była wykonywana, bo może ona przyśpieszać działanie sklepu.

Zaawansowane -> Wydajność -> Wyczyść pamięć podręczną

Dodatkowo włącz chwilowo kompilację:

Kompilacja szablonu: Force compilation -> Zapisz

Pamięć podręczna: NIE -> Zapisz

Po odświeżeniu strony kontaktowej powinna ona wyglądać mniej więcej w ten sposób (jeśli masz zainstalowany moduł do RODO):

Wysyłanie wiadomości powinno już działać:

Inna przyczyna problemu

Może być też tak, że ten błąd powoduje błędny e-mail zdeklarowany w

Preferencje -> Kontakt -> Kontakty

Dla testu usuń pierwszy adres i pozostaw drugi. Przy niektórych instalacjach (PrestaShop 1.7.8.2) powinno to pomóc.

grafika: genchi.info

  1. Kacper Kacper

    Generalnie! Dziękuję, pomogło, super blog.
    Serdecznie polecam 😉

  2. yesteam yesteam

    a co w przypadku gdy nie ma błędu a e-maile nie dochodzą?
    test z php i smtp jest poprawny (dochodzi)
    wszystkie emaile z zamówieniami też
    zapis do newslettera tez poprawny.
    no a z formularzy kontaktowych nie ma szans (wiadomości w zapleczu są)
    Presta 1.7.4.4

    • Admin Admin

      @yesteam, jest parę metod aby sprawdzić co jest tego przyczyną. Poniżej one:

      • może to kwestia jakiegoś modułu RODO który blokuje wysłanie formularza?
      • czy masz moduł do capcha i nie jest on prawidłowo skonfigurowany?
      • Inną kwestią (jeśli nie masz domyślnego szablonu tylko kupiony/tworzony) może być nie przekazywanie odp. ukrytych pól (hidden) w formularzu. Sprawdź jak wygląda szablon w domyślnym szablonie i jak wygląda w Twoim i czy wszystkie dane są w nim przesyłane. Kalka z https://pskrk.com/prestashop-1-6-problem-z-wysylaniem-formularza-kontaktowego/
      • Możesz też zrobić kopię bezpieczeństwa bazy danych i plików i dla testu przełączyć się na domyślny szablon i spradzić czy tam działa wysyłka.
      • Ostatecznie pozostaje zapytać Twojego providera hostingowego czy PHP wysyła maila za pośrednictwem formularza e-mail czy też nie. Jest szansa, że odczyt przez niego logów serwera wskaże gdzie jest problem.
  3. yesteam yesteam

    1. jest ale jak wyłączam brak zmian
    2. analogicznie
    3. ja nie mam błędu – komunikat jest ze wysłany – tyle ze nie dochodzi – w zapleczu jest widoczny
    4. na szablonie oryginalnym to samo
    5. jest 2 sklep na 1,6 na tym hostingu i nie ma problemu zresztą emaile wychodzą jak pisałem z każdego miejsca tylko nie formularza kontaktowego
    ręce opadają 🙂 powoli żałuje że nie postawiłem 1.6

  4. Wszystko fajnie działa, jednak napis do zaznaczenia jest nie symetrycznie ustawiony. Można to jakoś zmienić?

  5. Niestety mam problem bo niby przekazywanie wiadomości działa ale dopiero po drugim razie jak zaakceptuje wiadomośc
    Czyli wpisuje tekst wiadomości mail i odhaczam chekbox z Rodo i wyrzuca dwielinie tekstu

    Wystąpił błąd podczas wysyłania wiadomości.
    Wystąpił błąd podczas wysyłania wiadomości.

    a jak klikne jeszcze raz Rodo i wysłanie to wysyła

    Co to może być?

Dodaj komentarz

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

Witryna wykorzystuje Akismet, aby ograniczyć spam. Dowiedz się więcej jak przetwarzane są dane komentarzy.

Zobacz także !
Jak dodać łatwy w edycji tekst powitalny na sklepie PrestaShop…