Comment désactiver les passerelles de paiement pour certains pays dans WooCommerce

Publié: 2019-10-24

Dans mon dernier article, j'ai expliqué comment désactiver les passerelles de paiement dans WooCommerce en fonction de différents rôles d'utilisateur. Parfois, il y a des cas où vous devrez peut-être le faire en fonction du pays du client. Cela peut être pour différentes raisons, telles que la passerelle de paiement n'étant pas largement utilisée dans ce pays, ou que vous souhaitiez encourager vos clients à utiliser une certaine passerelle de paiement pour effectuer des paiements et que vous souhaitiez donc activer de manière sélective cette passerelle de paiement. Dans tous les cas, lorsqu'il s'agit d'un magasin de commerce électronique qui sert à l'échelle mondiale, il s'agit d'une fonctionnalité utile. Lisez la suite pour savoir comment vous pouvez désactiver les passerelles de paiement pour certains pays dans WooCommerce.

Comme pour la plupart des choses, vous pouvez le faire en utilisant des extraits de code ou des plugins.

Utilisation d'un extrait de code pour désactiver les passerelles de paiement pour certains pays

Pour commencer, considérons un cas où vous souhaitez désactiver PayPal pour l'Inde. Collez le code suivant dans le fichier functions.php de votre thème enfant :

 add_filter( 'woocommerce_available_payment_gateways', 'ts_disable_payment_gateway_by_country' );
  
function ts_disable_payment_gateway_by_country( $available_payment_gateways ) {
    if ( is_admin() ) return $available_payment_gateways ;
    if ( isset( $available_payment_gateways['paypal'] ) && WC()->customer->get_billing_country() == 'IN' ) {
            unset( $available_payment_gateways['paypal'] );
        }
    renvoie $available_payment_gateways ;
}

