# Bővítmények és tárhely: ismert ütközések

> A Bluehost bővítmény, a SiteGround Speed Optimizer, a WooCommerce Square, a WooCommerce Subscriptions és az e-mail-cím domainellenőrzése okozta problémák javítása.

Ez a fejezet olyan problémákat gyűjt össze, amelyeket egy másik bővítmény vagy a tárhely beállítása okoz a pénztáron. Mindegyiknél ott a tünet, az ok és a javítás.

## Bluehost bővítmény

A Bluehost saját bővítményt ad a webhelyekhez (**The Bluehost Plugin**). Ezt ki kell kapcsolnod, ha a CheckoutWC-t használod.

**Ok:** ha az alapértelmezett szállítási cím a szállítási cím, a bővítmény erőszakkal felcseréli a számlázási és a szállítási mezőket a pénztáron. Ez sokféle hibát okoz.

**Megoldás:** kapcsold ki a bővítményt a **Bővítmények** oldalon.

## SiteGround Speed Optimizer: üres pénztárűrlap

**Tünet:** a pénztáron megjelenik a fejléc, a rendelés összegzése és a lépésjelző, de az űrlap nem jelenik meg, és a lépésjelző alatt üres a lap. Hibaüzenet nincs, ezért nehéz észrevenni.

**Ok:** a SiteGround Speed Optimizer átveheti a JavaScript-fájlok kiszolgálását, és a saját, optimalizált másolataiból tölti be őket. Ilyenkor a CheckoutWC szkriptje túl későn fut le, és az űrlap nem rajzolódik ki.

### Győződj meg róla, hogy a CheckoutWC az ok

Fűzd a pénztár webcíme végére a `?bypass-cfw=true` paramétert, és töltsd be az oldalt, például:

```text
https://sajatoldalad.hu/penztar/?bypass-cfw=true
```

Ez csak neked, csak az adott oldalbetöltésre mutatja a WooCommerce saját pénztárát. Nem módosít beállítást, és a többi vásárlót nem érinti.

