LH.pl · Dział pomocy
Chcesz zabezpieczyć formularz kontaktowy oraz formularz rejestracji w PrestaShop 1.6 lub 1.7 przez SPAMem oraz botami? Najprostszym sposobem jest dodanie weryfikacji przez reCaptcha. Jak to zrobić bez płatnych modułów?
Formularz kontaktowy w PrestaShop jest bardzo podatny na SPAM. Boty automatycznie skanują sklepy na PrestaShop i wykorzystują formularz kontaktowy do wysyłania niechcianych wiadomości. Wszystko dlatego, że formularz ten domyślnie nie jest w żaden sposób zabezpieczony. Nie ma żadnej weryfikacji użytkownika, czy to poprzez wykonanie prostego zadania, czy też przez system reCaptcha od Google.
Na szczęście możemy to zmienić. W bardzo prosty sposób można dodać weryfikację przez system reCaptcha. Wtedy pod formularzem kontaktowym oraz rejestracyjnym wyświetli się niewielkie pole, w którym użytkownik musi zaznaczyć, że nie jest robotem. Jeśli reCaptcha wykryje, że może mieć do czynienia z botem, to dodatkowo wyświetli zadanie do wykonania (np. zaznaczenie obrazków z określonym wizerunkiem). Jak zatem coś takiego dodać?
Krok 1: Pobierz darmowy moduł do integracji reCaptcha w PrestaShop
Przeszukując sieć w poszukiwaniu sposobów na zintegrowanie weryfikacji reCaptcha natrafimy na ogromną ilość płatnych wtyczek. Na szczęście dla osób niechcących inwestować pieniędzy w każdą jedną funkcję na stronie istnieje darmowa alternatywa – moduł eicaptcha, który pozwala wdrożyć reCaptcha v2 zarówno w PrestaShop 1.6 jak i 1.7.
Pobierz eicaptcha dla PrestaShop
Wejdź w powyższy link, a następnie udaj się do zakładki „Releases”. Tu znajdziesz listę dostępnych wydań modułu eicaptcha, gotowych do zainstalowania w sklepie. Wersje oznaczone numerem 0.4.x są przeznaczone do PrestaShop 1.6, ale na liście możesz znaleźć również wersję z numerem 2.x.x, która przeznaczona jest dla PrestaShop 1.7.
Rozwiń sekcję „Assets” pod odpowiedniej wersji dla swojego sklepu PrestaShop, a następnie pobierz plik eicaptcha.zip. Plik ten jest gotowym modułem do instalacji w PrestaShop.
Krok 2: Zainstaluj moduł eicaptcha w PrestaShop
Po pobraniu plików udaj się do panelu administracyjnego PrestaShop i rozwiń zakładkę „Moduły > Modules Manager” (Moduły > Menedżer modułów). Po wejściu do tej sekcji kliknij w górnym prawym rogu przycisk „Załaduj moduł” i wskaż pobrany plik eicaptcha.zip.
Moduł zostanie zainstalowany i teraz trzeba go skonfigurować, wpisując swoje klucze do integracji reCaptcha. Najpierw jednak trzeba je uzyskać, generując reCaptcha na swoim koncie Google.
Krok 3: Zarejestruj stronę w reCaptcha i uzyskaj klucze do integracji
Wejdź na stronę reCaptcha w Google i wybierz w górnym prawym rogu „Admin console”. Zaloguj się na swoje konto Google. Jeśli nie masz jeszcze wygenerowanej żadnej weryfikacji reCaptcha to od razu pojawi się okno rejestracji. Jeśli jednak masz już jakieś zarejestrowane wcześniej profile, to pojawią się ich statystyki. Wtedy musisz kliknąć w przycisk z plusem, aby przejść do rejestracji nowej strony w reCaptcha.
Oto, jak wypełnić rejestrację strony zgodnie z możliwościami modułu eicaptcha dla PrestaShop:
- W polu „Etykieta” wpisz nazwę swojej strony. To tylko wewnętrzna nazwa dla usługi reCaptcha, nie musi być w 100% zgodna z nazwą strony internetowej.
- W polu „Typ reCaptcha” wybierz „reCaptcha v2”. Niestety, reCaptcha v3 nie jest jeszcze obsługiwana przez darmowy moduł.
- Po rozwinięciu „reCaptcha v2” możesz wybrać sposób weryfikacji. Zaznacz w tym miejscu pole wyboru „Nie jestem robotem”.
- Poniżej tych opcji znajdziesz pole „Domena”. Wpisz tu adres swojej strony (nie musisz wprowadzać przedrostka http lub https).
Zatwierdź regulamin i zapisz zmiany. Po wykonaniu tych czynności strona zostanie zarejestrowana i na ekranie wyświetla się dwa pola z kluczami reCaptcha: klucz witryny oraz tajny klucz
Skopiuj i zachowaj te dane, gdyż będą nam teraz potrzebne do konfiguracji zainstalowanej wcześniej wtyczki eicaptcha w PrestaShop.
Krok 4: Skonfiguruj moduł eicaptcha w PrestaShop
Wróć do swojego panelu administracyjnego w PrestaShop, a następnie udaj się do zakładki „Moduły > Modules Manager”. Wyszukaj w tym miejscu modułu eicaptcha, a następnie kliknij w przycisk „Konfiguruj”, aby wejść do jego ustawień.
Na ekranie ustawień modułu znajdziesz dwa pola – Captcha Public Key oraz Captcha Private Key. To miejsca, w które musimy wkleić wygenerowane wcześniej klucze.
W polu „Captcha Public Key” wklej kod witryny, natomiast w polu „Captcha Private Key” wklej tajny kod. Następnie poniżej możesz wybrać, gdzie ma się wyświetlać reCaptcha. Dostępne są opcje wyświetlenia reCaptcha dla formularza kontaktowego (contact form) oraz formularza rejestracji (account creation).
Chcemy, aby pole reCaptcha oraz ewentualnie zadanie wyświetlały komunikaty w języku polskim, więc w polu „Force Captcha Language” wpisujemy wartość „pl” (bez cudzysłowów). Po wszystkim zapisz zmiany przyciskiem „Save”.
Musimy upewnić się, że zmiany wyświetlą się na stronie, więc następnie w PrestaShop udajemy się do zakładki „Zaawansowane > Wydajność” i kliknij w przycisk „Wyczyść pamięć podręczną”. Jest to w większości wypadków konieczne, gdyż pamięć podręczna przechowuje wersję strony sprzed zainstalowania modułu do obsługi reCaptcha, a więc nie wyświetli zmian na stronie dopóki nie wyczyścisz pamięci cache.
Jeżeli na stronie wyświetlają się dodatkowe komunikaty (np. o niezaznaczonym polu reCaptcha) w języku angielskim, to musisz dostosować samodzielnie tłumaczenie modułu. Wystarczy w tym celu wejść do zakładki „Międzynarodowy > Tłumaczenie” i wybrać opcję „Tłumaczenie zainstalowanych modułów > eicaptcha”. Wyświetlą się wszystkie frazy wykorzystywane przez moduł, które można przetłumaczyć na język polski.
Hosting nie spełnia Twoich oczekiwań? Przenieś się do LH.pl, włącz PHP 7.3 i ciesz się szybką i wydajną stroną WWW.
Podobał Ci się artykuł? Zostaw opinię!
3 komentarze
Możliwość komentowania została wyłączona.
Super dziękuję za pomoc!
Wiesz co, wygląda to tak, jakbyś nie miał włączonego/zainstalowanego modułu formularza kontaktowego (contactform). Używasz jakiegoś zamiennika? Na pewno moduł formularza jest włączony? Eicaptcha po prostu nie wykrywa modułu formularza z Presty, do którego może się podpiąć z reCaptchą, stąd ten komunikat.
U mnie pojawia się w ustawieniach zawansowanych modułu captcha:
Errors
the module is not registered in hook header
the module is not registered in hook displayCustomerAccountForm
the module is not registered in hook contactFormAccess
the module is not registered in hook actionBeforeSubmitAccount
Success
the module is compatible with your version
Overrides are enabled on your website
ContactController.php override exists
ContactController.php override is present in class_index.php
Aditionnal informations
Prestashop version 1.6.1.17
Theme name theme1000
Php version 7.3.15