Comment bloquer certains états dans WooCommerce

Publié: 2019-07-11

Vous avez quelque chose à vendre mais vous ne voulez pas le vendre à tous les états de votre pays pour des raisons logistiques, juridiques ou autres ?

Eh bien, dans un tel scénario, vous pouvez simplement bloquer certains états dans WooCommerce.

Bloquer certains États dans WooCommerce

Laissez-moi vous expliquer comment vous pouvez bloquer, restreindre ou autoriser certains états dans n'importe quel pays que vous vendez…

Le code ci-dessous montre la liste complète des États aux États-Unis.

Désormais, afin de bloquer les ventes dans certains États, vous devez supprimer les États que vous ne souhaitez pas vendre.

En d'autres termes, faire en sorte que la liste ne comprenne que les États auxquels vous vendez. Aussi simple que cela…

 /** * Sell only in specific states * Remove the states not eligible to purchase * Final list is of states that CAN purchase */ add_filter( 'woocommerce_states', 'wpglorify_restrict_states' ); function wpglorify_restrict_states( $states ) { $states['US'] = array( 'AL' => __( 'Alabama', 'woocommerce' ), 'AK' => __( 'Alaska', 'woocommerce' ), 'AZ' => __( 'Arizona', 'woocommerce' ), 'AR' => __( 'Arkansas', 'woocommerce' ), 'CA' => __( 'California', 'woocommerce' ), 'CO' => __( 'Colorado', 'woocommerce' ), 'CT' => __( 'Connecticut', 'woocommerce' ), 'DE' => __( 'Delaware', 'woocommerce' ), 'DC' => __( 'District Of Columbia', 'woocommerce' ), 'FL' => __( 'Florida', 'woocommerce' ), 'GA' => _x( 'Georgia', 'US state of Georgia', 'woocommerce' ), 'HI' => __( 'Hawaii', 'woocommerce' ), 'ID' => __( 'Idaho', 'woocommerce' ), 'IL' => __( 'Illinois', 'woocommerce' ), 'IN' => __( 'Indiana', 'woocommerce' ), 'IA' => __( 'Iowa', 'woocommerce' ), 'KS' => __( 'Kansas', 'woocommerce' ), 'KY' => __( 'Kentucky', 'woocommerce' ), 'LA' => __( 'Louisiana', 'woocommerce' ), 'ME' => __( 'Maine', 'woocommerce' ), 'MD' => __( 'Maryland', 'woocommerce' ), 'MA' => __( 'Massachusetts', 'woocommerce' ), 'MI' => __( 'Michigan', 'woocommerce' ), 'MN' => __( 'Minnesota', 'woocommerce' ), 'MS' => __( 'Mississippi', 'woocommerce' ), 'MO' => __( 'Missouri', 'woocommerce' ), 'MT' => __( 'Montana', 'woocommerce' ), 'NE' => __( 'Nebraska', 'woocommerce' ), 'NV' => __( 'Nevada', 'woocommerce' ), 'NH' => __( 'New Hampshire', 'woocommerce' ), 'NJ' => __( 'New Jersey', 'woocommerce' ), 'NM' => __( 'New Mexico', 'woocommerce' ), 'NY' => __( 'New York', 'woocommerce' ), 'NC' => __( 'North Carolina', 'woocommerce' ), 'ND' => __( 'North Dakota', 'woocommerce' ), 'OH' => __( 'Ohio', 'woocommerce' ), 'OK' => __( 'Oklahoma', 'woocommerce' ), 'OR' => __( 'Oregon', 'woocommerce' ), 'PA' => __( 'Pennsylvania', 'woocommerce' ), 'RI' => __( 'Rhode Island', 'woocommerce' ), 'SC' => __( 'South Carolina', 'woocommerce' ), 'SD' => __( 'South Dakota', 'woocommerce' ), 'TN' => __( 'Tennessee', 'woocommerce' ), 'TX' => __( 'Texas', 'woocommerce' ), 'UT' => __( 'Utah', 'woocommerce' ), 'VT' => __( 'Vermont', 'woocommerce' ), 'VA' => __( 'Virginia', 'woocommerce' ), 'WA' => __( 'Washington', 'woocommerce' ), 'WV' => __( 'West Virginia', 'woocommerce' ), 'WI' => __( 'Wisconsin', 'woocommerce' ), 'WY' => __( 'Wyoming', 'woocommerce' ), 'AA' => __( 'Armed Forces (AA)', 'woocommerce' ), 'AE' => __( 'Armed Forces (AE)', 'woocommerce' ), 'AP' => __( 'Armed Forces (AP)', 'woocommerce' ), 'AS' => __( 'American Samoa', 'woocommerce' ), 'GU' => __( 'Guam', 'woocommerce' ), 'MP' => __( 'Northern Mariana Islands', 'woocommerce' ), 'PR' => __( 'Puerto Rico', 'woocommerce' ), 'UM' => __( 'US Minor Outlying Islands', 'woocommerce' ), 'VI' => __( 'US Virgin Islands', 'woocommerce' ), ); return $states; }

