2013-06-09 10 views
5

In questa configurazione woocommerce, ho 2 metodi di pagamento, Paypal e Contrassegno.come nascondere Metodo di pagamento in Woocommerce sulla base di un codice postale

Ora come può in contrassegno essere nascosti/disabilitati solo per determinati codici postali.

Questo è il codice che ho trovato su 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

+0

Hai trovato un modo per farlo? Mi piacerebbe farlo e addebitare un costo aggiuntivo per COD. – Chirag

+0

Questo plugin fa quello che ti serve: http://gremlin.io/shop/woocommerce-plugins/restrict-check-cod-payment-method-zip-pin-codes-woocommerce –

risposta

7

Per disabilitare/nascosta "Contrassegno", Inserire questo codice nel function.php del vostro tema.

Per maggiori dettagli: 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

L'ho già inserito nelle mie domande. – Nikhil

+0

Bella soluzione. Puoi anche aggiungere una condizione per rendere cod il solo gateway disponibile utilizzando un determinato metodo di spedizione utilizzando questo elenco https://gist.github.com/salgua/30ee2bc205d71f758fd9 – salgua

1

Nella utente "pagina di checkout" può avere due indirizzi di fatturazione e spedizione - uno.

Per funzionare correttamente solo con le modifiche di Spedizione uno se è pieno ho modificato un po il codice. Devi verificare il codice del paese di spedizione se è impostato, se non solo il codice paese dell'utente:

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