Cómo bloquear ciertos estados en WooCommerce

Publicado: 2019-07-11

¿Tiene algo para vender pero no quiere venderlo a todos los estados de su país por razones logísticas, legales u otras?

Bueno, en tal escenario, puede bloquear ciertos estados en WooCommerce.

Bloquear ciertos estados en WooCommerce

Déjame explicarte cómo puedes bloquear, restringir o permitir algunos estados en cualquier país que vendas...

El siguiente código muestra la lista completa de estados en los Estados Unidos.

Ahora, para bloquear las ventas en ciertos estados, debe eliminar los estados que no desea vender.

En otras palabras, hacer que la lista solo incluya los estados a los que vende. Simple como eso…

 /** * 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; }

Vender a un solo Estado

Este es un ejemplo del código anterior. Supongamos que está vendiendo productos frescos y solo quiere venderlos en su estado de origen.

Porque está vendiendo productos frescos como frutas, verduras y no tiene un sistema de entrega adecuado para realizar entregas en todo el país.

digamos que es del estado de California para este ejemplo, con el siguiente código puede eliminar todos los demás estados excepto California.

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

Ahora, cuando los clientes vayan a la página de pago, solo verán California en las opciones desplegables de direcciones y no otros estados.


Restringir estados de cualquier otro país

Esta solución no es solo para los Estados Unidos, sin importar de qué país sea, solo necesita reemplazar los nombres y códigos de países y estados.

Aquí hay un ejemplo de Australia.

 /** * 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; }

Compilé la lista de casi todos los códigos de países y también incluí los estados de algunos países para que pueda encontrar los códigos de su país y estado aquí.

CÓMO AÑADIR CÓDIGO PHP

El complemento Code Snippets hace que sea muy fácil no solo agregar fragmentos de PHP a su sitio web, sino también administrar todos los fragmentos que agrega.

Puede activar y desactivar ciertos fragmentos e incluso agregar notas sobre lo que hacen. Incluso tiene un mejor manejo de errores para evitar los escenarios de error de PHP.

Para instalarlo, simplemente vaya a Complementos > Agregar nuevo y busque Fragmentos de código .

La forma tradicional o normal de agregar fragmentos de PHP a su tema es agregarlos directamente en el archivo functions.php de su tema.

Sin embargo, asegúrese de estar utilizando un tema secundario; de lo contrario, perderá todos los cambios una vez que actualice su tema.