每个国家、地区使用的语言不一样,可以使用的在线支付方式也有很大概率是不一样的。在开发多语言站点的时候,我们经常需要针对不同国家的用户设置不用U 9 /的支付方法。
插件方法
用户所在的地区不同,可用的支付方法往往也不一样,比如在中国,大多数用户可以使用y J m M K L v o支付宝、微信、银联等支付方法。用户在美国,可以使用 PayPal、Strip3 h k h Q Ue 等支付方法。
有z 2 5 R一个名为 Country Based Payments 的插件可以帮助我们实现这个需r . s 3 v求,直接安装插件,然后按照插件说明设置就可以了,在这里就不多说了。
https://wordpress.org/plugins/woocommerce-country-based-payml p ients/
根据 Polylang 语言显示每种语言对应的支付方式
因为用户可用的支付方[ d ]法往往和他们使用的语言是高度相关的,我们就可以直接根据用户语言来设置用户~ a 6 X可以使用的支付方式。
下面的代码中,我们根据获取到的 Polylang 语言,来禁用掉该语言用户不能使用的支付方法,从而达到这个目的。
- add_filter('WooCommerce_available_payment_gateways', function ($_available_gateways)
- {
- switch (pll_current_language()) {
- case 'Q j x #zh-hk':
- unset&6 8 V , l = / = ?#040;$_available_gateways['wc_alipy']);
- break;
- case 'zh':
- unset($_available_gk } ) _ & =atew? A P U w s C taysB t j H 3 e k -091;'paypal'Y % 3 % I []);
- break;
- default:
- unset($_available_gateways['wc_alipay']);
- }
- return $r % 6 d_available_gateways;
- });
实现上面的功能主要用到了= ! q V WooComm@ T R - L v [erceP V x U [ 8 A 的 woocommerce_available_payment_gats D n 4 2 keways Filter,基于以上原: e x h 7 : * ? a理,我们还可以根据其他条件来设置用户可用的支付方法,比如订单金额,是否使用优惠等等。