- ステータス
- 未解決
- 報告対象
- WPML Multilingual & Multicurrency for WooCommerce 5.3.5
- 関連するプラグイン/テーマ
- WooCommerce Payments
- トピックタグ
- Compatibility
問題の概要
現在、WPML Multilingual & Multicurrency for WooCommerceを使用している場合、WooPayments設定の「Country availability」の変更を保存できません。
この問題は、WooCommerce Stripe Payment Gatewayで報告された問題と同様です。
回避策
当面の間、以下のいずれかの解決策をご検討ください。
1) WooPaymentsを単一の国(例:スペイン)に制限する場合は、以下のコードを使用できます。
// Limit Stripe to Spain.
add_filter( 'woocommerce_available_payment_gateways', function( $gateways ) {
$country = WCML\MultiCurrency\Geolocation::getUserCountry();
if ( $country ) {
if ( 'ES' !== $country ) {
unset( $gateways['woocommerce_payments'] );
}
}
return $gateways;
} );2) 一方、WooPaymentsを複数の国に制限する場合は、以下のバリエーションを使用できます。
// Limit WooPayments for several countries
add_filter( 'woocommerce_available_payment_gateways', function( $gateways ) {
$country = WCML\MultiCurrency\Geolocation::getUserCountry();
if ( $country ) {
// List of country codes to check against
$country_codes = array('ES', 'FR', 'DE');
if ( !in_array($country, $country_codes) ) {
unset( $gateways['woocommerce_payments'] );
}
}
return $gateways;
} );
上記のコードは、テーマのfunctions.phpファイルに追加できます。
ニーズに合わせて国コードを調整してください(両方の例でスペインに「ES」を使用しています)。