2013-06-09 6 views
5

इस woocommerce सेटअप में के आधार पर Woocommerce में भुगतान की विधि छिपाने के लिए कैसे, मैं 2 भुगतान प्रक्रिया है, Paypal और प्रसव के पर नकद।डाक कोड

अब डिलिवरी पर नकद केवल कुछ पोस्टल कोड के लिए छुपा/अक्षम हो सकता है।

इस कोड मैं सार

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

+0

क्या आपको ऐसा करने का कोई तरीका मिला? मैं यह करना चाहता हूं साथ ही सीओडी के लिए अतिरिक्त शुल्क लेना चाहता हूं। – Chirag

+0

यह प्लगइन आपको जो चाहिए वह करता है: http://gremlin.io/shop/woocommerce-plugins/restrict-check-cod-payment-method-zip-pin-codes-woocommerce –

उत्तर

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

मैंने इसे पहले ही अपने प्रश्नों में जोड़ा है। – Nikhil

+0

अच्छा समाधान। आप इस gist https://gist.github.com/salgua/30ee2bc205d71f758fd9 का उपयोग करके निर्धारित शिपिंग विधि का उपयोग करके कोड को केवल उपलब्ध गेटवे बनाने के लिए एक शर्त भी जोड़ सकते हैं। – salgua

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'); 
संबंधित मुद्दे