Exclure un code postal particulier des moyens de paiement
Aujourd’hui on résout une problématique sur notre site WooCommerce par le code.
On souhaite vendre uniquement en France métropolitaine en excluant la Corse et les DOM-TOM.
Configurer correctement la zone de vente dans les réglages de WooCommerce
Pour les DOM/TOM, ça se passe dans les réglages de Woocommerce.
- Woocommerce > Réglages > Général :
- Où vendre => Vendre dans certains pays
- Vendre dans certains pays => France
La région France exclue de base les DOM/TOM sauf la Corse.
Ajouter un snippet pour les exclusions particulières
Pour s’assurer que l’on ne puisse pas passer commande à destination de la Corse, ajoutez le code suivant dans le fichier functions.php de votre thème enfant ou en utilisant le plugin gratuit Code Snippets.
add_filter( 'woocommerce_available_payment_gateways', 'agent3w_valid_payment_gateways' );
function agent3w_valid_payment_gateways( $available_gateways ) {
global $woocommerce;
if ( is_admin() ) {
return $available_gateways; // autorise tous les moyens de paiement pour les admins
}
// Exclure des codes postaux précis
$exclude_postcodes = array();
// Exclure des codes postaux commençant par
$exclude_postzones = array(
'20', // corse
'2A',
'2B'
);
$user_postcode = !empty($woocommerce->customer->get_shipping_postcode()) ? $woocommerce->customer->get_shipping_postcode() : $woocommerce->customer->get_billing_postcode();
// retire les moyens de paiement si le code postal est dans la liste des exclusions
if ( in_array($user_postcode, $exclude_postcodes)) {
return array();
}
// retire les moyens de paiement si le code postal commence par un code exclu
foreach ( $exclude_postzones as $codezone) {
if (preg_match('/^' . $codezone . '/', $user_postcode)) {
return array();
break;
}
}
return $available_gateways;
}
Et voilà c’est déjà fini 🙂
Bonjour,
Vous ne dites pas où placer ce code.
Merci.
Bonjour Tim,
vous pouvez ajouter ce code de plusieurs manières dont au choix:
Bonne journée 🙂