2013-06-09 24 views
5

dayalı WooCommerce Ödeme Yöntemini Hide, ben 2 Ödeme yöntemleri var, Paypal ve Teslimat üzerinde Nakit.nasıl Posta Kodu Bu WooCommerce kurulumunda

Şimdi nasıl olabilir Teslimde Ödeme yalnızca belirli Posta kodları için gizli/devre dışı bırakılabilir.

Bu benim devre dışı bırakmak için

// 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

Gist Link

+0

Bunu yapmanın bir yolunu buldunuz mu? Bunu yapmak ve COD için ek ücret almak istiyorum. – Chirag

+0

Bu eklenti, ihtiyacınız olanı yapar: http://gremlin.io/shop/woocommerce-plugins/restrict-check-cod-payment-method-zip-pin-codes-woocommerce –

cevap

7

üzerinde bulunan kod/gizli "Teslimatta Ödeme" dir, Temanızın function.php Bu kodu. Daha fazla ayrıntı için

: - faturalandırma ve bir nakliye "çıkış sayfası" in with 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'); 
+0

Bunu zaten sorularıma ekledim. – Nikhil

+0

Güzel çözüm. Ayrıca, bu yetkisini kullanarak belirlenen bir gönderim yöntemini kullanarak yalnızca kullanılabilir ağ geçidini kodlamak için bir koşul ekleyebilirsiniz https://gist.github.com/salgua/30ee2bc205d71f758fd9 – salgua

1

iki adresi olabilir.

Yalnızca Gönderi'nin değişiklikleri ile doğru bir şekilde çalışmak için bir tane dolduysa kodu biraz değiştirdim. Yalnızca kullanıcı ülke kodu değilse ayarlanmışsa, ülke kodunu test etmelisiniz:

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');