Budując sklep internetowy dla mojego klienta, natrafiłem na założenie dotyczące określenia bramek płatności. Sklep występuje w języku angielskim, ale ma skonfigurowane trzy rodzaje walut, PLN, EUR i GBP. W zależności od rodzaju waluty, są różne metody płatności. Dla wszystkich powyższych domyślną metodą płatności jest PayPal. Gdy klient wybierze jako walutę EUR lub GBP, wyłączyłem możliwość płacenia za pomocą bramki PayU. Operator płatności PayU ma możliwość przyjmowania wpłat w obcych walutach, ale jest to skomplikowany proces podpisywania dodatkowych umów i wdrażania do wordpressa, dlatego zdecydowaliśmy się na ukrycie bramki płatniczej. Aby poniższy kod działał prawidłowo, niezbędna jest konfiguracja walut poprzez wtyczkę WPML do obsługi wielojęzycznej i wielowalutowej.

Kod wklejamy do pliku function.php, który znajduje się na serwerze w katalogu naszego tematu graficznego tj. /public_html/wp-content/themes/nasz_szablon

/**
* hiding Payment Gateway per currency
*/
add_filter( 'woocommerce_available_payment_gateways', 'wpml_filter_gateways', 1 );
function wpml_filter_gateways( $gateways ) {
if(get_woocommerce_currency() == 'EUR' || get_woocommerce_currency() == 'GBP') {
unset($gateways['payu']);
} else if(get_woocommerce_currency() == 'PLN') {
unset($gateways['paypal']);
}
return $gateways;
}