Jazyk platební brány

Vyvolání dialogu platební brány lze provést v různých jazycích. Gopay tak umožňuje používat platební bránu i v zahraničí.

Bohužel, WordPress nemá v sobě zakomponovaný mechanismus pro změnu jazyka. Proto se na toto používají různé doplňkové pluginy.

Ty sice umožňují mít vícejazyčný web a většinou spolupracují s WooCommerce, ale protože je jich více, není možné zjistit, v jakém jazyce je přepnutý eshop, ve chvíli, kdy je uskutečněna ojednávka.

U většiny pluginů je možné zjistit aktuální jazyk a dle toho upravit i jazyk vyvolaného dialogu pro GoPay.

Pro tento případ je v pluginu připraven filtr, s názvem gopay_inline_default_lang.

Ten přijímá argumenty $default_lang a $order.

Defaultní jazyk platební brány je stanovován následovně:

  • zkontroluje se nastavení pluginu a pokud není nastaven výchozí jazyk, je označen jako CS.
  • Následně se zkontroluje země zákazníka a pro GB, PL, SK, DE a RU se nastaví odpovídající jazyk. Pokud je země jiná, použije se v prvním kroku nastavený výchozí jazyk.
  • v posledním kroku se vrací nastavený jazyk, přes výše zmíněný filtr gopay_inline_default_lang

Kód funkce pro stanovení jazyka:


function gopay_inline_get_lang( $order, $order_meta ){

$country = $order_meta[‚_billing_country‘][0];
$option = get_option( ‚woo_gopay_inline‘ );
if( !empty( $option[‚default-lang‘]) && $option[‚default-lang‘] != ‚-‚ ){
$default_lang = $option[‚default-lang‘];
}else{
$default_lang = ‚CS‘;
}

if( $country == ‚CZ‘ ){ $lang = ‚CS‘; }
elseif( $country == ‚GB‘ ){ $lang = ‚EN‘; }
elseif( $country == ‚SK‘ ){ $lang = ‚SK‘; }
elseif( $country == ‚DE‘ ){ $lang = ‚DE‘; }
elseif( $country == ‚RU‘ ){ $lang = ‚RU‘; }
elseif( $country == ‚PL‘ ){ $lang = ‚PL‘; }
else{
//Get default language
$lang = $default_lang;
}

return apply_filters( ‚gopay_inline_default_lang‘, $lang, $order );
}

Ovlivnění jazyka pomocí vlastní funkce

Jazyk platební brány můžete ovlivnit právě pomocí filtru v posledním kroku.

Do pluginu, nebo do functions.php aktivní šablony vložte funkci:


// Custom filter from payment Gateway developers
add_filter( 'gopay_inline_default_lang', 'gopay_create_payment_lang' );
function gopay_create_payment_lang(){
return 'EN';
}
// End of custom filter from payment Gateway developers

Nyní bude vaše platební brána vždy v angličtině. V případě, že chcete zobrazovat dialog podle zvoleného jazyka, musíte kód funkce upravit tak, aby reflektovala aktuální jazyk. Což je ale již záležitost použitého pluginu.