您可能要禁用非本地人的 PayPal,或仅为特定国家启用特定网关。对于国际贸易的所有人来说,这是一个非常普遍的要求。
如何禁用/启用特定国家/地区的特定网关
- 决定要禁用/启用的支付网关,例如 “paypal”,“授权”,“条纹” 等。
- 确定国家代码,例如美国,ES,IE 等
- 打开 WordPress 仪表板/外观/ Editor / functions.php 文件
- 添加以下代码行:
/** * @snippet WooCommerce Disable Payment Gateway for a Specific Country * @sourcecode https://businessbloomer.com/?p=164 * @author Rodolfo Melogli * @compatible WooCommerce 2.4.7 */ function payment_gateway_disable_country( $available_gateways ) { global $woocommerce; if ( isset( $available_gateways['authorize'] ) && $woocommerce->customer->get_country() <> 'US' ) { unset( $available_gateways['authorize'] ); } else if ( isset( $available_gateways['paypal'] ) && $woocommerce->customer->get_country() == 'US' ) { unset( $available_gateways['paypal'] ); } return $available_gateways; } add_filter( 'woocommerce_available_payment_gateways', 'payment_gateway_disable_country' );
功能细节
给出上面的例子,这里是您需要更改以使其工作的所有内容:
1)为您的函数决定一个名字,以便您知道这个函数是什么。在我的例子中,我调用函数 “payment_gateway_disable_country”,因为它是一个翻译 “Leave a Reply” 字符串的函数。确保此名称出现在第 1 行
2)在第一个 “if” 声明中,我决定在美国境外取消 “授权” 付款。您需要做的是在此输入付款名称:
- if(isset($ available_gateways [‘authorize’])
- unset($ available_gateways [‘authorize’]);
… 和国家代码在这里:
- && $ woocommerce-> customer-> get_country()<>’US’
3)在 “else if” 语句中,如果该国是美国,我决定停用 PayPal 。根据 2 输入相同的信息)
4)保存您的 functions.php,并在您的结帐页面进行一些测试!
而已!
可以在哪里添加此代码?
您可以将 PHP 代码片段放置在主题或子主题的 functions.php 文件的底部(如果是 CSS 代码,请添加到主题的 style.css 文件底部),修改之前建议先备份原始文件,若出现错误请先删除此代码。
这段代码是否正常可用?
或者是您有更好的解决方案想要分享?请到薇晓朵 WooCommerce 中文论坛留言告知,我们希望可以帮到更多国内的 WooCommerce 用户也希望您的参与。
需要关于 WooCommerce 的帮助?
请观看我们提供的免费视频教程或到薇晓朵 WooCommerce 中文论坛提问,会有专业技术团队提供相关帮助。