Fórum OpenCart Brasil

Por um e-commerce livre, confiável e profissional

#81104
Gostaria de fazer uma modificação de um módulo já pronto de Auto completar o Endereço. Ele localiza o endereço, cidade e estado através do cep. O que eu gostaria é o seguinte:
- Se localiza o endereço completo do cliente: adicionar um css "sem-bordas"
- Se não, apresenta os campos para digitação manual de endereço, cidade e estado e o css "com-bordas".
Um bom exemplo do tipo de formulário que eu gostaria está presente no site da TELHANORTE, para vê-lo, basta realizar um compra e ir até o checkout
Abaixo o código original:
Código: Selecionar todos
 $(function(){
        
      
          $('input[name="postcode"]').blur(function(){
            var cep = $.trim($('input[name="postcode"]').val().replace('-', ''));
    
    
            //$.getScript ("http://cep.republicavirtual.com.br/web_cep.php?formato=javascript&cep="+cep, function(){
            
             $.getJSON("https://viacep.com.br/ws/"+ cep +"/json/?callback=?", function(dados){
              if(!("erro" in dados)){
         
                $('input[name="address_1"]').val(dados.logradouro);
                $('input[name="address_1"]').parent().parent().fadeIn('slow');
                $('input[name="address_2"]').val(dados.bairro);
                $('input[name="address_2"]').parent().parent().fadeIn('slow');
                $('input[name="city"]').val(unescape(dados.localidade));
                $('input[name="city"]').parent().parent().fadeIn('slow');                
                
                $('select[name="zone_id"]').parent().parent().fadeIn('slow');
                $('select[name="country_id"]').find('option[value="30"]').attr('selected', true);
              
                $.post('index.php?route=account/register/estado_autocompletar&estado=' + unescape(dados.uf), function(zone_id){
                  $.ajax({
                    url: 'index.php?route=account/register/country&country_id=30',
                    dataType: 'json',
                    beforeSend: function() {
                    
                      $('select[name=\'country_id\']').after(' <i class="fa fa-circle-o-notch fa-spin"></i>');
                        
                    },
                    complete: function() {
                      $('.fa-spin').remove();
                    },      
                    success: function(json) {
                      if (json['postcode_required'] == '1') {
                        $('#postcode-required').parent().parent().addClass('required');
                        
                      } else {
                        $('#postcode-required').parent().parent().removeClass('required');
                      }
 var html = '<option value=""><?php echo $text_select; ?></option>';
  
                      if (json['zone'] != '') {
                        for (i = 0; i < json['zone'].length; i++) {
                          html += '<option value="' + json['zone'][i]['zone_id'] + '"';
                          
                          if (json['zone'][i]['zone_id'] == zone_id) {
                            html += ' selected="selected"';
                          }
                  
                          html += '>' + json['zone'][i]['name'] + '</option>';
                        }
                      } else {
                        html += '<option value="0" selected="selected"><?php echo $text_none; ?></option>';
                         
                      }
  
                      $('select[name=\'zone_id\']').html(html);
                    }
                  });
                });
              }
            });
          });
        }); 
Acredito que seja isto a ser feito:
Código: Selecionar todos
 success: function(json) {
                      if (json['postcode_required'] == '1') {
                        $('#postcode-required').parent().parent().addClass('required');
                        
                      } else {
                        $('#postcode-required').parent().parent().removeClass('required');
                      }

                      if(json['address_1'] == '0'){//mycode
                        $('#input-address-1').addClass('sem-bordas');
                      }else{
                        $('#input-address-1').removeClass('sem-bordas');                      
                      }//end mycode
Mas não deu certo. Alguma dica? Desde já agradeço
Código original por: opencartmasterBR - Obrigado por disponibilizá-lo

Gente preciso de ajuda urgente. Na migraç&a[…]

Caro @reds , muito obrigado pela resposta.

PHP 8+ incompatibilidade

Toda tradução para a versão 3[…]

Ola @alex3257 Se você precisa apenas ver […]