Table of Contents
每个国家、地区使用的语言不一样,可以使用的在线支付方式也有很大概率是不一样的。在开发多语言站点的时候,我们经常需要针对不同国家的用户设置不用的支付方法。
使用插件根据用户所在国家设置不同的支付方法 #
用户所在的地区不同,可用的支付方法往往也不一样,比如在中国,大多数用户可以使用支付宝、微信、银联等支付方法。用户在美国,可以使用 PayPal、Stripe 等支付方法。
有一个名为 Country Based Payments 的插件可以帮助我们实现这个需求,直接安装插件,然后按照插件说明设置就可以了,在这里就不多说了。
根据 Polylang 语言显示每种语言对应的支付方式 #
因为用户可用的支付方法往往和他们使用的语言是高度相关的,我们就可以直接根据用户语言来设置用户可以使用的支付方式。
下面的代码中,我们根据获取到的 Polylang 语言,来禁用掉该语言用户不能使用的支付方法,从而达到这个目的。
add_filter('woocommerce_available_payment_gateways', function ($_available_gateways)
{
switch (pll_current_language()) {
case 'zh-hk':
unset($_available_gateways['wc_alipy']);
break;
case 'zh':
unset($_available_gateways['paypal']);
break;
default:
unset($_available_gateways['wc_alipay']);
}
return $_available_gateways;
});
实现上面的功能主要用到了 WooCommerce 的 woocommerce_available_payment_gateways Filter,基于以上原理,我们还可以根据其他条件来设置用户可用的支付方法,比如订单金额,是否使用优惠等等。