WPML
状态
未解决
报告针对
WPML Multilingual & Multicurrency for WooCommerce 5.3.5
相关插件/主题
WooCommerce Payments
主题标签
Compatibility

问题概述

目前,在使用 WPML Multilingual & Multicurrency for WooCommerce 时,无法保存 WooPayments 设置中国家/地区可用性的任何更改。

此问题与针对 WooCommerce Stripe 支付网关报告的问题类似。

临时解决方法

在此期间,您可以考虑以下解决方案之一:

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”代表西班牙)。

所有已知问题 →