Viewing 15 replies - 1 through 15 (of 20 total)
  • Alguma Solu??o?

    Também precisamos de uma solu??o. Encontramos isso para enviar aos clientes por enquanto

    https://www.linkcorreios.com.br/XXXXXXX

    Plugin Author Claudio Sanches

    (@claudiosanches)

    Legal isso.

    Vou deixar aqui como resolvi.
    O rastreamento interno via webservice está funcionando normalmente. Quando você ativa a tabela de rastreamento, o plugin passa a adotar o link do pedido para mostrar o rastreamento. Ponto 1 resolvido.

    O link externo que aparece na página do pedido, onde o cliente pode checar o rastreamento no site dos correios pode ser resolvido da seguinte maneira:

    Alterar o código que gera os links nos arquivos:
    tracking-codes.php
    tracking-history-table.php

    <form method="POST" target="_blank" action="https://www2.correios.com.br/sistemas/rastreamento/resultado_semcontent.cfm" class="shipment-details-service__correios">
                            <input type="hidden" name="Objetos" value="<?php echo esc_attr( $code ); ?>">
                            <input class="shipment-details-service__correios-action" type="submit" value="<?php echo esc_attr( $code ); ?>">
                        </form>

    Trocar o a por??o do código que gera o link via , por este snippet acima.
    Desta forma você inclui um bot?o que gera um POST para o servidor dos correios.
    Cada um pode estilizar o bot?o com CSS.

    A única coisa que n?o consegui fazer, foi colocar uma forma na paginado admin do pedido para checar o rastreamento, pois todo a pagina do editar pedido é um FORM. Pode haver alguma outra forma….

    Desculpem n?o propor isto no github, nem taopouco sei se isto é uma boa pratica, se alguem tiver mais experiencia pode criar um PR lá. Isso é um come?o.

    Plugin Author Claudio Sanches

    (@claudiosanches)

    @adborges tranquilo colocar isso aqui, de boa que n?o esta enviando no GitHub.

    Eu tinha visto isso, agora a URL aceita apenas POST, ent?o n?o vai mais ter como gerar uma URL.
    Isso vai for?ar atualizar várias coisas no plugin, até mesmo em e-mail, ou mandar ir pra página do cliente ou colocar apenas o código de dar o link dos Correios para o cliente copiar e colar lá.

    @claudiosanches
    Deixa eu aproveitar pra te alertar de algo.
    Quando voce coloca múltiplos códigos de rastreamento, está ocorrendo um problema nas tabelas do my-account.

    Eu vi no código que tem uma lógica pra tratar o cenario de quando o objeto deles vem com UMA ou MAIS partes no array.

    Mas tem UM cenário que rola uma falha.
    Quando voce tem mais de um código de rastreamento e o PRIMEIRO da lista só tem um objeto de movimentacao (por exemplo: Pacote postado), os outros codigos de rastreamento do foreach vem em branco.

    tentei resolver a logica, mas sou bem limitado em programa??o… n?o consegui ??

    Quando puder, da uma olhada. Valeu

    Plugin Author Claudio Sanches

    (@claudiosanches)

    Vai precisar me emprestar esses códigos, talvez tenho que mudar a forma de tratar isso, já que os Correios n?o tem um padr?o para tratar isso.

    @claudiosanches

    A unica forma de ocorrer o erro é quando um codigo que tem somente UMA movimentacao esta colocado junto de outros que tenham mais de uma.

    Quando esse codigo está sozinho, tudo ok
    quando os outros estao sozinhos tb tudo ok

    PL654047926BR – Este AINDA tem um movimento só (postei hoje, amanha ou mais tarde deve mudar já) Se nao conseguir mexer nisso hoje, depois vamos ter que arrumar outro codigo fresco entao hehehe.
    PN922320686BR – Este tem mais movimentacoes
    PN901186751BR – Este tem mais movimentacoes

    Se precisar de ajuda pra testes me avisa….
    abs

    @claudiosanches
    Comecei a dar uma fu?ada aqui, meter uns print_r pra ver o que vinha na parte q tava errada. Ai vi que voce pra arrumar outros cenarios “tirava” o status de array dos caras q teoricamente so tinham 1 movimentacao.

    depois de muita tentativa e erro, coloquei uma condicional no ultimo foreach antes de chamar a template pra recolocar o array antes de mandar pra views q faz o foreach no front. Acho que foi!!!

    if ( is_object( $object->evento ) ) {
    $object->evento = array( $object->evento );}

    Vou deixar o seu comment pra vc localizar facil ai:

    class-wc-correios-tracking-history.php

    // Display the right template for show the tracking code or tracking history.
    		if ( ! empty( $objects ) ) {
    			foreach ( $objects as $object ) {
    
    				if ( is_object( $object->evento ) ) {
    			    	$object->evento = array( $object->evento );}
    				
    				wc_get_template(
    					'myaccount/tracking-history-table.php',
    					array(
    						'events' => (array) $object->evento,
    						'code'   => (string) $object->numero,
    					),
    					'',
    					WC_Correios::get_templates_path()
    				);
    			}
    		} else {
    			wc_get_template(
    				'myaccount/tracking-codes.php',
    				array(
    					'codes' => $tracking_codes,
    				),
    				'',
    				WC_Correios::get_templates_path()
    			);
    		}

    Agora precisa ver se outras coisas v?o c**gar hehehe
    Acredito que até tenha outra forma de tratar isso sem verificar no foreach… talvez fazer uma condi??o lá em cima onde vc gera o $objects… mas isso nao consegui…
    Desculpe novamente utilizar aqui pra mandar codigo… sei que é chato, mas nao sei direito usar o versionamento hehe

    • This reply was modified 7 years, 6 months ago by adborges.
    • This reply was modified 7 years, 6 months ago by adborges.

    desculpe, mas faltou uma altera??o:
    no mesmo arquivo do post acima…
    na segunda condicional, onde vc checa se evento é objeto, tem que remover a key [0]

    // Handle multiple objects.
    				if ( is_array( $response->return->objeto ) ) {
    					$objects = (array) $response->return->objeto;
    
    					// Fix when return only last event for each object.
    					if ( is_object( $objects->evento ) ) {
    						$new_objects = array();
    						foreach ( $objects as $key => $object ) {
    							$new_objects[ $key ] = $object;
    							$new_objects[ $key ]->evento = array( $new_objects[ $key ]->evento );
    						}
    						$objects = $new_objects;
    					}
    Plugin Author Claudio Sanches

    (@claudiosanches)

    Boa que rastreamento n?o esta funcionando nem no site dos Correios hoje.

    Plugin Author Claudio Sanches

    (@claudiosanches)

    Acabei de corrigir isso na vers?o 3.3.0.

    @adborges infelizmente n?o consegui tempo ontem para testar daquele código, se poder mostrar outro pra mim eu agrade?o, assim posso testar e atualizar isso também que você reportou.

    @claudiosanches

    infelizmente nao tenho mais nenhum codigo de coisas recem postadas ??
    mas o que podemos fazer é simular o restorno numa variavel né?
    eu tenho aqui no meu log, os arrays … se acha q da pra fazer assim me avisa que te envio

    Plugin Author Claudio Sanches

    (@claudiosanches)

    @adborges seria melhor testar com o resultado que volta, ainda mais da forma que é instável.
    Mas agora que sei disso vou ficar de olho e tentar ver um código novo para usar com isso.

    @claudiosanches beleza… assim que eu tiver algum código, te passo

Viewing 15 replies - 1 through 15 (of 20 total)
  • The topic ‘Atualiza??o do Sistema de Rastreamento de Objetos – SRO’ is closed to new replies.