Skip to content
🛡 WooCommerce kassaskydd: 2 sätt att lägga till CAPTCHA på 15 minuter

🛡 WooCommerce kassaskydd: 2 sätt att lägga till CAPTCHA på 15 minuter

Spamorder, bottar i varukorgen och falska registreringar, varje WooCommerce-butik går igenom detta. Ingen vill rensa databasen från skräpordrar manuellt, och var tionde botlead är bortkastad tid och pengar.

CAPTCHA löser problemet med 10 minuters installation. Inga uppblåsta allt-i-ett-plugins, inga ingrepp i kärnan.

Här nedan finns två fungerande sätt att lägga till verifiering i kassan: via ett gratis plugin och via kod i functions.php. Plus en bonus: att skydda inloggningssidan på samma 5 minuter.

Vad är CAPTCHA och varför du behöver det i kassan

💡 Snabb översikt:

  • Vad CAPTCHA är och vilka typer som finns, kortfattat, ingen teori för teorins skull
  • Två installationsmetoder: via det kostnadsfria pluginet reCAPTCHA for WooCommerce och via kod
  • Bonus: CAPTCHA på admininloggningssidan, skydd mot brute force
  • Vanliga installationsmisstag och hur du undviker dem

CAPTCHA (Completely Automated Public Turing Test to Tell Computers and Humans Apart) är ett test som skiljer en riktig besökare från en bot. Användaren kryssar i rutan "Jag är inte en robot", löser en enkel bild eller pussel, och först därefter skickas formuläret. En bot klarar inte detta: den måste förstå en uppgift den inte har tränats för.

För en WooCommerce-butik är CAPTCHA i kassan ingen lyx, det är en nödvändighet. Spambottar kan fylla i orderformulärets fält och klicka på "Skicka": ägaren får dussintals tomma ordrar som ligger i adminpanelen och täpper igen CRM-systemet. Verkligt fall: efter att ha aktiverat reCAPTCHA på en testsajt sjönk antalet falska ordrar till noll inom 24 timmar, inga filter, inga IP-blockeringar, inga .htaccess-redigeringar.

Sex huvudsakliga CAPTCHA-typer: textbaserad (förvrängda bokstäver och siffror), ljud (för synskadade användare), matematik (enkla problem som "3 + 4"), bildbaserad (välj alla bilder med ett trafikljus), pussel (dra en bit på plats) och osynlig (reCAPTCHA v3, fungerar i bakgrunden, analyserar användarbeteende). För en butik fungerar reCAPTCHA v2 (kryssruta) eller osynlig v3 bäst, de irriterar inte kunderna samtidigt som de blockerar de allra flesta bottar.

Pluginöversikt: vad du ska installera på WooCommerce

Det finns tre huvudsakliga plugins på marknaden som täcker denna uppgift. Låt oss kort gå igenom vilket som passar vilket scenario.

ReCAPTCHA for WooCommerce (RelyWP)

Kostnadsfritt, utan någon premiumversion alls. Stöder reCAPTCHA v2 i kassan, inloggning, registrering och sidor för återställning av lösenord. 40 000+ aktiva installationer, 4,5 i betyg på WordPress.org. Installeras på en minut: Google API-nycklar → kryssa i formulärrutorna → klart. Nackdel: endast v2, inget stöd för v3. Om du behöver osynlig verifiering, titta på alternativen.

Advanced Google reCAPTCHA (WebFactory)

200 000+ installationer, 4,8 i betyg på WordPress.org. Täcker WooCommerce-kassan, Easy Digital Downloads, BuddyPress och standardformulär för WordPress. Stöder v2 och v3, med en matematik-CAPTCHA som reserv. Gratisversionen täcker 90% av behoven; PRO-versionen lägger till landsblockering. Nyanser: gränssnittet kräver tillvänjning (flikar med gammal design), och recensioner nämner ibland konflikter med anpassade teman.

ReCaptcha by BestWebSoft

