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

redmaomail 2024-07-24 17:22 阅读数 81 #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 用户也希望您的参与。

文章没看懂?代码不会用?需要帮助您可以

红帽云邮外贸主机

分享到:
版权声明:本站内容源自互联网,如有内容侵犯了你的权益,请联系删除相关内容。
    红帽云邮外贸主机
热门
    红帽云邮外贸主机
    红帽云邮外贸主机