Ici, nous avons ajouté une fonction au hook woocommerce_available_payment_gateways , qui vérifie le code pays du pays pour lequel nous écrivons la condition et désactive PayPal pour ce pays (l'Inde dans notre cas) :

disable payment gateways for some countries in WooCommerce - PayPal disabled for India on the Checkout page

Chaque pays a un code différent, tout comme nous avons utilisé "IN" pour l'Inde ici. Vous trouverez la liste des codes pays à la fin de cet article.

Les mots clés/slugs pour les passerelles de paiement disponibles par défaut sont :

Paypal : Paypal
Virement bancaire direct : bacs
Paiement à la livraison : morue
Chèque : chèque

Considérons un autre cas où nous voulons que seule l'option PayPal soit activée pour les clients aux États-Unis, cette option étant désactivée pour ceux en Inde. Dans ce cas, nous ajusterons quelques lignes supplémentaires à notre extrait de code ci-dessus afin qu'il désactive les autres passerelles de paiement pour les clients aux États-Unis :

 add_filter( 'woocommerce_available_payment_gateways', 'ts_disable_payment_gateway_by_country' );
  
function ts_disable_payment_gateway_by_country( $available_payment_gateways ) {
    if ( is_admin() ) return $available_payment_gateways ;
    if ( isset( $available_payment_gateways['paypal'] ) && WC()->customer->get_billing_country() == 'IN' ) {
            unset( $available_payment_gateways['paypal'] );
        }
  if ( WC()->client->get_billing_country() == 'US' ) {
    if (isset($available_payment_gateways['bacs'])) { unset($available_payment_gateways['bacs']); } 
    if (isset($available_payment_gateways['cheque'])) { unset($available_payment_gateways['cheque']); } 
    if (isset($available_payment_gateways['cod'])) { unset($available_payment_gateways['cod']); } 
  }
    renvoie $available_payment_gateways ;
}

De cette façon, vous pouvez désactiver les passerelles de paiement en fonction du pays du client.

Utiliser un plugin pour désactiver les passerelles de paiement pour certains pays

Il existe également des plugins disponibles pour désactiver les passerelles de paiement selon le pays du client. L'un de ces plugins est le plugin Country Based Payments . Il s'agit d'un plugin gratuit que vous pouvez utiliser pour décider quelle passerelle de paiement doit être disponible dans quel pays. Bien que l'interface du plug-in soit conviviale et explicite, si vous souhaitez exclure un seul pays d'une passerelle de paiement, la solution consiste à sélectionner tous les pays de cette passerelle de paiement, puis à désélectionner individuellement les pays que vous souhaitez désactiver. cette passerelle de paiement pour.

De plus, à l'aide du plug-in Conditional Payment Methods for WooCommerce , vous pouvez masquer/afficher toutes les passerelles de paiement (y compris les passerelles personnalisées) en fonction des pays - lieu de facturation/d'expédition des clients, taxonomie des produits ou total de la commande. Par exemple, affichez PayPal et Stripe aux États-Unis, au Canada et dans les pays européens.

De cette manière, vous pouvez utiliser des extraits de code ainsi que des plugins pour désactiver les passerelles de paiement en fonction du pays.

Liste des codes de pays :

Code Lieu/Pays
A1
proxy anonyme
A2 Fournisseur de satellites
O1 Autre pays
UN D Andorre
AE
Emirats Arabes Unis
UN F Afghanistan
AG
Antigua-et-Barbuda
IA Anguilla
AL Albanie
UN M Arménie
AO Angola
PA
Région Asie-Pacifique
QA Antarctique
RA Argentine
COMME
Samoa américaines
À L'Autriche
UA Australie
AW Aruba
HACHE Iles Aland
AZ Azerbaïdjan
BA
Bosnie Herzégovine
BB Barbade
BD Bengladesh
ÊTRE Belgique
BF Burkina Faso
BG Bulgarie
BH Bahreïn
BI Burundi
BJ Bénin
BL
Saint Barthélemy
BM Bermudes
NE
Brunei Darussalam
BO Bolivie
QB
Bonaire, Saint Eustache et Saba
BR Brésil
BS Bahamas
BT Bhoutan
VB Île Bouvet
PC Bostwana
PAR Biélorussie
BZ Bélize
Californie Canada
CC
Îles Cocos (Keeling)
CD
Congo, République Démocratique du
CF
République centrafricaine
CG Congo
CH Suisse
CI Côte d'Ivoire
CK les Îles Cook
CL Chili
CM Cameroun
CN Chine
CO Colombie
RC Costa Rica
UC Cuba
CV Cap-Vert
CW Curacao
CX L'île de noël
CY Chypre
CZ République tchèque
DE Allemagne
DJ Djibouti
NSP Danemark
DM Dominique
FAIS
République Dominicaine
DZ Algérie
CE Equateur
EE Estonie
PAR EXEMPLE Egypte
EH Sahara occidental
Urgences Érythrée
ES Espagne
HE Ethiopie
UE L'Europe 
FI Finlande
FJ Fidji
FK
Îles Falkland (Malouines)
MF
Micronésie, États fédérés de
FO Îles Féroé
FR France
Géorgie Gabon
Go Royaume-Uni
GD Grenade
GE Géorgie
GF Guyane Française
GG Guernesey
GH Ghana
IG Gibraltar
GL Groenland
GM Gambie
GN Guinée
généraliste Guadeloupe
GQ
Guinée Équatoriale
GR Grèce
GS
Géorgie du Sud et îles Sandwich du Sud
GT Guatemala
GU Guam
GW Guinée-Bissau
GY Guyane
Hong Kong Hong Kong
SM
Iles Heard et McDonald
HN Honduras
HEURE Croatie
HT Haïti
HU Hongrie
IDENTIFIANT Indonésie
C'EST À DIRE Irlande
IL Israël
JE SUIS île de Man
DANS Inde
OI
Territoire britannique de l'océan Indien
QI Irak
IR
Iran (République islamique d
EST Islande
CE Italie
JE Jersey
JM Jamaïque
JO Jordan
JP Japon
KE Kenya
KG Kirghizistan
KH Cambodge
KI Kiribati
KM Comores
KN
Saint-Christophe-et-Niévès
PC
République populaire démocratique de Corée
KR
Corée, République de
kW Koweit
KY Îles Caïmans
KZ Kazakhstan
LA
République démocratique populaire lao
KG Liban
CL Sainte-Lucie
LI Liechtenstein
LK Sri Lanka
G / D Libéria
LS Lesotho
LT Lituanie
LU Luxembourg
BT Lettonie
LY
Jamahiriya arabe libyenne
MA Maroc
MC Monaco
MARYLAND
Moldavie, République de
MOI Monténégro
MF Saint Martin
MG Madagascar
MH Iles Marshall
MK Macédoine
ML Mali
MM Birmanie
MN Mongolie
MO Macao
député
Îles Mariannes du Nord
QM Martinique
M Mauritanie
MME Montserrat
MT Malte
MU Maurice
MV Maldives
MW Malawi
MX Mexique
MA Malaisie
MZ Mozambique
N / A Namibie
NC Nouvelle Calédonie
NE Niger
NF l'ile de Norfolk
NG Nigeria
NI Nicaragua
T.-N.-L. Pays-Bas
NON Norvège
NP Népal
NR Nauru
UN Niué
Nouvelle-Zélande Nouvelle-Zélande
OM Oman
Pennsylvanie Panama
PE Pérou
FP
Polynésie française
PG
Papouasie Nouvelle Guinée
pH Philippines
PAQUET Pakistan
PL Pologne
PM
Saint-Pierre-et-Miquelon
PN Pitcairn
RP Porto Rico
PS
Territoire Palestinien
PT le Portugal
TP Palaos
PY Paraguay
AQ Qatar
CONCERNANT Réunion
RO Roumanie
RS Serbie
RU
Fédération Russe
RW Rwanda
SA Arabie Saoudite
SB îles Salomon
CS les Seychelles
Dakota du Sud Soudan
SE Suède
SG Singapour
SH Sainte-Hélène
SI Slovénie
SJ
Svalbard et Jan Mayen
Sask. Slovaquie
SL Sierra Leone
SM Saint Marin
SN Sénégal
ALORS Somalie
RS Suriname
SS Soudan du sud
ST
Sao Tomé et Principe
SV Le Salvador
SX Saint-Martin
SY
République arabe syrienne
SZ Swaziland
CT
îles Turques-et-Caïques
TD Tchad
TF
Terres australes françaises
TG Aller
E Thaïlande
TJ Tadjikistan
savoirs traditionnels Tokélaou
TL Timor oriental
MT Turkménistan
TN Tunisie
À Tonga
TR Turquie
TT
Trinité-et-Tobago
la télé Tuvalu
TW Taïwan
TZ
Tanzanie, République-Unie de
UA Ukraine
UG Ouganda
UM
Îles mineures éloignées des États-Unis
NOUS États-Unis
UY Uruguay
UZ Ouzbékistan
Virginie
Saint-Siège (État de la Cité du Vatican)
CV
Saint-Vincent-et-les-Grenadines
VE Venezuela
TB
Îles Vierges britanniques
VI
Îles Vierges, États-Unis
VN Viêt Nam
VU Vanuatu
WF
Wallis et Futuna
WS Samoa
VOUS Yémen
YT Mayotte
ZA Afrique du Sud
ZM Zambie
ZW Zimbabwe