- Ha megjelenik az űrlap, folytasd az alábbi javítással.
- Ha az oldal így is üres, nem (csak) a CheckoutWC az ok. Kezdd az általános hibakereséssel: [Hibakeresés lépésről lépésre](https://hub.hellowp.io/hu/plugins/checkout-for-woocommerce/hibaelharitas-hibakereses/).

### A CheckoutWC kizárása a JavaScript-optimalizálásból

A Speed Optimizer a kizárási listákat egy apró szerkesztés ikon mögé rejti, nem a beállítóoldalra teszi, ezért könnyű elnézni.

1. A WordPress adminban nyisd meg a **Speed Optimizer → Frontend → JavaScript** oldalt.
2. Keresd meg a **Minify JavaScript Files** melletti kis szerkesztés ikont, és kattints rá: megnyílik a kizárási lista.
3. Add hozzá a CheckoutWC szkriptjeit. Ugyanezt tedd minden más bekapcsolt JavaScript-beállításnál is, mert az összefűzésnek és a késleltetett betöltésnek külön listája van.
4. Mentsd a beállítást, és ürítsd a SiteGround gyorsítótárát.
5. Nyisd meg a pénztárat privát (inkognitó) ablakban.

Ha nem találod a kizárási listát, a JavaScript-minifikálás teljes kikapcsolása is megoldja a gondot, és teljesen elfogadható megoldás. A minifikálás csak a szóközöket távolítja el a szkriptfájlokból, néhány kilobájtot spórolva. A webhely működését nem változtatja, így a költsége csak egy kicsit nagyobb letöltés.

### Ha visszatér a hiba

A kizárási listák beállításonként külön vannak. Ha később bekapcsolsz egy korábban kikapcsolt JavaScript-beállítást, annak a listájához is add hozzá a kizárásokat.

## WooCommerce Square: 400-as hiba rendeléskor

**Tünet:** a CheckoutWC és a WooCommerce Square együtt használatakor a rendelés beküldése megakad, és a böngésző konzolján ez a hiba látszik:

```text
Failed to load resource: the server responded with a status of 400 ()
```

**Ok:** kikapcsoltál egy kötelező számlázási mezőt.

**Megoldás:** kapcsold be a számlázási országot és a számlázási államot. Nyisd meg a **CheckoutWC → Oldalak** oldalt, a **Pénztár** fülön a **Cím beállítások** szakaszban az **Engedélyezett számlázási cím mezők** között jelöld be az **Ország** és az **Állam** mezőt, majd mentsd a beállítást.

![A Pénztár fül, benne a Cím beállítások szakasz az Engedélyezett számlázási cím mezők jelölőnégyzeteivel](./kepek/hibaelharitas-square-szamlazasi-mezok.webp)

*A Pénztár fül, benne a Cím beállítások szakasz az Engedélyezett számlázási cím mezők jelölőnégyzeteivel* (https://minta-bolt.hu/wp-admin/admin.php?page=cfw-settings-checkout)

A képen a Cím beállítások szakasz látszik: az **Engedélyezett számlázási cím mezők** alatt az **Ország** és az **Állam** is be van jelölve.

## WooCommerce Subscriptions: a változat szerkesztése a pénztáron nem sikerül

**Tünet:** egy változó előfizetési termék változatának szerkesztésekor a pénztáron a töltésjelző soha nem áll le. Oldalfrissítés után üres a kosár, és „session expired” (lejárt munkamenet) hibát látsz.

**Ok:** a WooCommerce Subscriptions „vegyes pénztár” beállítása ki van kapcsolva. Ilyenkor a Subscriptions a pénztár frissítésekor további kosárellenőrzést végez, és ez ütközik a változatszerkesztéssel.

**Megoldás:**

1. Nyisd meg a **WooCommerce → Beállítások** oldalon az előfizetések fület (Subscriptions).
2. Jelöld be az „Allow multiple subscriptions and products to be purchased simultaneously” jelölőnégyzetet.
3. Mentsd a módosításokat.

Ezután a változatszerkesztés a pénztáron rendben működik.

**Mit csinál a vegyes pénztár?** Lehetővé teszi, hogy a vásárló előfizetéses és hagyományos termékeket is vegyen egyetlen rendelésben. Akkor is be kell kapcsolnod, ha a boltod csak előfizetést árul, mert a CheckoutWC kosárbeli változatszerkesztése nélküle nem működik a változó előfizetéseknél.

## „Érvénytelen e-mail” hibaüzenet: az e-mail domainjének ellenőrzése

A CheckoutWC beépített e-mail-ellenőrzése megakadályozza, hogy a vásárló hibás e-mail-címet írjon be. DNS-lekérdezéssel megnézi, hogy a cím domainje létezik-e, és fogad-e leveleket. Így kiszűri az olyan elgépeléseket, mint a „gmail.con” a „gmail.com” helyett, vagy a „yaho.com” a „yahoo.com” helyett. Ez az egyik módja annak, hogy a rendelés után tényleg elérd a vásárlót.

### Mikor jelenhet meg tévesen az üzenet

Ritkán előfordulhat, hogy a vásárló helyes címére is „érvénytelen e-mail” hibát kap. Ez lehet:

- új e-mail-domain, amely még nem terjedt el a DNS-kiszolgálókon,
- országspecifikus vagy regionális szolgáltató nem szabványos DNS-beállítással,
- magánszerveren futó céges levelezés,
- saját üzemeltetésű levelezési domain kevés DNS-rekorddal.

### Kapcsold ki csak végső esetben

Az ellenőrzés valós problémákat előz meg: egy elírt cím miatt nem tudsz rendelés-visszaigazolást, szállítási értesítést küldeni, és a vásárlót sem éred el a rendelés gondjairól. Teljes kikapcsolásával ezt a védelmet minden vásárlónál elveszted. Ha téves elutasítást látsz, előbb jelezd a CheckoutWC támogatásának az elutasított domaineket: kiderülhet, hogy hiba van az ellenőrzési logikában, a domain felvehető a kivételek közé, vagy beállítási gond áll fenn.

### Az ellenőrzés kikapcsolása

Ha úgy döntöttél, hogy kikapcsolod, használd a `cfw_disable_email_domain_validation` szűrőt. A kódot beteheted a téma `functions.php` fájljába, egy saját bővítménybe, vagy a **CheckoutWC → Haladó → Szkriptek** oldalon a **PHP kódrészletek** mezőbe (lásd: [PHP kódrészletek](https://hub.hellowp.io/hu/plugins/checkout-for-woocommerce/fejlesztoknek-php-kodreszletek/)):

```php
add_filter( 'cfw_disable_email_domain_validation', '__return_true' );
```

A szűrő `true` értékénél:

- **Kikapcsol:** a DNS-lekérdezés, amely a domain létezését ellenőrzi.
- **Marad:** az alap e-mail-formátum ellenőrzése (van benne @ jel, van domain stb.).
- **Marad:** az e-mail domain automatikus kiegészítési javaslata (gmail.com, yahoo.com stb.).

### Alternatíva: az ellenőrzés időzítése

Ha az a gond, hogy az ellenőrzés túl korán fut le, amíg a vásárló még gépel, nem kell teljesen kikapcsolnod: elég megváltoztatni, mikor induljon az ellenőrzés, hogy a gépelés befejezése után fusson, ne minden billentyűleütésnél. A szűrők és kampók listáját lásd: [Szűrők](https://hub.hellowp.io/hu/plugins/checkout-for-woocommerce/fejlesztoknek-szurok/).
