如何在 WooCommerce 中禁用特定国家的付款网关

如何在 WooCommerce 中禁用特定国家的付款网关

您可能要禁用非本地人的 PayPal,或仅为特定国家启用特定网关。对于国际贸易的所有人来说,这是一个非常普遍的要求。

如何在 WooCommerce 中找到 Gateway ID

如何禁用/启用特定国家/地区的特定网关

  • 决定要禁用/启用的支付网关,例如 “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,并在您的结帐页面进行一些测试!

而已!

如何添加此代码?

1、您可以将 PHP 代码片段放置在主题或子主题的 functions.php 文件的底部(如果是 CSS 代码,请添加到子主题的 style.css 文件底部)修改之前建议先备份原始文件,若出现错误请先删除此代码。

2、WordPress 4.9 后改进了主题编辑器,对于 CSS 代码也可打开网站前台编辑器的【自定义】,复制代码添加到自定义 css 中。

此代码是否可用?

如需帮助或是您有更好的方案想分享?请到薇晓朵 WooCommerce 中文论坛留言告知,我们希望可以帮到更多国内的 WooCommerce 用户也希望您的参与。

文章没看懂?代码不会用?需要帮助您可以去论坛提问自助服务台

作者小新

大象、大象 ,你的鼻子怎么那么长 ,妈妈说鼻子长才是漂亮 ......