Como aprovar pedidos automaticamente no WooCommerce
Publicados: 2020-09-25Se você estiver executando uma loja de comércio eletrônico, sabe que o site requer rastreamento e gerenciamento de pedidos. No entanto, isso pode ser um trabalho árduo para o administrador, especialmente se sua loja online tiver tráfego intenso, o que resulta em um grande número de pedidos em um dia.
Além disso, você sabe que um pedido é criado assim que o processo de Checkout é concluído. Um pedido recebe um status de acordo com a localização do pedido na cadeia de pagamento à entrega.
Além disso, os status são definidos ou alterados pelo WooCommerce, pelo Gateway de pagamento e pelo administrador da loja, dependendo de onde o pedido é iniciado.
Após a conclusão do pagamento de um pedido, se o usuário não tiver selecionado a opção Pagamento na entrega. Quando um pedido é concluído, seu status é definido como "Processando" até que o proprietário da loja o altere manualmente para "Concluído". Esta será uma tarefa assustadora para o dono da loja ou o administrador.
Aprovação automática de pedidos WooCommerce
Neste breve tutorial, compartilharei com você um código PHP personalizado que o ajudará a definir automaticamente o status do pedido como Concluído sempre que um pagamento for feito com sucesso. Isso implica que, mesmo que o usuário selecione a opção Pagamento na Entrega, o status do pedido será alterado automaticamente para Concluído.
Além disso, também compartilharei com você uma solução que definirá automaticamente o status do pedido do WooCommerce como Concluído para produtos virtuais. Esses produtos não são tangíveis ou transferíveis.
Isso ocorre porque a assinatura de associação pode não ter um formulário tangível, mas sim uma data de expiração. Se você lida com produtos para download, a opção Pagamento na entrega não deve ser incluída, mas apenas uma condição deve ser adicionada para verificar se todos os produtos do pedido são virtuais.
Agora que você sabe como os status do pedido são definidos, aqui está um guia detalhado sobre como:
- Defina automaticamente o status do pedido do WooCommerce como Concluído com base no método de pagamento.
- Defina automaticamente o status do pedido do WooCommerce como Concluído para produtos virtuais.
a) Etapas para definir automaticamente o status do pedido do WooCommerce como concluído com base no método de pagamento
Aqui estão os passos simples que você precisa seguir:
- Faça login no seu site WordPress e acesse o Dashboard como usuário administrador.
- No menu Dashboard, clique em Appearance Menu > Theme Editor Menu . Quando a página Theme Editor for aberta, procure o arquivo de funções do tema onde adicionaremos a função que definirá automaticamente o status do pedido do woocommerce como concluído com base no método de pagamento.
- Adicione o seguinte código ao arquivo php :
/** Snippet para definir automaticamente o status do pedido do woocommerce como concluído com base na forma de pagamento */ add_action('woocommerce_order_status_changed', 'njengah_auto_complete_by_payment_method'); função njengah_auto_complete_by_payment_method($order_id) { if (! $order_id) { Retorna; } global $produto; $pedido = wc_get_order( $pedido_id); if ($order->data['status'] == 'processing') { $payment_method=$order->get_payment_method(); if ($payment_method!="bacs") { $order->update_status( 'concluído'); } } }
- Para ver o resultado, vá até o Painel do WordPress e clique em WooCommerce > Pedidos . Você verá que o pedido foi definido como Concluído , conforme mostrado abaixo:
Como o código funciona
No código acima, usei o gancho woocommerce_order_status_changed para chamar uma função quando o status de um pedido é alterado. Verifica se o pedido tem o status de Processamento e o altera para Concluído.
Por padrão, o WooCommerce tem quatro métodos de pagamento padrão, que são transferência bancária direta (bacs), pagamentos por cheque (cheque), dinheiro na entrega (cod) e PayPal (PayPal). No entanto, você precisa especificar o método de pagamento para o qual está definindo a condição.
b) Etapas para definir automaticamente o status do pedido do WooCommerce como concluído para produtos virtuais
Aqui estão os passos que você precisa seguir:
- Faça login no seu site WordPress e acesse o Dashboard como usuário administrador.
- No menu Dashboard, clique em Appearance Menu > Theme Editor Menu . Quando a página Theme Editor for aberta, procure o arquivo de funções do tema onde adicionaremos a função que definirá automaticamente o status do pedido do woocommerce como concluído para produtos virtuais.
- Adicione o seguinte código ao arquivo php :
/** Snippet para definir automaticamente o status do pedido do woocommerce como concluído para produtos virtuais */ add_action('woocommerce_order_status_changed', 'njengah_auto_complete_virtual'); função njengah_auto_complete_virtual($order_id) { if (! $order_id) { Retorna; } global $produto; $pedido = wc_get_order( $pedido_id); if ($order->data['status'] == 'processing') { $virtual_order = null; if ( count( $pedido->get_items() ) > 0 ) { foreach( $pedido->get_items() as $item) { if ('line_item' == $item['type']) { $_produto = $pedido->get_product_from_item( $item); if (! $_product->is_virtual()) { // uma vez que encontramos um produto não virtual, sai do loop $virtual_order = false; pausa; } senão { $virtual_order = true; } } } } // se todos forem produtos virtuais, marca como concluído if ( $virtual_order ) { $order->update_status( 'concluído'); } } }
- O resultado será o mesmo do primeiro exemplo, pois o pedido será definido automaticamente como Concluído .
Como o código funciona
No código acima, usei o mesmo gancho para chamar a função njengah_auto_complete_virtual. Depois de verificar se está em status de Processamento, o código passa por cada item do pedido para ver se existe um produto virtual.
O line_item se refere ao produto, e apenas os produtos precisam ser buscados um a um para verificar se são virtuais. Se não houver produto virtual, o status do pedido não será marcado como Concluído.
Conclusão
Neste breve tutorial, compartilhei como você pode definir automaticamente o status do pedido do WooCommerce como Concluído. Eu fiz isso com base no método de pagamento e para produtos virtuais.
No entanto, dependendo dos requisitos que você precisa para sua loja, usando o primeiro snippet de código, você pode adicionar mais condições para marcar o status do pedido como Concluído. Por exemplo, se o pagamento foi feito, você pode marcar o Status do Pedido como Concluído, mesmo para produtos não virtuais, adicionando uma verificação na forma de pagamento depois de verificar se é um produto virtual.
No entanto, por meio desse trecho de código, o status do pedido será definido como Concluído somente se todos os produtos do pedido forem produtos virtuais. Espero que este post tenha fornecido uma solução para aprovar pedidos automaticamente no WooCommerce.
Artigos semelhantes
- Como remover o menu de downloads Minha página de conta WooCommerce
- Como adicionar um campo extra no formulário de checkout do WooCommerce
- Como desativar a opção de envio para outro endereço
- Como obter métodos de pagamento no WooCommerce » Exemplo de código
- Como ocultar o botão Adicionar ao carrinho no WooCommerce
- Como adicionar um método de envio personalizado no WooCommerce
- Ocultar ou remover o campo de quantidade da página do produto WooCommerce
- Como usar os atributos do produto WooCommerce passo a passo [Guia Completo]
- Como exibir produtos WooCommerce por categoria
- Como ocultar o campo de código de cupom WooCommerce
- Como colocar o carrinho e o checkout do WooCommerce em uma página
- Como renomear mensagens de status de pedidos no WooCommerce
- Como adicionar a página de checkout do WooCommerce da imagem do produto
- Como fazer comentários de pedidos do WooCommerce obrigatórios
- Como adicionar categorias aos produtos WooCommerce
- Como ocultar todos os produtos da página da loja no WooCommerce
- Como desativar o método de pagamento para uma categoria específica