Woocommerce中,送货方式(Shipping method)可以根据国家不同而不同,支付网关(Payment Gateways)却无法选择国家,只要开启了某种支付方式,不管用户选择哪个国家,都会出现。

中国普遍使用支付宝,paypal也有一定用户,下面的代码可以让用户选择中国时只出现支付宝和paypal两种支付方式,如果这两种方式都没有启用,则显示其余启用的支付方式。

add_filter('woocommerce_available_payment_gateways', 'set_cn_payment_gateways');
function set_cn_payment_gateways( $available_gateways ) {
    global $woocommerce;
    if( $woocommerce->customer->get_country() == 'CN' ) {
        if( isset($available_gateways['paypal']) )    $gateways_cn['paypal'] = $available_gateways['paypal'];
        if( isset($available_gateways['alipay']) )    $gateways_cn['alipay'] = $available_gateways['alipay'];
    }
    
    if( $woocommerce->customer->get_country() == 'CN' && isset($gateways_cn) )
        return $gateways_cn;
    return $available_gateways;
}

个人感觉Woocommerce应该让Payment Gateways也支持Shipping Method的国家选项,不知道其它国家怎样,但很多支付方式在中国是行不通的。

4条留言

  1. 你好,请问一下,如果我想在Checkout的时候,加一个判定,比如用户支付的总额(含税)低于一定数额的时候才显示palpay的支付方式,应该怎么做呢?谢谢。

  2. 当初建站的时候在这得到不少帮助
    回来看看~哈哈~

评论功能已关闭