Visualizando 15 respostas - 1 até 15 (de um total de 15)
  • Olá. Não existe mudança de status “automática” por assim dizer. Os status são alterados conforme uma ação é feita no WooCommerce. No caso do seu link, ele muda para “completado” quando acessa a página de “obrigado por comprar”.

    Você quer mudar para “em separação” quando acontecer qual ação?
    Esse status já existe na sua loja?

    Criador do tópico samirantonio

    (@samirantonio)

    Tenho 2 status personalizados
    Pdv Integrado e Em Separação…

    Funciona assim:

    Cliente compra e paga…
    Pedido pendente -> processando

    Aí o meu ERP baixa esse pedido automaticamente e muda para o status PDV INTEGRADO

    Queria que assim que fica-se esse status, ele muda-se para o status EM SEPARAÇÃO

    Criador do tópico samirantonio

    (@samirantonio)

    Por a caso seria isso aqui?

    function custom_woocommerce_auto_complete_order( $order_id ) {
    if ( ! $order_id ) {
    return;
    }

    $order = wc_get_order( $order_id );
    if( ‘pdv_integrado’== $order->get_status() ) {
    $order->update_status( ‘em_separação’ );
    }
    }
    add_action( ‘woocommerce_thankyou’, ‘custom_woocommerce_auto_complete_order’ );

    Esse hook que você está usando não tem relação com mudança de status.
    “add_action( ‘woocommerce_thankyou’” é acionado quando a página “thankyou”, ou seja, a de “Obrigado por comprar conosco”, é exibida. Esqueça esse código. rs

    Talvez esse abaixo funcione:

    function custom_woocommerce_auto_complete_order( $order_id, $from ) {
    	if ( ! $order_id ) {
    		return;
    	}
    
    	$order = wc_get_order( $order_id );
    	if( 'pdv_integrado' == $from ) {
    		$order->update_status( 'em_separação' );
    	}
    }
    add_action( 'woocommerce_order_status_changed', 'custom_woocommerce_auto_complete_order', 10, 2 );
    

    Tem que ver certinho como é o slug do status. Parece que “em_separação” é só um exemplo?!

    Criador do tópico samirantonio

    (@samirantonio)

    Não é um exemplo não, é o que eu uso…

    E não consigo mudar o status que o meu sistema ERP faz.

    Então pode usar assim, mesmo.

    Criador do tópico samirantonio

    (@samirantonio)

    Não funcionou… só corrigi em relação ao que eu havia informado antes, o slug é -emseparação’ mudei no código que vc me enviou… mas não alterou o status…

    Coloquei o snippet para rodar no site todo e somente no admin..

    Criador do tópico samirantonio

    (@samirantonio)

    Percebi uma coisa com esse seu código, que quando mudo o status para cancelado do pedido teste, aí sim que ele muda para em separação, aqui no link tem o print das informações do pedido.

    https://uploaddeimagens.com.br/imagens/eob-N58

    Desculpe. Eu errei os argumentos da função:

    function custom_woocommerce_auto_complete_order( $order_id, $from, $to ) {
    	if ( ! $order_id ) {
    		return;
    	}
    
    	$order = wc_get_order( $order_id );
    	if( 'pdv_integrado' == $to ) {
    		$order->update_status( 'em_separação' );
    	}
    }
    add_action( 'woocommerce_order_status_changed', 'custom_woocommerce_auto_complete_order', 10, 3 );
    • Esta resposta foi modificada 2 anos, 1 mês atrás por Luis Braschi.
    Criador do tópico samirantonio

    (@samirantonio)

    Agora vai de PDV integrado para pagamento pendente rs

    Esse eu testei aqui e deveria funcionar. Você corrigiu o slug? Eu acabei copiando como em_separação.

    Criador do tópico samirantonio

    (@samirantonio)

    Corrigi sim… será que é por todos os status que tem aqui?

    • Esta resposta foi modificada 2 anos, 1 mês atrás por samirantonio.
    Criador do tópico samirantonio

    (@samirantonio)

    Quero agradecer muito…

    Consegui aqui com o seu código… o que estava dando erro, era apenas um ponto que não havia visto no slug.. o que funcionou, foi o segundo código….

    Que bom que deu certo.

Visualizando 15 respostas - 1 até 15 (de um total de 15)
  • O tópico ‘Mudar status de processando para separação’ está fechado para novas respostas.