WooCommerce – adicionar novo status de pedido

Atualização em 23 de novembro de 2018:: o plugin da YITH citado abaixo foi descontinuado em 11 de outubro de 2018. Por favor, em vez disso, utilize este plugin: Custom Order Status For WooCommerce. É grátis :)


Atualização em 26 de abril de 2018: o jeito mais fácil para fazer isso é utilizando o plugin gratuito YITH WooCommerce Custom Order Status.

Por padrão, o WooCommerce conta com sete status para os pedidos: Pagamento Pendente, Processando, Aguardando, Concluído, Cancelado, Reembolsado e Falhado.

Algumas vezes surge a necessidade algum status extra. No exemplo abaixo, precisei criar o status “envio parcial”, para compras onde a entrega é feita por diferentes transportadoras. Após enviar a primeira remessa, seleciono o status parcial. Após isso, o pedido é “Concluído”.

Existem alguns plugins que automatizam esse processo e ainda oferecem algumas opções extras, como adicionar e-mails personalizados. No entanto, se você precisa apenas um status personalizado, esta solução é bastante útil.

[CÓDIGO REMOVIDO POR ESTAR DESATUALIZADO]

Entendendo o código

Basicamente o código se divide em dois: as duas primeiras funções são para criar o status especificamente. Altere os textos “Envio Parcial”, para o nome que será exibido na tela e “wc-parcial” para o slug do status personalizado. Mantenha o prefixo wc- e altere apenas a segunda parte.

Depois, após a linha 30 é onde definimos uma personalização extra: o ícone do status na tela de pedidos. Repare que a classe “parcial” deve ser alterada conforme você definiu no slug acima.

Cole isso no functions do seu tema e está pronto!

18 comentários em “WooCommerce – adicionar novo status de pedido”

  1. Fernando,

    tentei criar o status “Pagamento Confirmado”, apliquei o código no functions.php, tudo corretamente. Inclusive testei alguns códigos de outros sites também. Mas nos dois casos ocorreu o seguinte:

    Apareceu o status “Pagamento Confirmado” no dropdown list onde seleciona o status desejado, mas quando eu seleciono o status em questão e atualizo o pedido, ele volta para o status anterior, não ficando aplicado o status “Pagamento Confirmado”.

    Estranho que no Notas do Pedido ele aparece como se tivesse sido alterado: “Status do pedido alterado de Aguardando para Pagamento Confirmado.”.

    Você teria alguma idéia do que possa estar acontecendo?

    Obrigado e parabéns pelo blog, um dos poucos nacionais sobre o assunto!

    1. Acabei descobrindo o que estava acarretando no problema.

      Eu estava substituindo o slug “wc-parcial” para “wc-pagamento-confirmado”, mas esse slug pode ter no máximo 20 caracteres. Alterei para “wc-pagamento-conf” e funcionou corretamente.

      1. Fernando Fresinghelli

        Olá, Fábio.

        Que bom que resolveu. Obrigado por compartilhar a solução, eu também não sabia dessa limitação.

        Espero que ajude outras pessoas.
        Abraço

  2. Isso é exatamente o que eu estava procurando, mas como não sou muito entendido do assunto, poderia me dizer onde devo adicionar esse código que você criou?
    Obrigado e parabéns!

    1. Fernando Fresinghelli

      Rafael,
      você deve inserir esse código dentro do functions.php do seu tema. Basta abri-lo para editar e colar o código bem no final do arquivo. Se no final do seu arquivo tiver ?> você só precisa colar o código depois disso. Se não tiver, você deve excluir a primeira linha desse código que você vai colar.

      1. Fiz aqui e funcionou!
        Só mais uma dúvida, percebi que esta nova categoria não aparece na listagem das “Ações em massa” pra que eu posso mudar vários pedidos ao mesmo tempo. Sabe me dizer como eu faço para que ela apareça ali?
        De qualquer forma, muito obrigado, já ajudou bastante!

  3. Brother, coloquei esse código e tal, não alterei nada. quando eu coloco um pedido nesse situação envio parcial, o pedido SOME. Não acho ele nas buscas, nada, sumiu dois pedidos, como se tivesse sido excluido, mas nem na lixeira está.

  4. Olá Fernando, gostaria de saber se tem como colocar um status entre processando e concluído??

    O que preciso é o seguinte, eu recebo os pedidos da loja e fica processando, mas só que eu faço o pedido ao fornecedor para enviar, pois eu não fico com o estoque, e gostaria de ter um status tipo Pedido feito por exemplo para não misturar com os processando, e quando o fornecedor enviasse os produtos, ai sim eu colocaria em concluído…

    Hoje eu faço o seguinte, quando ficam em processando, eu efetuo o pedido ao fornecedor e já marco como concluído para não misturar e não me perder, mas tenho que toda vez que ficar entrando em pedido por pedido concluído para pegar o código de rastreio e isso demora.

    Obrigado

  5. Oi Fernando, tudo bom? o plugin que você indica no post foi encerrado em 11 de outubro de 2018 e não está disponível para download.
    E o código que havia no post, foi retirado. :(
    Por favor me ajude a conseguir colocar um novo Status de pedido.
    Grata

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *