Máte slovenský WooCommerce eshop s WPML a Besteron platobnou bránou? Po upgrade pluginu ste zistili, že v anglickej (alebo inej jazykovej) verzii stránky sa Besteron v pokladni jednoducho nezobrazuje? Skúšali ste nastavenia krajín, meny, reštartovanie – a nič nepomáha?
Presne toto som riešila u klienta. A keďže viem, aké frustrujúce je, keď zákazník nevie zaplatiť a výsledok vyzerá ako chyba na strane developera, rozhodla som sa spísať návod na riešenie, aby ste zamedzili frustrácii.
Situácia
Slovenský eshop predávajúci výlučne na Slovensku. Jedna mena (EUR), jedno doručenie, WPML len pre preklad obsahu do angličtiny – nič exotické, štandardné nastavenie. Besteron fungoval bez problémov – až do upgradu pluginu.
Po aktualizácii: SK verzia pokladne v poriadku, EN verzia pokladne – žiadna platobná brána. Zákazník nespokojný, klient nespokojný, developer pátra…
Kde hľadať, keď nastavenia vyzerajú správne
V takejto situácii je prirodzené obrátiť sa na support pluginu. A odpoveď, ktorú dostanete, bude pravdepodobne v duchu: nastavenia na vašej strane vyzerajú v poriadku, problém je skôr v nastaveniach WooCommerce na webe, plugin sám o sebe pasívne čaká na volanie z webu.
Táto odpoveď nie je nepravdivá – ale ani úplná. Pretože príčina, ktorú som nakoniec objavila, je priamo v kóde samotného pluginu. A to je informácia, ktorú by mal mať každý developer skôr, než strávi hodiny hľadaním na nesprávnom mieste.
Čo sa skutočne deje vo vnútri pluginu
Besteron obsahuje funkciu, ktorá cez WooCommerce filter woocommerce_available_payment_gateways rozhoduje, či sa gateway v pokladni zobrazí alebo nie.
Robí to okrem iného aj podľa jazyka stránky.
Kľúčový riadok v kóde:
$current_lang = substr( get_locale(), 0, 2 );
Keď je aktívna EN verzia stránky cez WPML, get_locale() vráti en_US alebo en_GB. Z toho vznikne 'en'.
A potom príde logika, ktorá pri jazyku en hľadá samostatné EN credentials – vlastné CID, KEY a API kľúče špeciálne pre anglickú jazykovú verziu. Ak tieto polia nie sú vyplnené (a prečo by boli, keď predávate len na Slovensku s jedným Besteron účtom a en credentials v besteron administrácii nemáte?), gateway sa bez upozornenia a bez akejkoľvek chybovej hlášky skryje.
Pred verziou 1.4.5 táto per-language kontrola fungovala inak, preto po štandardnom upgrade pluginu zrazu problém vznikol bez akejkoľvek zmeny na strane webu či WooCommerce nastavení.
Riešenie
Jednoduché – keď viete, kde hľadať.
V nastaveniach Besteron pluginu nájdite sekciu pre English / EN a vyplňte tam rovnaké credentials ako máte pre SK – teda tie isté CID, KEY a API hodnoty. Platba prebehne cez rovnaký slovenský Besteron účet, len plugin bude spokojný, že má vyplnené polia aj pre EN jazyk.
WP Admin → WooCommerce → Nastavenia → Platby → Besteron → sekcia pre EN jazyk.
Nedáva vám to logiku? Ani mne, ale nevadí, dôležité je, že riešenie je funkčné. Developeri pluginu nemajú v dohľadnej dobe priestor to meniť.
Prečo o tom píšem
Pretože developer, ktorý robí svoju prácu správne, by nemal skončiť v situácii, kde mu klient vyčíta nefunkčnú platbu – a jediná odpoveď, ktorú má k dispozícii od supportu, je smerovanie na vlastnú dokumentáciu alebo platených partnerov.
Riešenie existuje, je jednoduché a zaberie minúty. Len treba vedieť, kde hľadať. Dúfam, že tento článok vám to hľadanie skráti. 😊
Zhrnutie
- Problém: Besteron sa nezobrazuje v EN verzii WooCommerce eshopu s WPML po upgrade pluginu.
- Príčina: Besteron od verzie 1.4.5 pri jazyku
enhľadá samostatné EN credentials (CID/KEY/API) – ak nie sú vyplnené, gateway sa skryje bez upozornenia. - Riešenie: V nastaveniach Besteron vyplňte do EN sekcie rovnaké credentials ako máte pre SK.
Pomohol vám tento článok? Potešíte ma symbolickou kávičkou – pomáha mi tvoriť ďalší takýto obsah zadarmo. ❤️



