• Olá Claudio,

    Acredito que encontrei um bug na compatibilidade deste plugin com o Woocommerce HPOS.

    Quando ativo o HPOS em conjunto com o plugin do Correios, ocorrem diversos disparos ao webhook de pedido alterado, praticamente de minuto a minuto.

    O único dado que difere no Json de todos estes disparos é o “date_modified”.

    é como se existisse alguma incompatibilidade que faz o pedido ficar sendo regravado indefinidamente e assim disparando o webhook.

    Nos meus testes estou usando apenas o Twenty Three + Woocommerce 8.11 + Correios (testei da atual até a 3.1.5).

    Obrigado

Viewing 5 replies - 1 through 5 (of 5 total)
  • Plugin Author Claudio Sanches

    (@claudiosanches)

    Olá, @hgieg.

    Eu n?o consigo reproduzir esse erro. Pode me informar mais sobre?

    O plugin já é compatível com o HPOS, porém a única coisa que usa isso é o código de rastreamento que é salvo como meta dado do pedido. E só é ativado quando você salva um novo código de rastreamento.

    Ent?o se você adicionar 3 códigos de rastreamento em um pedido, com certeza vai atualizar o pedido 3 vezes.

    Thread Starter hgieg

    (@hgieg)

    Mesmo sem código de rastreamento já é possível observar o erro.

    Com o Woocommerce e este plugin ativados apenas, ambos nas últimas vers?es, basta recarregar a página de um pedido no backend e vc verá que imediatamente aparecem schedule actions de woocommerce_deliver_webhook_async. N?o é necessário salvar o pedido para que isso ocorra.

    Ao desativar o HPOS, imediatamente param de ser criadas estas schedule actions aleatórias e o funcionamento volta a ser de apenas um disparo agendado quando o pedido é gravado.

    Plugin Author Claudio Sanches

    (@claudiosanches)

    @hgieg eu consegui reproduzir isso aqui, mas por algum motivo n?o parece ser o plugin que esta causando isso.
    Tenta editar o arquivo wp-content/plugins/woocommerce-correios/woocommerce-correios.php, nele pode remover tudo que tem depois de defined( 'ABSPATH' ) || exit;, exclui ou só comenta todo o código.

    Com isso o plugin esta apenas carregando o arquivo inicial do plugin e apenas incluindo o cabe?alho do plugin, ent?o n?o existe declara??o de HPOS, n?o existe código manipulando pedidos e nada. Mesmo assim os webhooks s?o disparados ao acessar um pedido e se ficar no pedido toda vez que roda o heartbeat do WordPress o webhook é ativado novamente.

    Ent?o n?o me parece um problema da integra??o da parte desde plugin, me parece mais um bug no WooCommerce, parece que o WooCommerce esta tentando atualizar o pedido que estou abrindo, principalmente tentando para importar ele pra tabela nova ou tentando manter ela sincronia para compatibilidade.

    Plugin Author Claudio Sanches

    (@claudiosanches)

    Alias, se você quer testar isso melhor, você pode usar o hook woocommerce_webhook_process_delivery para testar isso.

    add_action(
    	'woocommerce_webhook_process_delivery',
    	function ( $webhook, $args ) {
    		error_log( print_r( [ $webhook->get_topic(), $args ], true ) );
    	},
    	10,
    	2
    );

    No caso isso vai salvar a informa??o no arquivo de log do WordPress ou PHP, dependendo da sua configura??o. Assim da para ver exatamente quando acontece, em vez de ter que esperar pelo processamento em segundo plano que dispara os webhooks.

    O $webhook->get_topic() vi retornar order.updated e $argso ID do pedido. Assim fica mais simples de ver o que esta acontecendo e quando est?o sendo disparado os webhooks.

    Plugin Author Claudio Sanches

    (@claudiosanches)

    é, acabei de desativar o plugin dos Correios e os webhooks continuam sendo disparados.

Viewing 5 replies - 1 through 5 (of 5 total)
  • The topic ‘HPOS – Webhook de pedido alterado disparando múltiplas vezes’ is closed to new replies.