Liigu sisu juurde
🛡 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)

Plugin detail page for reCAPTCHA for WooCommerce showing the plugin description and list of supported forms

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)

Plugin overview listing advanced CAPTCHA integration for WooCommerce checkout, login forms, and comment areas

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

Graphic advertising "Super security anti-spam protection" for WordPress forms featuring a prominent blue checkmark icon

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.

WordPress plugin repository showing the reCAPTCHA for WooCommerce listing with prominent Install Now and Activate buttons

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

Settings menu displaying the reCAPTCHA WooCommerce item after activation, marked with callouts 7 and 8

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
The Google reCAPTCHA settings page showing "Test" entered and radio buttons for Challenge (v2) selected

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

A WordPress settings panel showing a hierarchical list of standard site pages including About, Cart, Checkout, and Contact

3. Samm: Plugin seadistamine

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

The plugin settings page shows fields for Site Key and Site Secret, along with checkboxes for WooCommerce checkout protection

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

WooCommerce Forms settings list checkboxes for Checkout, Guest Checkout Only, Login, and Register options

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.

PHP snippet adds CAPTCHA protection to WooCommerce checkout, highlighting lines 14 and 15

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:

Settings panel listing WooCommerce forms with toggles, showing "WooCommerce Login" enabled and a Save Changes button below

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.