Respondendo ao Felipe e a todos interessados:
Tentei fazer a chamada de um arquivo .js do meu servidor, porém ocorre o erro com o SSL.
Para solucionar esse problema, segue o código:
Código: Selecionar todos<modification>
<id>CEP Automatico</id>
<version>1.0.0</version>
<vqmver>2.1.5</vqmver>
<author>Caneto</author>
<file name="catalog/controller/account/register.php">
<operation>
<search position="before"><![CDATA[public function country() {]]></search>
<add><![CDATA[
// Inicio - WebService - Cep Automatico
public function cepautomatico(){
//IMPORTANTE: O OpenCart trata o array como uma classe!
if (isset($this->request->get['cep'])){
//Carrega o servidor da Republica Virtual e decodifica os dados
$output = @file_get_contents('http://republicavirtual.com.br/web_cep.php?cep='.urlencode($this->request->get['cep']).'&formato=json');
$endereco=json_decode($output);
//Carrega o modelo que trata as zones.
$this->load->model('localisation/zone');
$results = $this->model_localisation_zone->getZonesByCountryIdAndCode(30,$endereco->uf);
//Substitui o UF pelo zone_id
$endereco->uf=$results['zone_id'];
//Encode do retorno
$output=json_encode($endereco);
//Já inclui o UTF8 para acentuação
$this->response->setOutput(utf8_encode($output), $this->config->get('config_compression'));
}
}
// Fim - WebService - Cep automatico
]]></add>
</operation>
</file>
<file name="catalog/view/theme/*/template/account/register.tpl">
<operation>
<search position="before" ><![CDATA[<?php echo $footer; ?>]]></search>
<add><![CDATA[
<script type="text/javascript">
$(function(){
//Esconde os campos
$('input[name="address_1"]').parent().parent().hide();
$('input[name="address_2"]').parent().parent().hide();
$('input[name="city"]').parent().parent().hide();
//Carrega a função quando o campo CEP perde o foco
$('input[name="postcode"]').blur(function(){
//Mostra os campos
$('input[name="address_1"]').parent().parent().fadeIn('slow');
$('input[name="address_2"]').parent().parent().fadeIn('slow');
$('input[name="city"]').parent().parent().fadeIn('slow');
//Variável do CEP
var cep = $.trim($('input[name="postcode"]').val().replace('-', ''));
$.get('index.php?route=account/register/cepautomatico',{cep: cep},function(endereco){
//Transforma a função em JSON
var obj = $.parseJSON(endereco)
//Variáveis dos objetos
var uf = obj.uf;
var bairro = obj.bairro;
var cidade = obj.cidade;
var endereco = obj.tipo_logradouro+" "+obj.logradouro;
var res = obj.resultado;
if(res){
//Preenche o campo endereço
$('input[name="address_1"]').val(endereco);
//Preenche o campo cidade
$('input[name="city"]').val(cidade);
//Preenche o campo bairro
$('input[name="address_2"]').val(bairro);
//Informa o estado
$('select[name="zone_id"]').val(uf);
}
});
});
});
</script>
]]></add>
</operation>
</file>
<file name="catalog/view/theme/*/template/account/address_form.tpl">
<operation>
<search position="before" ><![CDATA[<?php echo $footer; ?>]]></search>
<add><![CDATA[
<script type="text/javascript">
$(function(){
$('input[name="postcode"]').blur(function(){
var cep = $.trim($('input[name="postcode"]').val().replace('-', ''));
$.get('index.php?route=account/register/cepautomatico',{cep: cep},function(endereco){
var obj = $.parseJSON(endereco)
var uf = obj.uf;
var bairro = obj.bairro;
var cidade = obj.cidade;
var endereco = obj.tipo_logradouro+" "+obj.logradouro;
var res = obj.resultado;
if(res){
//Preenche o campo endereço
$('input[name="address_1"]').val(endereco);
//Preenche o campo cidade
$('input[name="city"]').val(cidade);
//Preenche o campo bairro
$('input[name="address_2"]').val(bairro);
//Informa o estado
$('select[name="zone_id"]').val(uf);
}
});
});
});
</script>
]]></add>
</operation>
</file>
<file name="catalog/view/theme/*/template/checkout/register.tpl">
<operation>
<search position="before" ><![CDATA[<script type="text/javascript">]]></search>
<add><![CDATA[
<script type="text/javascript">
$(function(){
$('input[name="postcode"]').blur(function(){
var cep = $.trim($('input[name="postcode"]').val().replace('-', ''));
$.get('index.php?route=account/register/cepautomatico',{cep: cep},function(endereco){
var obj = $.parseJSON(endereco)
var uf = obj.uf;
var bairro = obj.bairro;
var cidade = obj.cidade;
var endereco = obj.tipo_logradouro+" "+obj.logradouro;
var res = obj.resultado;
if(res){
//Preenche o campo endereço
$('input[name="address_1"]').val(endereco);
//Preenche o campo cidade
$('input[name="city"]').val(cidade);
//Preenche o campo bairro
$('input[name="address_2"]').val(bairro);
//Informa o estado
$('select[name="zone_id"]').val(uf);
}
});
});
});
</script>
]]></add>
</operation>
</file>
<file name="catalog/view/theme/*/template/checkout/guest.tpl">
<operation>
<search position="before" ><![CDATA[<script type="text/javascript">]]></search>
<add><![CDATA[
<script type="text/javascript">
$(function(){
$('input[name="postcode"]').blur(function(){
var cep = $.trim($('input[name="postcode"]').val().replace('-', ''));
$.get('index.php?route=account/register/cepautomatico',{cep: cep},function(endereco){
var obj = $.parseJSON(endereco)
var uf = obj.uf;
var bairro = obj.bairro;
var cidade = obj.cidade;
var endereco = obj.tipo_logradouro+" "+obj.logradouro;
var res = obj.resultado;
if(res){
//Preenche o campo endereço
$('input[name="address_1"]').val(endereco);
//Preenche o campo cidade
$('input[name="city"]').val(cidade);
//Preenche o campo bairro
$('input[name="address_2"]').val(bairro);
//Informa o estado
$('select[name="zone_id"]').val(uf);
}
});
});
});
</script>
]]></add>
</operation>
</file>
<file name="catalog/view/theme/*/template/checkout/guest_shipping.tpl">
<operation>
<search position="before" ><![CDATA[<script type="text/javascript">]]></search>
<add><![CDATA[
<script type="text/javascript">
$(function(){
$('input[name="postcode"]').blur(function(){
var cep = $.trim($('input[name="postcode"]').val().replace('-', ''));
$.get('index.php?route=account/register/cepautomatico',{cep: cep},function(endereco){
var obj = $.parseJSON(endereco)
var uf = obj.uf;
var bairro = obj.bairro;
var cidade = obj.cidade;
var endereco = obj.tipo_logradouro+" "+obj.logradouro;
var res = obj.resultado;
if(res){
//Preenche o campo endereço
$('input[name="address_1"]').val(endereco);
//Preenche o campo cidade
$('input[name="city"]').val(cidade);
//Preenche o campo bairro
$('input[name="address_2"]').val(bairro);
//Informa o estado
$('select[name="zone_id"]').val(uf);
}
});
});
});
</script>
]]></add>
</operation>
</file>
<file name="catalog/view/theme/*/template/checkout/payment_address.tpl">
<operation>
<search position="before" ><![CDATA[<script type="text/javascript">]]></search>
<add><![CDATA[
<script type="text/javascript">
$(function(){
$('input[name="postcode"]').blur(function(){
var cep = $.trim($('input[name="postcode"]').val().replace('-', ''));
$.get('index.php?route=account/register/cepautomatico',{cep: cep},function(endereco){
var obj = $.parseJSON(endereco)
var uf = obj.uf;
var bairro = obj.bairro;
var cidade = obj.cidade;
var endereco = obj.tipo_logradouro+" "+obj.logradouro;
var res = obj.resultado;
if(res){
//Preenche o campo endereço
$('input[name="address_1"]').val(endereco);
//Preenche o campo cidade
$('input[name="city"]').val(cidade);
//Preenche o campo bairro
$('input[name="address_2"]').val(bairro);
//Informa o estado
$('select[name="zone_id"]').val(uf);
}
});
});
});
</script>
]]></add>
</operation>
</file>
<file name="catalog/view/theme/*/template/checkout/shipping_address.tpl">
<operation>
<search position="before" ><![CDATA[<script type="text/javascript">]]></search>
<add><![CDATA[
<script type="text/javascript">
$(function(){
$('input[name="postcode"]').blur(function(){
var cep = $.trim($('input[name="postcode"]').val().replace('-', ''));
$.get('index.php?route=account/register/cepautomatico',{cep: cep},function(endereco){
var obj = $.parseJSON(endereco)
var uf = obj.uf;
var bairro = obj.bairro;
var cidade = obj.cidade;
var endereco = obj.tipo_logradouro+" "+obj.logradouro;
var res = obj.resultado;
if(res){
//Preenche o campo endereço
$('input[name="address_1"]').val(endereco);
//Preenche o campo cidade
$('input[name="city"]').val(cidade);
//Preenche o campo bairro
$('input[name="address_2"]').val(bairro);
//Informa o estado
$('select[name="zone_id"]').val(uf);
}
});
});
});
</script>
]]></add>
</operation>
</file>
<file name="catalog/model/localisation/zone.php">
<operation>
<search position="before"><![CDATA[public function getZonesByCountryId($country_id) {]]></search>
<add><![CDATA[
public function getZonesByCountryIdAndCode($country_id,$code) {
$query = $this->db->query("SELECT * FROM " . DB_PREFIX . "zone WHERE country_id = '" . (int)$country_id . "' AND code= '" . $code . "' AND status = '1' ORDER BY name LIMIT 1");
return $query->row;
}
]]></add>
</operation>
</file>
</modification>
Créditos ao autor do mod
Testado na versão 1.5.5.1
Esse mod precisa de alguns ajustes, conforme relatei neste tópico:
https://forum.opencartbrasil.com.br/ ... 0&start=70
Espero ter ajudado