Gratisversion + premium för $24 per år. v2, v3 och enterprise-läge. Inställningar för widgetstorlek och placering, flerspråkig, RTL. Nackdel: knuten till Googles tjänster, vilket kan vara kritiskt för GDPR-känsliga projekt. Men som ett fungerande verktyg är det pålitligt och stridstestat på dussintals skarpa projekt.

Metod 1: CAPTCHA via plugin (ingen kod)

Den enklaste vägen. Vi tar reCAPTCHA for WooCommerce, det är gratis, lättviktigt och kräver inga krångliga omvägar.

Steg 1: Installation och aktivering

Gå till WordPress admin: Plugins → Lägg till ny. Skriv recaptcha for woo i sökfältet.

Hittade det, klicka på Installera nu, vänta ett par sekunder och aktivera.

Efter aktivering visas ett reCAPTCHA WooCommerce-alternativ i menyn Inställningar.

Steg 2: Google API-nycklar

Gå till sidan för att skapa reCAPTCHA-nycklar. Fyll i:

  • Etikett, valfritt namn (t.ex. "Min butik")
  • reCAPTCHA-typ, v2 ("Jag är inte en robot"-kryssruta)
  • Domäner, din butiksdomän utan https://

Klicka på Skicka, så får du en webbplatsnyckel och en hemlig nyckel.

Steg 3: Plugin-inställning

Kopiera nycklarna och klistra in dem i plugin-fälten: Inställningar → reCAPTCHA WooCommerce.

Scrolla ner till avsnittet WooCommerce-formulär. Kryssa i rutan för WooCommerce-kassan (och Logga in/Registrera om du vill skydda inloggningen).

Spara ändringarna.

Steg 4: Verifiering

På samma inställningssida finns en knapp för Testa API-svar. Klicka på den, och om nycklarna är korrekta visas en grön status.

Klart. Nu visas en captcha på kassasidan före knappen "Lägg beställning". Testa i inkognitoläge, botkontrollen ska dyka upp.

Metod 2: CAPTCHA via kod (inga extra plugins)

Om du inte vill installera ytterligare ett plugin, här är ett kodstycke som lägger till reCAPTCHA i kassan via functions.php.

Steg 1: Förberedelser

Innan du redigerar någon kod, gör en fullständig backup av sajten. Vi ska redigera filen functions.php i ditt barntema eller använda tillägget Code Snippets, vilket är säkrare: ett kodfel tar inte ner sajten, kodsnutten inaktiveras bara.

Steg 2: Koden

Här är två PHP-funktioner. Den första visar reCAPTCHA-widgeten i kassan, den andra verifierar Googles svar när ordern skickas in.

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

Vad som händer här:

  • woocommerce_checkout_order_review, en hook som körs när orderblocket renderas i kassan. Vi hakar på den för att skriva ut en <div> med attributet data-sitekey (det är Site Key från Google-konsolen).
  • woocommerce_checkout_process, en valideringshook som körs vid orderinskick. Funktionen skickar captcha-svaret till Googles server via ändpunkten siteverify, avkodar JSON:en och om verifieringen misslyckas lägger den till ett fel med wc_add_notice(), WooCommerce standardmekanism.
  • Om allow_url_fopen är inaktiverat hos ditt webbhotell (funktionen file_get_contents fungerar inte för URL:er), ersätt den med wp_remote_get(), som fungerar via cURL och inte är beroende av php.ini.

Steg 3: Infoga och testa

Lägg till koden via Code Snippets eller i ditt barntemas functions.php och spara.

Efter att du sparat, besök kassasidan i inkognitoläge, reCAPTCHA-widgeten ska visas. Försök skicka en order utan att kryssa i rutan: du får felet "Vänligen verifiera att du inte är en robot".

Bonus: CAPTCHA på inloggningssidan

Kassan är inte den enda smärtpunkten. Brute force-attacker mot /wp-login.php och /my-account/ pågår dygnet runt, även på små butiker. Samma tillägg reCAPTCHA for WooCommerce låser inloggningsformuläret med ett par klick.

Gå till Inställningar → reCAPTCHA WooCommerce, avsnittet WooCommerce-formulär och aktivera Inloggning:

