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.

Další pluginy pro WooCommerce od Toret