Skip to content
🛡 WooCommerce'i kassa kaitse: 2 viisi CAPTCHA lisamiseks 15 minutiga

🛡 WooCommerce'i kassa kaitse: 2 viisi CAPTCHA lisamiseks 15 minutiga

Rämpspostitustellimused, ostukorvibotid ja võltsregistreerimised, iga WooCommerce pood kogeb seda. Keegi ei taha käsitsi andmebaasist rämpspostitustellimusi koristada ning iga kümnes boti juhttoiming on raisatud aeg ja raha.

CAPTCHA lahendab probleemi 10-minutilise seadistamisega. Ei mingeid puhvitud kõik-ühes pluginaid ega tuumamuudatusi.

Allpool on kaks toimivat viisi, kuidas lisada kinnitust kassalehele: tasuta plugina abil ja koodiga failis functions.php. Lisaks boonus: sisselogimislehe kaitsmine sama 5 minutiga.

Mis on CAPTCHA ja miks seda kassalehel vaja on

💡 Kiirülevaade:

  • Mis on CAPTCHA ja millised tüübid on olemas, lühidalt, ilma teooriata teooria pärast
  • Kaks paigaldusviisi: tasuta reCAPTCHA for WooCommerce plugina kaudu ja koodi abil
  • Boonus: CAPTCHA administraatori sisselogimislehel, toore jõu rünnete kaitse
  • Levinud seadistusvead ja kuidas neid vältida

CAPTCHA (Completely Automated Public Turing Test to Tell Computers and Humans Apart) on test, mis eristab elavat külastajat botist. Kasutaja märgib linnukese kasti „Ma ei ole robot", lahendab lihtsa pildi või pusle ja alles seejärel vorm saadetakse. Bot ei suuda seda läbida: ta peaks mõistma ülesannet, mille jaoks teda pole treenitud.

WooCommerce'i poe jaoks ei ole CAPTCHA kassalehel luksus, vaid hädavajalik. Rämpspostibotid võivad täita tellimisvormi väljad ja vajutada „Saada": omanik saab kümneid tühje tellimusi, mis istuvad administraatori paneelis ja ummistavad CRM-i. Reaalne juhtum: pärast reCAPTCHA lubamist testisaidil langes võltstellimuste arv 24 tunni jooksul nulli, ei mingeid filtreid, IP-blokeeringuid ega .htaccess muudatusi.

