WordPress.org

Ready to get started?Download WordPress

Forums

WooCommerce Extra Checkout Fields for Brazil
[resolved] Auto-complete not working under https (14 posts)

  1. uili
    Member
    Posted 12 months ago #

    My website has ssl, and i get this msg when trying to retrieve the infos from the CEP

    [blocked] The page at https://www.stoza.com.br/minha-conta/editar-endereco/?address=billing ran insecure content from http://www.toolsweb.com.br/webservice/clienteWebService.php?cep=88037040&formato=javascript&_= .....

    Also the mask input is not working too! i guess because im using jquery1.9.1

    http://www.stoza.com.br/

    http://wordpress.org/extend/plugins/woocommerce-extra-checkout-fields-for-brazil/

  2. uili
    Member
    Posted 12 months ago #

    i've updated de jquery.maskedinput.js to the new version and work ok now.. just the autocomplete is not working under ssl!

  3. Claudio Sanches
    Member
    Plugin Author

    Posted 12 months ago #

    Thanks for the warning, I'll look into it tonight.

  4. Claudio Sanches
    Member
    Plugin Author

    Posted 11 months ago #

    I checked here and seems to be working correctly.
    Maybe it's something on your server.

  5. taylorlopes
    Member
    Posted 10 months ago #

    Olá, Claudio.

    Realmente, de baixo de SSL o autocomplete não funciona. Pelo que vi, isto está ocorrendo, pois a chamada Ajax para o site toolsweb.com.br (CEP) está sendo feita em HTTP (e não HTTPS). Os navegadores modernos como Chrome e Firefox estão bloqueando scripts, css, plugins e fontes com este tipo de comportamento. Só não bloqueiam imagens, música e vídeo.

    *** ERRO (Firebug)
    detailed error: Bloqueado carregamento de conteúdo ativo mesclado “http://www.toolsweb.com.br/webservice/clienteWebService.php?cep=70742000&formato=javascript&_=1378943284684”

    *** AVISO MOZILLA
    Non-SSL active content on SSL pages is blocked by default

    Bug 834836 – Turn on pref to block mixed active content
    Firefox 18 introduced preferences to block loading content from non-SSL (http) sites on SSL (https) pages. One of those preferences, security.mixed_content.block_active_content is now enabled by default in order to enhance user security. That means insecure scripts, stylesheets, plug-in contents, <iframe>, XMLHttpRequest, Web fonts (@font-face) and WebSockets are blocked on secure pages, and a notification is displayed instead. It will not block "display content" like images, videos or audio. See Tanvi Vyas' blog post for details.

    FONTE: https://developer.mozilla.org/en-US/docs/Site_Compatibility_for_Firefox_23#Non-SSL_contents_on_SSL_pages_are_blocked_by_default

  6. taylorlopes
    Member
    Posted 10 months ago #

    Mais um detalhe.

    Como o serviço de consulta a CEP não é oferecido em HTTPS pela http://www.toolsweb.com.br, então fica complicado.

    No Site "Stack Overflow" alguns comentários sugerem para omitir o protocolo "http://" e deixar somente o "//" na linha 18 do arquivo "jquery.address.autocomplete.js":

    $.getScript('//www.toolsweb.com.br/webservice/clienteWebService.php?cep='

    Testei isto e não funcionou, justamente por ele provavelmente assumir o protocolo HTTPS da requisição, mas que não existe em toolsweb.com.br.

  7. Claudio Sanches
    Member
    Plugin Author

    Posted 10 months ago #

    Sim ele não oferece https.
    Estou migrado aqui para o https://correiosapi.apphb.com/
    Exatamente, basta ocultar e deixar apenas // que funciona.
    Hoje já sai a versão nova com essa nova api.

  8. Claudio Sanches
    Member
    Plugin Author

    Posted 10 months ago #

    O complicado e se esse cara sair do ar xD
    Pesquisei 15 soluções diferentes e só ele tem ssl.
    Da para fazer interno no WordPress.
    Consultar ajax dentro do WordPress e na função do ajax usar wp_remote_get para consultar qualquer uma dessas apis e retornar o resultado.

    Vantagem que faz a consulta pelo php e usando o WordPress, desta forma da até para cachear os resultados se quiser e também não vai ter problema com ssl.
    Entretanto duplica o tempo de resposta quando for consultar.

  9. taylorlopes
    Member
    Posted 10 months ago #

    Valeuuu, excelente!

  10. taylorlopes
    Member
    Posted 10 months ago #

    Exatamente, acho que uma solução seria fazer a chamada Ajax do "jquery.address.autocomplete.js" para um arquivo PHP dentro do próprio plugin, e dentro desse PHP fazer algo como:

    file_get_contents('http://www.toolsweb.com.br/webservice/clienteWebService.php?cep=70742100&formato=javascript&_=1378943284684')

    Daí acredito que resolveria... o que acha?

  11. Claudio Sanches
    Member
    Plugin Author

    Posted 10 months ago #

    Melhor não é usar file_get_contents() e sim wp_remote_get(), assim não tem risco de parar. Porque alguns servidores bloqueam o file_get_contents ou cURL xD
    Já o wp_remote_get() vai funcionar em praticamente 99% dos lugares.

  12. taylorlopes
    Member
    Posted 10 months ago #

    Ok...

    Aproveitando que vai atualizar o plugin autocomplete, gostaria de sugerir uma alteração que sempre faço depois que atualizo o plugin, já que tudo é sobrescrito.

    Basicamente é fazer o autocomplete ser executado somente se o campo endereço estiver em branco, pois às vezes o cliente ajusta o endereço e o autocomplete desfaz.

    No meu caso, quando o sistema entra na página de Checkout eu já deixo o foco no campo CEP, que só faz o autocomplete se o campo endereço estiver vazio, justamente para não apagar algum ajuste que o cliente tenha feito no endereço.

    O ajuste muitas vezes é necessário, pois a resposta do servidor pode não vir coerente, como acontece com os endereços de Brasília, que no logradouro vem algo como "SQN 113 Bloco X", sendo que 113 é o número (e não o logradouro)

    Mas claro, é só uma sugestão...

    No caso, apenas coloco este código no início da função "addressAutoComplete(field)"

    if ( ($('#' + field + '_address_1').val()).length > 0 )
      return false;

    Falou!

  13. Claudio Sanches
    Member
    Plugin Author

    Posted 10 months ago #

    Agora sim, tudo corrigido na versão 2.6.1.
    Funcionando com HTTPS e também não tenta completar o endereço caso ele esteja já preenchido.

  14. taylorlopes
    Member
    Posted 10 months ago #

    Muito bom, Claudio. Atualizei, testei e está aprovado. Parabéns!

Reply

You must log in to post.

About this Plugin

About this Topic

Tags

No tags yet.