Olá pessoal, hoje eu quero mostar para você como desabilitar Checkout para alguns Países e Estados no WooCommerce… Essa função é muito útil para sistema de e-commerce que o usuário deseja vender os seus produtos para determinados locais.
Eu já escreví um post com um conceito similiar, vocês podem ver o mesmo em Vender Somente para Estado Específico.
Com esse post, eu vou mostrar uma forma de como bloquear e dar um alerta em texto falando que o estado selecionado não tem método de entrega.
Eu, criei uma function chamada wc_checkout_validation() dentro dela eu vou determinar duas verificações.
Antes de iniciar as verificações eu criei duas variáveis $shipping_country e $shipping_state as mesmas estão recebendo informações sobre Países e Estados que vem do seu WooCommerce.
Logo abaixo eu apliquei a variável $excluded_states, dentro dela eu passei os meus estados específicos para desabilitar o checkout, como vocês podem ver eu só apliquei a sigla dos estados “SP, DF e RS” não tem necessidade de aplicar o nome completo do estado, essa função só precisa passar a sigla para funcionar.
Para ver a lista completa dos estados é só abrir o arquivo: wp-content/plugins/woocommerce/i18n/states/BR.php
Dentro do nosso primeiro IF eu criei a verificação, se o mesmo é diferente do que Brasil “BR” será exibido um alerta similar a esse:
Agora, na proxíma verificacão nós vamos ver se o CEP digitado pelo cliente é igual à algum estado que nós declaramos dentro da nossa variável $excluded_states.
Nessa verificação eu comparo se $shipping_state é igual a algum estado que “excluimos” dentro da nossa variável $excluded_states, se o mesmo for igual a algum estado a função irá imprimir um alerta similar a esse:
Para que o nosso estado fique com o nome completo, exemplo: “São Paulo, Distrito Federal e Rio Grande do Sul” invés de “SP, DF e RS”.
Eu criei uma variável chamada $states e dentro dela eu aplique uma verificação WC()->countries->get_states( ‘BR‘ );
* Se vocês estão trabalhando com um País diferente ‘BR’ é só aplicar a sigla dentro das aspas simples.
Após disso é só aplicar $state = $states[$shipping_state]; que o mesmo irá imprimir o nome completo do seu estado.
Espero que vocês tenham gostado desse tutorial e até breve, por favor se você gostou deixe seu like e também compartilha.
Até Mais,