• Boa tarde, estou com problema no calculo em alguns ceps( geralmente de fora do meu estado não funcionam, mas tem alguns no estado do lado que funcionam) alguns exemplos que funcionam: 95590000, 88980000, 95560000 entre outros da proximidade.
    Ocorreu recentemente, não ocorria antes.
    Observando o console, a requisição é feita e recebe os valores, porem ele não exibe ao cliente ( apenas define o undefined )

    O plugin está na sua ultima versão, assim como o plugin do correios, woocormerce etc.

    **sei que existe um tópico sobre o assunto, porém o autor não responde a mais de uma semana, então criei um novo, espero que não tenha problema quanto a isso..**

    The page I need help with: [log in to see the link]

Viewing 9 replies - 1 through 9 (of 9 total)
  • Plugin Author lucasbustamante

    (@lucasbustamante)

    Amigo, estranho, edite o seguinte arquivo javascript do plugin:

    wp-content/plugins/woo-correios-calculo-de-frete-na-pagina-do-produto/assets/js/woocommerce-correios-calculo-de-frete-na-pagina-do-produto-public.js

    Na linha 130, substitua por isso e poste o resultado:

    // Outros métodos de envio
    if (result.shipping_methods) {
        $(result.shipping_methods).each(function(i, v) {
            console.log(i);
            console.log(v);
            row += '<tr>\
                        <td>'+v.Nome+'</td>\
                        <td>R$ '+v.Valor+'</td>\
                        <td>Em até '+v.PrazoEntrega+' dias</td>\
                    </tr>';
        });
    }
    Thread Starter diogofraga132

    (@diogofraga132)

    Bom dia, desculpe a demora, segue print do console:https://prnt.sc/jmgf3m
    alguns lugares ele retorna o undefined, e outros ele não retorna nada na tabela, ficando vazio, e no console alega que não há nada configurado pra a área de entrega, porém todos os estados do país tem suas áreas de entrega com 3 tipos de envio, então deveria funcionar, funcionava na verdade, parou no inicio da semana sem motivo algum..

    Plugin Author lucasbustamante

    (@lucasbustamante)

    O condicionante do CEP nas áreas de entrega do WooCommerce é feito via select de Estado?

    Thread Starter diogofraga132

    (@diogofraga132)

    isso, eu criei as areas por região, segue como está configurado: https://prnt.sc/jmljaq

    @edit

    não acredito que o problema seja as áreas,por que:
    1- estava funcionando normal e parou do nada, acredito que não funcionaria desde o inicio, considerando que não havia realizado nenhuma atualização;
    2- Por que alguns ceps dentro da mesma área funcionam, e outros não.

    • This reply was modified 6 years, 12 months ago by diogofraga132.
    Plugin Author lucasbustamante

    (@lucasbustamante)

    A lógica de verificar se um CEP pertence à um estado é a seguinte, ele pega os 5 primeiros dígitos do estado e faz essa verificação:

    
        case ('AC'):
            if ($cep > 69900 && $cep < 69999)
                return true;
            break;
        case ('AL'):
            if ($cep > 57000 && $cep < 57999)
                return true;
            break;
        case ('AP'):
            if ($cep > 68900 && $cep < 68999)
                return true;
            break;
        case ('AM'):
            if ($cep > 69400 && $cep < 69899)
                return true;
            break;
        case ('BA'):
            if ($cep > 40000 && $cep < 48999)
                return true;
            break;
        case ('CE'):
            if ($cep > 60000 && $cep < 63999)
                return true;
            break;
        case ('CE'):
            if ($cep > 60000 && $cep < 63999)
                return true;
            break;
        case ('DF'):
            if ($cep > 70000 && $cep < 73699)
                return true;
            break;
        case ('ES'):
            if ($cep > 29000 && $cep < 29999)
                return true;
            break;
        case ('GO'):
            if ($cep > 72800 && $cep < 76799)
                return true;
            break;
        case ('MA'):
            if ($cep > 65000 && $cep < 65999)
                return true;
            break;
        case ('MT'):
            if ($cep > 78000 && $cep < 78899)
                return true;
            break;
        case ('MS'):
            if ($cep > 79000 && $cep < 79999)
                return true;
            break;
        case ('MG'):
            $debug[] = 'MG';
            if ($cep > 30000 && $cep < 39999)
                return true;
            break;
        case ('PA'):
            if ($cep > 66000 && $cep < 68899)
                return true;
            break;
        case ('PB'):
            if ($cep > 58000 && $cep < 58999)
                return true;
            break;
        case ('PR'):
            if ($cep > 80000 && $cep < 87999)
                return true;
            break;
        case ('PE'):
            if ($cep > 50000 && $cep < 56999)
                return true;
            break;
        case ('PI'):
            if ($cep > 64000 && $cep < 64999)
                return true;
            break;
        case ('RJ'):
            if ($cep > 20000 && $cep < 28999)
                return true;
            break;
        case ('RN'):
            if ($cep > 59000 && $cep < 59999)
                return true;
            break;
        case ('RS'):
            if ($cep > 90000 && $cep < 99999)
                return true;
            break;
        case ('RO'):
            if ($cep > 78900 && $cep < 78999)
                return true;
            break;
        case ('RR'):
            if ($cep > 69300 && $cep < 69389)
                return true;
            break;
        case ('SC'):
            if ($cep > 88000 && $cep < 89999)
                return true;
            break;
        case ('SP'):
            if ($cep > 01000 && $cep < 19999)
                return true;
            break;
        case ('SE'):
            if ($cep > 49000 && $cep < 49999)
                return true;
            break;
        case ('TO'):
            if ($cep > 77000 && $cep < 77995)
                return true;
            break;

    Veja aí se tem alguma coisa errada com essa tabela de acordo com a sua experiência, e me fale.

    Thread Starter diogofraga132

    (@diogofraga132)

    teste com cep de SP capital:
    https://prnt.sc/jnk3cd
    teste com cep do Rio Branco – Acre:
    http://prntscr.com/jnk3n7

    Oque não entendo é que no caso do Acre ele retorna que não existe forma de entrega( sendo que tem … igual a todas as outras regiões), assim exibe a mensagem para calculo no carrinho( foi adicionado na ultima atualização, confere?)
    Porém no caso de SP, ele retorna o array com os valores, mas printa undefined por algum motivo
    Mesmo eu estando no estado do RS algumas cidades não funcionam, por exemplo, Porto Alegre não funciona, já Tramandaí que fica a 1:30 de lá funciona.. não faz muito sentido kkk

    Sobre a sua validação, creio que está correta, apenas colocaria como >= na validação, pois os 5 primeiros digitos 90000 já é do RS, dificilmente vão utilizar algum cep redondo assim, mas já deveria entrar…

    Plugin Author lucasbustamante

    (@lucasbustamante)

    @diogofraga132 o seu CEP do Acre está bugado mesmo, deveria ser >= como você disse, por isso o do Acre não está funcionando… Vou arrumar isso numa próxima versão.

    Agora, o de SP está retornando a seguinte mensagem: “”O CEP de destino está temporariamente sem entrega domiciliar. A entrega será efetuada na agência indicada no Aviso de Chegada que será entregue no endereço do destinatário.”

    Vou ver se adiciono essas informações de DEBUG no plugin numa próxima versão.

    Olá Lucas. Estou com um problema semelhante. Defini 2 regiões de entrega e quando coloco os ceps de uma das regiões, retorna o erro undefined na forma, custo estimado e entrega estimada.

    Woocommerce 3.4.5. Inspecionando o elemento pelo Chrome, ele até printa as informações:
    2:{Codigo: “04510”, Valor: “22,41”, PrazoEntrega: “12”, ValorSemAdicionais: “21,20”, ValorMaoPropria: “0,00”, …}
    3:{Codigo: “04014”, Valor: “35,31”, PrazoEntrega: “2”, ValorSemAdicionais: “34,10”, ValorMaoPropria: “0,00”, …}

    Pode me ajudar?

    Boa tarde! Primeiramente, parabéns pelo plugin. Ficou muito bom. 🙂

    Este erro eu também passei.
    O problema era que tinha um frete grátis e produtos variáveis (não sei o que disso é que causou o problema), mas o problema era que o indice do json começava com “2”, como @yendokaai colocou.
    Outro problema que tinha era que o vinha o PAC e SEDEX duplicado. Resolvi os dois problemas assim:
    No arquivo “Woocommerce_Correios_Calculo_De_Frete_Na_Pagina_Do_Produto.php”, na função “calcula_frete()”, coloquei assim:

     public function calcula_frete() {
            $output = array();
    
            $output['retirar_no_local'] = $this->metodos_de_entrega['retirar_no_local'];
            $output['frete_gratis'] = $this->metodos_de_entrega['frete_gratis'];
    
    		$contador = 0;
    		$arr_metodo = array();
            // Pega os valores propriamente dito
            foreach ($this->metodos_de_entrega['shipping_methods'] as $metodo_de_entrega) {
                if ($metodo_de_entrega['cep_destinatario_permitido'] && (!in_array($metodo_de_entrega,$arr_metodo))) {
                    $output['shipping_methods'][$contador] = (array) $this->get_valor_frete_wc_correios($metodo_de_entrega);
                    $output['shipping_methods'][$contador] = $this->verifica_retorno_wc_correios($output['shipping_methods'][$contador]);
                    $output['shipping_methods'][$contador]['Nome'] = $metodo_de_entrega['title'];
    				
    				$arr_metodo[] = $metodo_de_entrega;
    				++$contador;
                }
            }
    
            if (empty($output['shipping_methods']) && $output['retirar_no_local'] == false) {
                $output['status']['erro'] = 'Desculpe, não existem métodos de entrega disponiveis para esta região.';
            }
    
            $this->retornar_json($output);
        }

    Coloquei um contador para definir o índice do array e também criei um array para armazenar as opções de frete que já estavam no array final dos frete.
    Pra mim funcionou 100%. 🙂
    Forte abraço

Viewing 9 replies - 1 through 9 (of 9 total)
  • The topic ‘tabela com valores undefined’ is closed to new replies.