WooCommerce le permite limitar el envío de países (o países «permitidos»). Sin embargo, digamos que su negocio tiene su sede en Pensilvania, EE. UU. (PA) o en uno de los estados australianos. Es posible que desee limitar el envío solo a un estado.
Todo lo que necesita es pegar el siguiente código en sus funciones.php
Fragmento de WooCommerce 3.0+
Dado que WooCommerce 3.0, «get_shipping_state ()» reemplaza la función «shipping_state»:
/** n*@snippet Only ship to PA n*@how-to https://tdestudiodesign.com/tutoriales n*@sourcecode https://businessbloomer.com/?p=309 n*@author Tomás Lucas D´Amario, TD Estudio Design n*@testedwith WooCommerce 3.2.1 */function tddesign_only_ship_to_pa( $rates, $package ) {global $woocommerce;$excluded_states = array( 'AL','AK','AS','AZ','AR','CA','CO','CT','DE','DC','FL','FM','GA','GU','HI','ID','IL','IN','IA','KS','KY','LA','ME','MH','MD','MA','MI','MN','MS','MO','MT','NE','NV','NH','NJ','NM','NY','NC','ND','MP','OH','OK','OR','PW','PR','RI','SC','SD','TN','TX','UM','UT','VT','VA','VI','WA','WV','WI','WY' );if( in_array( WC()->customer->get_shipping_state(), $excluded_states ) ) {$rates = array();}return $rates;}add_filter( 'woocommerce_package_rates', 'tddesign_only_ship_to_pa', 10, 2 );
WooCommerce 2.1+ Fragmento
wooCommerce_available_shipping_methods ha sido reemplazado por wooCommerce_package_rates.
Si se dirige a un país diferente, deberá echar un vistazo a wooCommerce i18n states.php carpeta dentro del complemento y luego encuentre su país deseado. Si los estados no están allí, consulte https://docs.woocommerce.com/document/states-not-in-core/.
/** n*@snippet Only ship to PA WooCommerce 2.1+ n*@how-to https://tdestudiodesign.com/tutoriales n*@sourcecode https://businessbloomer.com/?p=309 n*@author Tomás Lucas D´Amario, TD Estudio Design n*@testedwith WooCommerce 2.6 */function tddesign_only_ship_to_pa( $rates, $package ) {global $woocommerce;$excluded_states = array( 'AL','AK','AS','AZ','AR','CA','CO','CT','DE','DC','FL','FM','GA','GU','HI','ID','IL','IN','IA','KS','KY','LA','ME','MH','MD','MA','MI','MN','MS','MO','MT','NE','NV','NH','NJ','NM','NY','NC','ND','MP','OH','OK','OR','PW','PR','RI','SC','SD','TN','TX','UM','UT','VT','VA','VI','WA','WV','WI','WY' );if( in_array( WC()->customer->shipping_state, $excluded_states ) ) {$rates = array();}return $rates;}add_filter( 'woocommerce_package_rates', 'tddesign_only_ship_to_pa', 10, 2 );
Hasta WooCommerce 2.0
// Only ship to PA Woo 2.0function only_ship_to_pa( $available_methods ) {global $woocommerce;$excluded_states = array( 'AL','AK','AS','AZ','AR','CA','CO','CT','DE','DC','FL','FM','GA','GU','HI','ID','IL','IN','IA','KS','KY','LA','ME','MH','MD','MA','MI','MN','MS','MO','MT','NE','NV','NH','NJ','NM','NY','NC','ND','MP','OH','OK','OR','PW','PR','RI','SC','SD','TN','TX','UM','UT','VT','VA','VI','WA','WV','WI','WY' ); if( in_array( $woocommerce->customer->get_shipping_state(), $excluded_states ) ) {// Empty the $available_methods array$available_methods = array();} return $available_methods;}add_filter( 'woocommerce_available_shipping_methods', 'only_ship_to_pa', 10 );
Este código todavía funciona, a menos que informe lo contrario. Para excluir los conflictos, cambie temporalmente al tema de la tienda, deshabilite todos los complementos, excepto WooCommerce, y pruebe el fragmento nuevamente: Solución de problemas de WooCommerce 101