如何隐藏基于邮政编码的Woocommerce付款方式

时间:2013-06-09 23:24:44

标签: wordpress woocommerce

在这个woocommerce设置中,我有2种付款方式, Paypal 货到付款

现在,如何仅对某些邮政编码隐藏/禁用货到付款

这是我在Gist上找到的代码

//  Disable gateway based on country
function payment_gateway_disable_country( $available_gateways ) {
    global $woocommerce;
    if ( isset( $available_gateways['ccavenue'] ) && $woocommerce->customer->get_country() <> 'IN' ) {
        unset(  $available_gateways['ccavenue'] );
    } else if ( isset( $available_gateways['paypal'] ) && $woocommerce->customer->get_country() == 'IN' ) {
        unset( $available_gateways['paypal'] );
    }
    return $available_gateways;
}
add_filter( 'woocommerce_available_payment_gateways', 'payment_gateway_disable_country' );

Gist Link

2 个答案:

答案 0 :(得分:7)

要禁用/隐藏“货到付款”,请将此代码放入主题的function.php。

更多详情:woocommerce-hide-payment-gatway-based-on-visitors-country

//  Disable gateway based on country
function payment_gateway_disable_country( $available_gateways ) {
global $woocommerce;
if ( isset( $available_gateways['cod'] ) && $woocommerce->customer->get_country() <> 'IN' ) {
    unset(  $available_gateways['cod'] );
}
return $available_gateways;
}
add_filter( 'woocommerce_available_payment_gateways', 'payment_gateway_disable_country' );

答案 1 :(得分:1)

在“结帐页面”中,用户可以拥有两个地址 - 结算和发货地址。

只有在发货时更改一个正常工作,如果它已经填好我改变了一点代码。如果设置了国家代码,则必须测试运输国家代码,如果不是用户国家代码:

function payment_gateway_disable_country( $available_gateways ) {
    global $woocommerce;
    $country = !empty($woocommerce->customer->get_shipping_country()) ? $woocommerce->customer->get_shipping_country() : $woocommerce->customer->get_country();
    if ( isset( $available_gateways['cod'] ) && $country <> 'CZ' ) {
        unset(  $available_gateways['cod'] );
    }
    return $available_gateways;
}
add_filter( 'woocommerce_available_payment_gateways', 'payment_gateway_disable_country' );