Vendre à un seul État

Ceci est un exemple du code ci-dessus. Disons que vous vendez des produits frais et que vous ne souhaitez vendre que dans votre pays d'origine.

Parce que vous vendez des produits frais tels que des fruits, des légumes et que vous ne disposez pas d'un système de livraison approprié pour livrer dans tout le pays.

disons que vous êtes de l'état de Californie pour cet exemple, avec le code ci-dessous, vous pouvez supprimer tous les autres états sauf la Californie.

 // Only one state. example California in the US add_filter( 'woocommerce_states', 'wpglorify_restrict_states' ); function wpglorify_restrict_states( $states ) { $states['US'] = array( 'CA' => __( 'California', 'woocommerce' ), ); return $states; }

Désormais, lorsque les clients accèdent à la page de paiement, ils ne voient que la Californie dans les options de liste déroulante des adresses et non les autres États.


Restreindre les États de tout autre pays

Cette solution n'est pas seulement pour les États-Unis, peu importe de quel pays vous venez, il vous suffit de remplacer les noms et codes de pays et d'état.

Voici un exemple de l'Australie

 /** * list of Australian states to sell */ add_filter( 'woocommerce_states', 'wpglorify_restrict_states' ); function wpglorify_restrict_states( $states ) { $states['AU'] = array( 'ACT' => __( 'Australian Capital Territory', 'woocommerce' ), 'NSW' => __( 'New South Wales', 'woocommerce' ), 'NT' => __( 'Northern Territory', 'woocommerce' ), 'QLD' => __( 'Queensland', 'woocommerce' ), 'SA' => __( 'South Australia', 'woocommerce' ), 'TAS' => __( 'Tasmania', 'woocommerce' ), 'VIC' => __( 'Victoria', 'woocommerce' ), 'WA' => __( 'Western Australia', 'woocommerce' ), ); return $states; }

J'ai compilé la liste de presque tous les codes de pays et j'ai également inclus les états de certains pays pour que vous trouviez ici vos codes de pays et d'état.

COMMENT AJOUTER DU CODE PHP

Le plugin Code Snippets permet non seulement d'ajouter des extraits PHP à votre site Web, mais également de gérer tous les extraits que vous ajoutez.

Vous pouvez activer et désactiver certains extraits, et même ajouter des notes sur ce qu'ils font. Il a même une meilleure gestion des erreurs pour éviter les scénarios d'erreur PHP.

Pour l'installer, allez simplement dans Plugins > Add New et recherchez Code Snippets .

La manière traditionnelle ou normale d'ajouter des extraits PHP à votre thème est de les ajouter directement dans le fichier functions.php de votre thème.

Cependant, assurez-vous d'utiliser un thème enfant, sinon vous perdrez toutes les modifications une fois que vous aurez mis à jour votre thème.