Kuus peamist CAPTCHA tüüpi: tekstipõhine (moonutatud tähed ja numbrid), heli- (nägemispuudega kasutajatele), matemaatiline (lihtsad ülesanded nagu „3 + 4"), pildipõhine (vali kõik pildid, kus on valgusfoor), pusle (lohista tükk õigesse kohta) ja nähtamatu (reCAPTCHA v3, töötab taustal, analüüsib kasutaja käitumist). Poe jaoks sobib kõige paremini reCAPTCHA v2 (märkeruut) või nähtamatu v3, need ei tüüta kliente, blokeerides samas valdava enamuse botte.

Pluginate ülevaade: mida WooCommerce'ile paigaldada

Turul on kolm peamist pluginat, mis selle ülesande katavad. Vaatame lühidalt, milline neist millise stsenaariumi jaoks sobib.

ReCAPTCHA for WooCommerce (RelyWP)

Tasuta, ilma ühegi tasulise versioonita. Toetab reCAPTCHA v2 kassalehel, sisselogimisel, registreerimisel ja parooli lähtestamise lehtedel. 40 000+ aktiivset paigaldust, hinnang 4,5 WordPress.org-is. Paigaldub minutiga: Google API võtmed → märgi vormi kastid → valmis. Miinus: ainult v2, v3 tugi puudub. Kui vajad nähtamatut kinnitust, vaata alternatiive.

Advanced Google reCAPTCHA (WebFactory)

200 000+ paigaldust, hinnang 4,8 WordPress.org-is. Hõlmab WooCommerce'i kassat, Easy Digital Downloadsi, BuddyPressi ja standardseid WordPressi vorme. Toetab v2 ja v3, matemaatilise CAPTCHA varuvariandiga. Tasuta versioon katab 90% vajadustest; PRO versioon lisab riigipõhise blokeerimise. Nüansid: liides on omandatud maitse (vana disainiga vahekaardid) ja arvustustes mainitakse aeg-ajalt konflikte kohandatud teemadega.

ReCaptcha by BestWebSoft

Tasuta versioon + lisatasu 24 dollarit aastas. v2, v3 ja enterprise režiim. Vidina suuruse ja paigutuse seaded, mitmekeelne, RTL. Miinus: seotud Google'i teenustega, mis võib olla kriitiline GDPR-tundlike projektide puhul. Kuid tööriistana on see usaldusväärne ja lahingus testitud kümnete reaalsete projektide peal.

1. Meetod: CAPTCHA plugina abil (ilma koodita)

Lihtsaim tee. Võtame reCAPTCHA for WooCommerce, see on tasuta, kerge ega nõua mingeid trikke.

1. Samm: paigaldamine ja aktiveerimine

Mine WordPressi administraatorisse: Plugins → Add New. Trüki otsinguribale recaptcha for woo.

Leidsid selle, klõpsa Install Now, oota paar sekundit ja aktiveeri.

Pärast aktiveerimist ilmub menüüsse Seaded uus kirje reCAPTCHA WooCommerce.

2. Samm: Google API võtmed

Mine reCAPTCHA võtme loomise lehele. Täida:

  • Silt, suvaline nimi (nt „Minu pood")
  • reCAPTCHA tüüp, v2 („Ma ei ole robot" märkeruut)
  • Domeenid, oma poe domeen ilma https://-ita

Klõpsa Saada ja süsteem annab sulle saidivõtme ja salajase võtme.

3. Samm: Plugin seadistamine

Kopeeri võtmed ja kleebi need plugina väljadele: Seaded → reCAPTCHA WooCommerce.

Keri alla jaotiseni WooCommerce'i vormid. Märgi linnuke kasti WooCommerce'i kassa (ja Sisselogimine/Registreerimine, kui soovid ka sisselogimist kaitsta).

Salvesta muudatused.

4. Samm: Kontrollimine

Samal seadete lehel on nupp Testi API vastust. Klõpsa sellel ja kui võtmed on õiged, näed rohelist staatust.

Valmis. Nüüd ilmub kassalehele enne nuppu „Esita tellimus" captcha. Testi seda inkognito režiimis, robotikontroll peaks nähtavale tulema.

2. Meetod: CAPTCHA koodi abil (ilma lisapluginateta)

Kui sa ei soovi teist pluginat paigaldada, siis siin on koodijupp, mis lisab functions.php kaudu kassasse reCAPTCHA.

1. Samm: Ettevalmistus

Enne ühegi koodi muutmist tee saidist täielik varukoopia. Redigeerime oma alamteema faili functions.php või kasutame pluginat Code Snippets, mis on turvalisem: koodiviga ei võta saiti maha, vaid katkend lihtsalt deaktiveeritakse.

2. Samm: kood

Allpool on kaks PHP funktsiooni. Esimene kuvab kassas reCAPTCHA vidina, teine kontrollib tellimuse esitamisel Google'i vastust.

1/**
2 * Display reCAPTCHA on the WooCommerce checkout page
3 */
4function doublee_show_me_the_checkout_captcha($checkout) {
5 echo '<div class="g-recaptcha" data-sitekey="YOUR_SITE_KEY"></div>';
6}
7add_action('woocommerce_checkout_order_review', 'doublee_show_me_the_checkout_captcha', 18);
8
9/**
10 * Verify reCAPTCHA response during checkout
11 */
12function doublee_process_recaptcha() {
13 $postdata = $_POST['g-recaptcha-response'];
14 $verified_recaptcha = file_get_contents(
15 'https://www.google.com/recaptcha/api/siteverify?secret=YOUR_SECRET_KEY&response=' . $postdata
16 );
17 $response = json_decode($verified_recaptcha);
18 if (!$response->success) {
19 wc_add_notice('Please verify that you are not a robot', 'error');
20 }
21}
22add_action('woocommerce_checkout_process', 'doublee_process_recaptcha');

Mis siin toimub:

  • woocommerce_checkout_order_review on konks, mis käivitub, kui tellimuse plokki kassas renderdatakse. Haagime end selle külge, et väljastada <div> atribuudiga data-sitekey (see on saidi võti Google'i konsoolist).
  • woocommerce_checkout_process on valideerimiskonks, mis käivitub tellimuse esitamisel. Funktsioon saadab captcha vastuse Google'i serverisse siteverify lõpp-punkti kaudu, dekodeerib JSON-i ja kui verifitseerimine ebaõnnestub, lisab veateate, kasutades wc_add_notice()-i, mis on WooCommerce'i standardmehhanism.
  • Kui allow_url_fopen on teie majutusel keelatud (funktsioon file_get_contents ei tööta URL-idega), asendage see wp_remote_get()-iga, mis töötab cURL-i kaudu ega sõltu php.ini-st.

3. Samm: sisestamine ja testimine

Lisage kood Code Snippetsi kaudu või oma alamteema faili functions.php ja salvestage.

Pärast salvestamist külastage kassalehte inkognito režiimis, reCAPTCHA vidin peaks ilmuma. Proovige tellimust esitada ilma kasti märkimata: saate veateate „Palun kinnitage, et te pole robot".

Boonus: CAPTCHA sisselogimislehel

Kassa pole ainus valupunkt. Toore jõu ründed /wp-login.php ja /my-account/ vastu käivad ööpäevaringselt, isegi väikeste poodide puhul. Sama reCAPTCHA for WooCommerce plugin lukustab sisselogimisvormi paari klõpsuga.

Minge Seaded → reCAPTCHA WooCommerce, jaotisesse WooCommerce'i vormid ja lubage Sisselogimine:

Salvestage ja /my-account/ on kaitstud. Kui teil on vaja lukustada ka /wp-login.php, siis see sama plugin toetab WordPressi vorme: sama loogika, lihtsalt märkige WordPressi sisselogimisvorm.

Tüüpilised probleemid ja nende lahendamine

  • CAPTCHA ei ilmu kassasse. Kontrolli võtmeid: saidi võti ja salajane võti peavad olema v2-st („Ma ei ole robot" märkeruut), mitte v3-st. Kui versioon ei ühti, siis vidin lihtsalt ei renderdu.
  • CAPTCHA kuvatakse kaks korda. Tõenäoliselt on sul korraga aktiivsed kaks reCAPTCHA pistikprogrammi (näiteks üks teemas, teine eraldi). Keela duplikaat.
  • API testis kuvatakse viga „Invalid key". Kas võtmete kopeerimisel tekkis trükiviga või loodi võtmed teise domeeni jaoks. Loo võtmed uuesti ja kontrolli domeeni Google'i konsoolis.
  • Konflikt kohandatud kassamalliga. Lülitu vaiketeemale (Storefront) ja kontrolli: kui CAPTCHA ilmub, on probleem sinu teema konksudes. Lahendus: kohandatud konks koodis (2. meetod), mis on seotud sinu malliga.
  • Kassa ei lae pärast CAPTCHA lubamist. Tühjenda vahemälu (pistikprogramm + brauser), keela testi ajaks JS-i minifitseerimine; konflikte põhjustavad kõige sagedamini agressiivsed skriptide optimeerimised.
  • Kliendid kurdavad, et CAPTCHA lükkab päris inimesi tagasi. Alanda tundlikkust reCAPTCHA seadetes või lülitu v2 märkeruudule; see on leebem kui v3 ega blokeeri „kahtlase" käitumismudeli alusel.

⁉️🤔 Korduma kippuvad küsimused

Kas kassas on CAPTCHA-t vaja, kui rämpspostitõrje pistikprogramm on juba paigaldatud?

Rämpspostitõrje pistikprogrammid nagu Akismet kaitsevad kommentaare ja kontaktvorme, kuid mitte WooCommerce'i kassat. Botid, mis esitavad võltstellimusi, lähevad tavalistest filtritest mööda; nad ei vaja kommentaarivälju, nad täidavad tellimisvormi ennast. CAPTCHA sulgeb selle lünga.

Millise reCAPTCHA versiooni peaksin valima, v2 või v3?

Poe jaoks soovitame v2 märkeruutu: külastaja teeb ühe linnukese ja tellimus läheb läbi. v3 töötab taustal ja võib blokeerida päris kliendi, kui tema käitumismudel tundub süsteemile „kahtlane", ning kassas loeb iga klient.

Kas ma saan kaitsta CAPTCHA-ga ainult külaliste kassat ja lasta sisse logitud kasutajad läbi?

Jah. reCAPTCHA for WooCommerce pistikprogrammis lubab WooCommerce Checkout märkeruut CAPTCHA kõigile. Sisse logitud kasutajate läbi laskmiseks pead lisama koodis tingimuse (2. meetod): ümbritse konks tingimusega if (!is_user_logged_in()). Ilma koodita ainult pistikprogrammidega, millel on tingimusloogika, näiteks Advanced Google reCAPTCHA PRO.

Kas CAPTCHA mõjutab kassa laadimiskiirust?

Märgatavalt mitte. reCAPTCHA skript laeb asünkroonselt ja ainult lehtedel, kus vormi tegelikult kuvatakse. Kogu saidile lisakoormust ei teki. Praktikas jääb kassa kiiruse erinevus enne ja pärast 100-200 ms piiresse.

Kokkuvõte

CAPTCHA lisamine WooCommerce'i kassasse on 15-minutiline ülesanne ja tulemus on puhas. Ei mingeid rämps tellimusi, ei käsitsi andmebaasi puhastamist, ei boteid müügilehtris.

Kui sa ei soovi lisapistikprogramme paigaldada, kasuta teist meetodit koodiga. See lisab functions.php-sse täpselt kaks funktsiooni ega vaja uuendusi. Kui eelistad „seadista ja unusta" lähenemist, siis reCAPTCHA for WooCommerce: tasuta, 40 tuhat paigaldust, pidevad uuendused ja Block Checkouti tugi olemas.

Kontrolli, et CAPTCHA töötab kõigis seadmetes: ava kassa telefonist ja lauaarvutist inkognito režiimis. Kui vidin mobiilis nihkub, kohanda CSS-konteinerit või lülita vidina suurus Google'i reCAPTCHA konsoolis Compact peale. Viis minutit testimist praegu hoiab hiljem kokku tunde rämps tellimuste koristamist.