Por um e-commerce livre, confiável e profissional
Nyux escreveu:Pessoal, minha loja é v.1.5.4.1 mas no meu nao esta funcionando, alguem testou nessa versao e q esteja funcionando?Sua loja usa SSL?
Nyux escreveu:legal, vc pode colar aqui as partes do seu cod aqui pra eu comparar com o meu?Eu tenho um VQmod aqui que funciona da mesma forma pra pegar o código agora vai ficar complicado, acho até melhor o VQmod mesmo não usando no momento kkk mais vou desfazer e usar esse só que vou ter que modificar para usar com em uma loja com SSL.
vlw
<?xml version="1.0" encoding="UTF-8"?>
<modification>
<id>Auto Completar Endereço</id>
<version>1.0</version>
<vqmver>2.2.1</vqmver>
<author>Deives Fahl - dfahl.cps@gmail.com</author>
<file name="catalog/model/localisation/zone.php">
<operation>
<search position="before" index="1"><![CDATA[public function getZone($zone_id) {]]></search>
<add><![CDATA[
public function getZonesByEstado($estado) {
if(strlen($estado) <= 2){
$query = $this->db->query("SELECT zone_id FROM " . DB_PREFIX . "zone WHERE country_id = '30' AND code = '".$estado."' AND status = '1' ORDER BY name");
$zone_id = $query->row['zone_id'];
}else{
$zone_id = '';
}
return $zone_id;
}
]]></add>
</operation>
</file>
<file name="catalog/controller/account/register.php">
<operation>
<search position="before" index="1"><![CDATA[public function country() {]]></search>
<add><![CDATA[
public function estado_autocompletar() {
$this->load->model('localisation/zone');
$code = $this->model_localisation_zone->getZonesByEstado($this->request->get['estado']);
if ($code != '') {
$output = $code;
}else{
$output = '';
}
$this->response->setOutput($output);
}
]]></add>
</operation>
</file>
<file name="catalog/view/theme/*/template/account/register.tpl">
<operation>
<search position="after" index="1"><![CDATA[<?php echo $header; ?>]]></search>
<add><![CDATA[
<script type="text/javascript">
$(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(){
if(resultadoCEP["resultado"] == "1"){
$('input[name="address_1"]').val(unescape(resultadoCEP["tipo_logradouro"])+" "+unescape(resultadoCEP["logradouro"]));
$('input[name="address_2"]').val(unescape(resultadoCEP["bairro"]));
$('input[name="city"]').val(unescape(resultadoCEP["cidade"]));
$('select[name="country_id"]').find('option[value="30"]').attr('selected', true);
$.post('index.php?route=account/register/estado_autocompletar&estado=' + unescape(resultadoCEP['uf']), function(zone_id){
$.ajax({
url: 'index.php?route=account/register/country&country_id=30',
dataType: 'json',
beforeSend: function() {
$('select[name=\'country_id\']').after('<span class="wait"> <img src="catalog/view/theme/default/image/loading.gif" alt="" /></span>');
},
complete: function() {
$('.wait').remove();
},
success: function(json) {
if (json['postcode_required'] == '1') {
$('#postcode-required').show();
} else {
$('#postcode-required').hide();
}
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);
}
});
});
}
});
});
});
</script>
]]></add>
</operation>
</file>
<file name="catalog/view/theme/*/template/account/address_form.tpl">
<operation>
<search position="after" index="1"><![CDATA[<div id="content">]]></search>
<add><![CDATA[
<script type="text/javascript">
$(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(){
if(resultadoCEP["resultado"] == "1"){
$('input[name="address_1"]').val(unescape(resultadoCEP["tipo_logradouro"])+" "+unescape(resultadoCEP["logradouro"]));
$('input[name="address_2"]').val(unescape(resultadoCEP["bairro"]));
$('input[name="city"]').val(unescape(resultadoCEP["cidade"]));
$('select[name="country_id"]').find('option[value="30"]').attr('selected', true);
$.post('index.php?route=account/register/estado_autocompletar&estado=' + unescape(resultadoCEP['uf']), function(zone_id){
$.ajax({
url: 'index.php?route=account/register/country&country_id=30',
dataType: 'json',
beforeSend: function() {
$('select[name=\'country_id\']').after('<span class="wait"> <img src="catalog/view/theme/default/image/loading.gif" alt="" /></span>');
},
complete: function() {
$('.wait').remove();
},
success: function(json) {
if (json['postcode_required'] == '1') {
$('#postcode-required').show();
} else {
$('#postcode-required').hide();
}
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);
}
});
});
}
});
});
});
</script>
]]></add>
</operation>
</file>
<file name="catalog/view/theme/*/template/affiliate/register.tpl">
<operation>
<search position="after" index="1"><![CDATA[<?php echo $header; ?>]]></search>
<add><![CDATA[
<script type="text/javascript">
$(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(){
if(resultadoCEP["resultado"] == "1"){
$('input[name="address_1"]').val(unescape(resultadoCEP["tipo_logradouro"])+" "+unescape(resultadoCEP["logradouro"]));
$('input[name="address_2"]').val(unescape(resultadoCEP["bairro"]));
$('input[name="city"]').val(unescape(resultadoCEP["cidade"]));
$('select[name="country_id"]').find('option[value="30"]').attr('selected', true);
$.post('index.php?route=account/register/estado_autocompletar&estado=' + unescape(resultadoCEP['uf']), function(zone_id){
$.ajax({
url: 'index.php?route=account/register/country&country_id=30',
dataType: 'json',
beforeSend: function() {
$('select[name=\'country_id\']').after('<span class="wait"> <img src="catalog/view/theme/default/image/loading.gif" alt="" /></span>');
},
complete: function() {
$('.wait').remove();
},
success: function(json) {
if (json['postcode_required'] == '1') {
$('#postcode-required').show();
} else {
$('#postcode-required').hide();
}
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);
}
});
});
}
});
});
});
</script>
]]></add>
</operation>
</file>
<file name="catalog/view/theme/*/template/affiliate/edit.tpl">
<operation>
<search position="after" index="1"><![CDATA[<?php echo $header; ?>]]></search>
<add><![CDATA[
<script type="text/javascript">
$(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(){
if(resultadoCEP["resultado"] == "1"){
$('input[name="address_1"]').val(unescape(resultadoCEP["tipo_logradouro"])+" "+unescape(resultadoCEP["logradouro"]));
$('input[name="address_2"]').val(unescape(resultadoCEP["bairro"]));
$('input[name="city"]').val(unescape(resultadoCEP["cidade"]));
$('select[name="country_id"]').find('option[value="30"]').attr('selected', true);
$.post('index.php?route=account/register/estado_autocompletar&estado=' + unescape(resultadoCEP['uf']), function(zone_id){
$.ajax({
url: 'index.php?route=account/register/country&country_id=30',
dataType: 'json',
beforeSend: function() {
$('select[name=\'country_id\']').after('<span class="wait"> <img src="catalog/view/theme/default/image/loading.gif" alt="" /></span>');
},
complete: function() {
$('.wait').remove();
},
success: function(json) {
if (json['postcode_required'] == '1') {
$('#postcode-required').show();
} else {
$('#postcode-required').hide();
}
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);
}
});
});
}
});
});
});
</script>
]]></add>
</operation>
</file>
<file name="catalog/view/theme/*/template/checkout/register.tpl">
<operation>
<search position="top"><![CDATA[]]></search>
<add><![CDATA[
<script type="text/javascript">
$(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(){
if(resultadoCEP["resultado"] == "1"){
$('input[name="address_1"]').val(unescape(resultadoCEP["tipo_logradouro"])+" "+unescape(resultadoCEP["logradouro"]));
$('input[name="address_2"]').val(unescape(resultadoCEP["bairro"]));
$('input[name="city"]').val(unescape(resultadoCEP["cidade"]));
$('select[name="country_id"]').find('option[value="30"]').attr('selected', true);
$.post('index.php?route=account/register/estado_autocompletar&estado=' + unescape(resultadoCEP['uf']), function(zone_id){
$.ajax({
url: 'index.php?route=account/register/country&country_id=30',
dataType: 'json',
beforeSend: function() {
$('select[name=\'country_id\']').after('<span class="wait"> <img src="catalog/view/theme/default/image/loading.gif" alt="" /></span>');
},
complete: function() {
$('.wait').remove();
},
success: function(json) {
if (json['postcode_required'] == '1') {
$('#postcode-required').show();
} else {
$('#postcode-required').hide();
}
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);
}
});
});
}
});
});
});
</script>
]]></add>
</operation>
</file>
<file name="catalog/view/theme/*/template/checkout/guest.tpl">
<operation>
<search position="top"><![CDATA[]]></search>
<add><![CDATA[
<script type="text/javascript">
$(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(){
if(resultadoCEP["resultado"] == "1"){
$('input[name="address_1"]').val(unescape(resultadoCEP["tipo_logradouro"])+" "+unescape(resultadoCEP["logradouro"]));
$('input[name="address_2"]').val(unescape(resultadoCEP["bairro"]));
$('input[name="city"]').val(unescape(resultadoCEP["cidade"]));
$('select[name="country_id"] option[value="30"]').attr('selected', true);
$('select[name="zone_id"]').load('index.php?route=account/register/country&country_id=30', function(){
$.post('index.php?route=account/register/estado_autocompletar&estado=' + unescape(resultadoCEP['uf']), function(zone_id){
$.ajax({
url: 'index.php?route=account/register/country&country_id=30',
dataType: 'json',
beforeSend: function() {
$('select[name=\'country_id\']').after('<span class="wait"> <img src="catalog/view/theme/default/image/loading.gif" alt="" /></span>');
},
complete: function() {
$('.wait').remove();
},
success: function(json) {
if (json['postcode_required'] == '1') {
$('#postcode-required').show();
} else {
$('#postcode-required').hide();
}
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);
}
});
});
});
}
});
});
});
</script>
]]></add>
</operation>
</file>
<file name="catalog/view/theme/*/template/checkout/guest_shipping.tpl">
<operation>
<search position="top"><![CDATA[]]></search>
<add><![CDATA[
<script type="text/javascript">
$(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(){
if(resultadoCEP["resultado"] == "1"){
$('input[name="address_1"]').val(unescape(resultadoCEP["tipo_logradouro"])+" "+unescape(resultadoCEP["logradouro"]));
$('input[name="address_2"]').val(unescape(resultadoCEP["bairro"]));
$('input[name="city"]').val(unescape(resultadoCEP["cidade"]));
$('select[name="country_id"] option[value="30"]').attr('selected', true);
$('select[name="zone_id"]').load('index.php?route=account/register/country&country_id=30', function(){
$.post('index.php?route=account/register/estado_autocompletar&estado=' + unescape(resultadoCEP['uf']), function(zone_id){
$.ajax({
url: 'index.php?route=account/register/country&country_id=30',
dataType: 'json',
beforeSend: function() {
$('select[name=\'country_id\']').after('<span class="wait"> <img src="catalog/view/theme/default/image/loading.gif" alt="" /></span>');
},
complete: function() {
$('.wait').remove();
},
success: function(json) {
if (json['postcode_required'] == '1') {
$('#postcode-required').show();
} else {
$('#postcode-required').hide();
}
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);
}
});
});
});
}
});
});
});
</script>
]]></add>
</operation>
</file>
<file name="catalog/view/theme/*/template/checkout/payment_address.tpl">
<operation>
<search position="top"><![CDATA[]]></search>
<add><![CDATA[
<script type="text/javascript">
$(function(){
$('div#payment-new').find('input[name="postcode"]').blur(function(){
var cep = $.trim($('div#payment-new').find('input[name="postcode"]').val().replace('-', ''));
$.getScript("http://cep.republicavirtual.com.br/web_cep.php?formato=javascript&cep="+cep, function(){
if(resultadoCEP["resultado"] == "1"){
$('div#payment-new').find('input[name="address_1"]').val(unescape(resultadoCEP["tipo_logradouro"])+" "+unescape(resultadoCEP["logradouro"]));
$('div#payment-new').find('input[name="address_2"]').val(unescape(resultadoCEP["bairro"]));
$('div#payment-new').find('input[name="city"]').val(unescape(resultadoCEP["cidade"]));
$('div#payment-new').find('select[name="country_id"] option[value="30"]').attr('selected', true);
$('div#payment-new').find('select[name="zone_id"]').load('index.php?route=account/register/country&country_id=30', function(){
$.post('index.php?route=account/register/estado_autocompletar&estado=' + unescape(resultadoCEP['uf']), function(zone_id){
$.ajax({
url: 'index.php?route=account/register/country&country_id=30',
dataType: 'json',
beforeSend: function() {
$('div#payment-new').find('select[name=\'country_id\']').after('<span class="wait"> <img src="catalog/view/theme/default/image/loading.gif" alt="" /></span>');
},
complete: function() {
$('.wait').remove();
},
success: function(json) {
if (json['postcode_required'] == '1') {
$('div#payment-new').find('#postcode-required').show();
} else {
$('div#payment-new').find('#postcode-required').hide();
}
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>';
}
$('div#payment-new').find('select[name=\'zone_id\']').html(html);
}
});
});
});
}
});
});
});
</script>
]]></add>
</operation>
</file>
<file name="catalog/view/theme/*/template/checkout/shipping_address.tpl">
<operation>
<search position="top"><![CDATA[]]></search>
<add><![CDATA[
<script type="text/javascript">
$(function(){
$('div#shipping-new').find('input[name="postcode"]').blur(function(){
var cep = $.trim($('div#shipping-new').find('input[name="postcode"]').val().replace('-', ''));
$.getScript("http://cep.republicavirtual.com.br/web_cep.php?formato=javascript&cep="+cep, function(){
if(resultadoCEP["resultado"] == "1"){
$('div#shipping-new').find('input[name="address_1"]').val(unescape(resultadoCEP["tipo_logradouro"])+" "+unescape(resultadoCEP["logradouro"]));
$('div#shipping-new').find('input[name="address_2"]').val(unescape(resultadoCEP["bairro"]));
$('div#shipping-new').find('input[name="city"]').val(unescape(resultadoCEP["cidade"]));
$('div#shipping-new').find('select[name="country_id"] option[value="30"]').attr('selected', true);
$('div#shipping-new').find('select[name="zone_id"]').load('index.php?route=account/register/country&country_id=30', function(){
$.post('index.php?route=account/register/estado_autocompletar&estado=' + unescape(resultadoCEP['uf']), function(zone_id){
$.ajax({
url: 'index.php?route=account/register/country&country_id=30',
dataType: 'json',
beforeSend: function() {
$('div#shipping-new').find('select[name=\'country_id\']').after('<span class="wait"> <img src="catalog/view/theme/default/image/loading.gif" alt="" /></span>');
},
complete: function() {
$('.wait').remove();
},
success: function(json) {
if (json['postcode_required'] == '1') {
$('div#shipping-new').find('#postcode-required').show();
} else {
$('div#shipping-new').find('#postcode-required').hide();
}
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>';
}
$('div#shipping-new').find('select[name=\'zone_id\']').html(html);
}
});
});
});
}
});
});
});
</script>
]]></add>
</operation>
</file>
</modification>edemilsongs escreveu:Olá amigos aqui do fórum, primeiramente quero dizer que sou novo por aqui. Recentemente comecei a utilizar o OpenCart, por esse motivo, venho acessando o fórum constantemente para aprender com os tutoriais e as boas dicas.Muito bom esse seu método edemilso, porem estou com um problema eu adqueri este sitema ( http://www.opencart.com/index.php?route ... n_id=15353 ), e após colocar ele esse metodo parou de funcionar será que alguem pode me ajudar ?
Quero parabenizar toda a equipe que administra, mantém e que, de alguma forma, colabora com o excelente conteúdo que nos é disponibilizado aqui no fórum. Portanto, também espero que essa minha primeira colaboração seja útil para alguns usuários.
Procurando uma forma de auto completar o endereço no cadastro de usuários através da digitação do CEP, lembrei de um script que utilizei na criação de alguns sites.
Adaptei esse script à página de cadastro do OpenCart e estou disponibilizando o arquivo pronto para quem quiser utilizar.
Quero esclarecer que a base de dados utilizada nesse script é do site republicavirtual.com.br, que por sinal, já foi muito discutida aqui no fórum, no entanto, percebo que é uma base de dados que é constantemente atualizada e que até o momento não observei falhas.
Então vamos lá que está bem fácil:
1º - A obrigatoriedade de preenchimento do campo CEP deve estar habilitada. Para quem não sabe habilite acessando: Administração > Sistema > Localização > Países > Em Brasil clicar em Editar > Em CEP Obrigatório: marcar Sim e Salvar.
2º - Baixe esse arquivo: http://konosco.com.br/download/register.zip
3º - Descompacte o arquivo. Trata-se do arquivo “register.tpl”
4º - Copie e cole substituindo o arquivo original no diretório padrão que é: catalog/view/theme/default/template/account
Obs. Por segurança faça um backup do arquivo “register.tpl” original.
E esclarecendo que estou usando a versão 1.5.6.1 com o tema padrão.
Veja um exemplo aqui: http://egs.w.pw/cep/index.php?route=account/register
Observem que fiz algumas modificações no layout. Como por exemplo: o campo do CEP coloquei para cima e os campos de textos aumentei a largura. E muitas outras modificações podem ser feitas usando CSS e JavaScript.
É isso aí colegas, espero que seja útil e até mais.