如何在 WooCommerce 中禁用特定国家的付款网关
您可能要禁用非本地人的 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,并在您的结帐页面进行一些测试!
而已!
如何添加此代码?
1 、您可以将 PHP 代码片段放置在主题或子主题的 functions.php 文件的底部(如果是 CSS 代码,请添加到子主题的 style.css 文件底部)修改之前建议先备份原始文件,若出现错误请先删除此代码。
2 、 WordPress 4.9 后改进了主题编辑器,对于 CSS 代码也可打开网站前台编辑器的【自定义】,复制代码添加到自定义 css 中。
此代码是否可用?
如需帮助或是您有更好的方案想分享?请到薇晓朵 WooCommerce 中文论坛留言告知,我们希望可以帮到更多国内的 WooCommerce 用户也希望您的参与。
版权声明:本站内容源自互联网,如有内容侵犯了你的权益,请联系删除相关内容。