Spara, så är /my-account/ skyddat. Om du också behöver låsa /wp-login.php stöder samma tillägg WordPress-formulär: samma logik, kryssa bara i WordPress inloggningsformulär.

Typiska problem och hur du löser dem

  • CAPTCHA visas inte i kassan. Kontrollera dina nycklar: Site Key och Secret Key måste vara från v2 (kryssrutan "Jag är inte en robot"), inte v3. Om versionen inte stämmer renderas widgeten helt enkelt inte.
  • CAPTCHA visas två gånger. Troligtvis har du två reCAPTCHA-plugins aktiva samtidigt (till exempel ett i temat och ett separat). Inaktivera dubbletten.
  • "Invalid key"-fel vid API-test. Antingen ett skrivfel när du kopierade nycklarna, eller så skapades nycklarna för en annan domän. Skapa nya nycklar och kontrollera domänen i Google-konsolen.
  • Konflikt med en anpassad kassamall. Byt till standardtemat (Storefront) och kontrollera: om CAPTCHA visas ligger problemet i ditt temas hooks. Lösning: en anpassad hook i kod (Metod 2) kopplad till din mall.
  • Kassan laddas inte efter att CAPTCHA aktiverats. Rensa cache (plugin + webbläsare), inaktivera JS-minifiering under testet; konflikter orsakas oftast av aggressiv skriptoptimering.
  • Kunder klagar på att CAPTCHA avvisar riktiga personer. Sänk känsligheten i reCAPTCHA-inställningarna eller byt till v2 Checkbox; den är skonsammare än v3 och blockerar inte baserat på en "misstänkt" beteendemodell.

⁉️🤔 Vanliga frågor

Behövs CAPTCHA i kassan om ett anti-spam-plugin redan är installerat?

Anti-spam-plugins som Akismet skyddar kommentarer och kontaktformulär, men inte WooCommerce-kassan. Bots som lägger falska beställningar går förbi standardfilter; de behöver inga kommentarsfält, de fyller i själva beställningsformuläret. CAPTCHA täpper till den luckan.

Vilken reCAPTCHA-version ska jag välja, v2 eller v3?

För en butik rekommenderar vi v2 Checkbox: besökaren kryssar i en ruta och ordern går igenom. v3 arbetar i bakgrunden och kan blockera en riktig kund om deras beteendemodell verkar "misstänkt" för systemet, och i kassan räknas varje kund.

Kan jag skydda endast gästkassan med CAPTCHA och släppa igenom inloggade användare?

Ja. I pluginet reCAPTCHA for WooCommerce aktiverar kryssrutan WooCommerce Checkout CAPTCHA för alla. För att släppa igenom inloggade användare behöver du lägga till ett villkor i kod (Metod 2): slå in hooken i if (!is_user_logged_in()). Utan kod, endast med plugins som har villkorslogik, som Advanced Google reCAPTCHA PRO.

Påverkar CAPTCHA kassans laddningstid?

Inte märkbart. reCAPTCHA-skriptet laddas asynkront och endast på sidor där formuläret faktiskt visas. Ingen extra belastning på hela sajten. I praktiken ligger skillnaden i kassans hastighet före och efter inom 100-200 ms.

Sammanfattning

Att lägga till CAPTCHA i WooCommerce-kassan är en uppgift på 15 minuter, och effekten är ren. Inga spamordrar, ingen manuell rensning av databasen, inga bots i tratten.

Om du inte vill installera extra plugins, använd den andra metoden med kod. Den lägger till exakt två funktioner i functions.php och kräver inga uppdateringar. Föredrar du en "ställ in och glöm"-approach, välj reCAPTCHA for WooCommerce: gratis, 40 000 installationer, löpande uppdateringar och stöd för Block Checkout direkt ur lådan.

Kontrollera att CAPTCHA fungerar på alla enheter: öppna kassan från en mobil och från en dator i inkognitoläge. Om widgeten förskjuts på mobil, justera CSS-containern eller ändra widgetstorleken till Compact i Google reCAPTCHA-konsolen. Fem minuters testning nu sparar timmar av städning av spamordrar senare.