1jQuery(document).ready(function ($) { 2 // Função para preencher automaticamente o endereço com base no CEP 3 function autocompleteAddressByCEP(cep, prefix) { 4 var $prefixPostcodeField = $(`#${prefix}_postcode_field`); 5 6 // Mostra o Ãcone de carregamento 7 $prefixPostcodeField.block({ 8 message: null, 9 overlayCSS: { 10 background: '#fff', 11 opacity: 0.6 12 } 13 }); 14 15 $.ajax({ 16 url: 'https://viacep.com.br/ws/' + cep + '/json/', 17 method: 'GET', 18 dataType: 'json' 19 }) 20 .done(function (data) { 21 if (data && data.uf && data.localidade && data.bairro && data.logradouro) { 22 // Preenche os campos de endereço com os dados obtidos da API 23 $(`#${prefix}_state`).val(data.uf).change(); 24 $(`#${prefix}_city`).val(data.localidade); 25 $(`#${prefix}_neighborhood`).val(data.bairro); 26 $(`#${prefix}_address_1`).val(data.logradouro); 27 28 // Atualiza os campos escolhidos se estiverem usando o plugin Chosen 29 setTimeout(function () { 30 $(`#${prefix}_state`).trigger('chosen:updated'); 31 }, 100); 32 } 33 }) 34 .fail(function (jqXHR, textStatus, errorThrown) { 35 console.error('Erro ao obter dados da API:', textStatus, errorThrown); 36 }) 37 .always(function () { 38 // Esconde o Ãcone de carregamento 39 $prefixPostcodeField.unblock(); 40 }); 41 } 42 43 // Evento de mudança no campo de CEP 44 $('form.checkout').on('input', '#billing_postcode, #shipping_postcode', function () { 45 var prefix = this.id.split('_')[0]; 46 var cep = $(this).val().replace(/\D/g, ''); // Remover não dÃgitos do CEP 47 48 // Debounce input 49 clearTimeout($.data(this, 'timer')); 50 var wait = setTimeout(function(){ 51 if (cep.length === 8) { 52 autocompleteAddressByCEP(cep, prefix); 53 } 54 }, 1000); // Aumentei o tempo de espera para 1 segundo (1000ms) 55 $(this).data('timer', wait); 56 }); 57});
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.