Re: [TUTORIAL] CEP automático - Auto Complete (Cadastro)
Enviado: 19 Mar 2012, 16:58
Como colocar no check-out no Conta & Endereço para Cobrança, onde a pessoa se cadastra por lá? Open Cart versão - 1.5.1.3
Por um e-commerce livre, confiável e profissional.
https://forum.opencartbrasil.com.br/
radicalroller2 escreveu:Como colocar no check-out no Conta & Endereço para Cobrança, onde a pessoa se cadastra por lá? Open Cart versão - 1.5.1.3Não entendi o que vc quiz dizer!
<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 zone() {]]></search>
<add><![CDATA[
// Inicio - WebService - Cep Automatico
public function cepautomatico(){
if (isset($this->request->get['cep'])){
$output = @file_get_contents('http://republicavirtual.com.br/web_cep.php?cep='.urlencode($this->request->get['cep']).'&formato=json');
$endereco=json_decode($output);//IMPORTANTE o OpenCart trata o array como uma classe!! ( nao sabia disso rsrs)
$this->load->model('localisation/zone');//carrega o modelo que trata as zones.
//IMPORTANTE metodo abaixo eu criei...codigo no bloco abaixo, 30 e o id do pais( CONFIRAM SE 30 E O BRASIL PARA VOCES), e o uf e o que vem nao precisa mexer
$results = $this->model_localisation_zone->getZonesByCountryIdAndCode(30,$endereco->uf);
$endereco->uf=$results['zone_id'];//troca o uf pelo zone_id
$output=json_encode($endereco);//encode pro retorno
$this->response->setOutput(utf8_encode($output), $this->config->get('config_compression'));//ja inclui o utf8 pra acentuacao...
}
}
// Fim - WebService - Cep automatico
]]></add>
</operation>
</file>
<file name="catalog/view/theme/default/template/account/register.tpl">
<operation>
<search position="before" ><![CDATA[<?php echo $footer; ?>]]></search>
<add><![CDATA[
<script type="text/javascript">
$(function(){
$('input[name="postcode"]').blur(function(){
//$('#carregando_cep').show(); essa linha e por que coloquei uma imagem de um gif do lado campo para mostrar quando atualizar...
var cep = $.trim($('input[name="postcode"]').val().replace('-', ''));
$.get('index.php?route=account/register/cepautomatico',{cep: cep},function(endereco){
var obj = $.parseJSON(endereco)// passei para json entao aqui faz o parse e cria o objeto (obj)
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){
$('input[name="address_1"]').val(endereco); // preenche o campo endereco 1 com o endereco
$('input[name="city"]').val(cidade); // preenche o campo cidade
$('input[name="address_2"]').val(bairro); // preenche o campo emdereco 2 com o bairro
$('select[name="zone_id"]').val(uf); //preenche o estado com o ID zone (estado)
}
});
//$('#carregando_cep').hide(); esconder a imagem de loading
});
});
</script>
]]></add>
</operation>
</file>
<file name="catalog/view/theme/default/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(){
//$('#carregando_cep').show(); essa linha e por que coloquei uma imagem de um gif do lado campo para mostrar quando atualizar...
var cep = $.trim($('input[name="postcode"]').val().replace('-', ''));
$.get('index.php?route=account/register/cepautomatico',{cep: cep},function(endereco){
var obj = $.parseJSON(endereco)// passei para json entao aqui faz o parse e cria o objeto (obj)
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){
$('input[name="address_1"]').val(endereco); // preenche o campo endereco 1 com o endereco
$('input[name="city"]').val(cidade); // preenche o campo cidade
$('input[name="address_2"]').val(bairro); // preenche o campo emdereco 2 com o bairro
$('select[name="zone_id"]').val(uf); //preenche o estado com o ID zone (estado)
}
});
//$('#carregando_cep').hide(); esconder a imagem de loading
});
});
</script>
]]></add>
</operation>
</file>
<file name="catalog/view/theme/default/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(){
//$('#carregando_cep').show(); essa linha e por que coloquei uma imagem de um gif do lado campo para mostrar quando atualizar...
var cep = $.trim($('input[name="postcode"]').val().replace('-', ''));
$.get('index.php?route=account/register/cepautomatico',{cep: cep},function(endereco){
var obj = $.parseJSON(endereco)// passei para json entao aqui faz o parse e cria o objeto (obj)
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){
$('input[name="address_1"]').val(endereco); // preenche o campo endereco 1 com o endereco
$('input[name="city"]').val(cidade); // preenche o campo cidade
$('input[name="address_2"]').val(bairro); // preenche o campo emdereco 2 com o bairro
$('select[name="zone_id"]').val(uf); //preenche o estado com o ID zone (estado)
}
});
//$('#carregando_cep').hide(); esconder a imagem de loading
});
});
</script>
]]></add>
</operation>
</file>
<file name="catalog/view/theme/default/template/checkout/address.tpl">
<operation>
<search position="before" ><![CDATA[<script type="text/javascript">]]></search>
<add><![CDATA[
<script type="text/javascript">
$(function(){
$('input[name="postcode"]').blur(function(){
//$('#carregando_cep').show(); essa linha e por que coloquei uma imagem de um gif do lado campo para mostrar quando atualizar...
var cep = $.trim($('input[name="postcode"]').val().replace('-', ''));
$.get('index.php?route=account/register/cepautomatico',{cep: cep},function(endereco){
var obj = $.parseJSON(endereco)// passei para json entao aqui faz o parse e cria o objeto (obj)
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){
$('input[name="address_1"]').val(endereco); // preenche o campo endereco 1 com o endereco
$('input[name="city"]').val(cidade); // preenche o campo cidade
$('input[name="address_2"]').val(bairro); // preenche o campo emdereco 2 com o bairro
$('select[name="zone_id"]').val(uf); //preenche o estado com o ID zone (estado)
}
});
//$('#carregando_cep').hide(); esconder a imagem de loading
});
});
</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>
radicalroller2 escreveu:Como colocar no check-out no Conta & Endereço para Cobrança, onde a pessoa se cadastra por lá? Open Cart versão - 1.5.1.3