Como ocultar o status do pedido no WooCommerce

Publicados: 2020-11-12

WooCommerce Ocultar Status do Pedido Deseja ocultar os principais status de pedidos em sua loja WooCommerce? Recentemente, um cliente queria que eu ocultasse alguns dos status de pedidos em sua loja WooCommerce. Neste post, você verá como remover facilmente alguns status de pedidos e como criar outros personalizados.

WooCommerce Ocultar Status do Pedido

Por vários motivos, você pode querer ocultar alguns dos principais status do pedido. No entanto, a versão padrão do WooCommerce permite marcar pedidos com um dos seguintes status concluídos, em processamento, pagamento pendente, em espera, reembolsados, cancelados ou com falha.

Muitos plugins permitem que você gerencie o status do pedido, e um deles é o plugin ' WooCommerce Order Status Manager ' que custa $ 49. Gerenciador de status de pedidos WooCommerce

Essa pode ser uma solução cara para sua loja, mas existe uma maneira fácil de fazer isso. Na versão atual do WooCommerce, os status dos pedidos são salvos como um status de postagem personalizado, assim como o rascunho, agendado ou publicado para postagens.

Como ocultar o status do pedido

Com isso dito, vamos ver como você pode ocultar o status do pedido no WooCommerce usando um trecho de código. Para verificar as mensagens de status do pedido padrão, faça login no seu site WordPress e acesse o Dashboard como usuário administrador. Em seguida, clique em WooCommerce > Pedidos . Você verá isso: back-end do status do pedido

Essas mensagens também são exibidas no front-end quando um cliente tenta fazer um pedido. Isso pode ser acessado clicando em Minha conta > Pedidos, conforme mostrado abaixo: front-end de status do pedido

Etapas para ocultar status de pedidos principais

Vale ressaltar que, ao ocultar os status principais do pedido, certifique-se de que não haja produtos com esse status. Além disso, você deve garantir que sua loja WooCommerce não use esse status em nenhum lugar, pois pode levar a erros. Por exemplo, se você não planeja fazer reembolsos em sua loja WooCommerce, pode ocultar o status de reembolso.

A razão pela qual não podemos remover todos os status de pedidos principais é que os plugins usam status de pedidos, mesmo aqueles que você não usa em seu fluxo de trabalho. Plugins como gateways de pagamento, sempre assumem que os principais status do pedido estão presentes. Se eles não estiverem lá, eles vão quebrar

Aqui estão os passos que você precisa seguir:

  1. Faça login no seu site WordPress e acesse o Dashboard como usuário administrador.
  2. 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 para adicionar a função para ocultar os principais status dos pedidos em sua loja WooCommerce.
  3. Adicione o seguinte código ao arquivo functions.php:
 /*

 * Removendo status de pedidos principais

 * @param array $wc_statuses_arr Array de todos os status de pedidos no site

 */

function njengah_remove_order_statuses( $wc_statuses_arr ){

            // Em processamento

            if( isset( $wc_statuses_arr['wc-processing'] ) ) { // se existir

                        unset( $wc_statuses_arr['wc-processing']); //remove do array

            }

            // Devolveu

            if( isset( $wc_statuses_arr['wc-refunded'] ) ){

                        unset( $wc_statuses_arr['wc-refunded']);

            }

            // Em espera

            if( isset( $wc_statuses_arr['wc-on-hold'] ) ){

                        unset( $wc_statuses_arr['wc-on-hold']);

            }

            // Fracassado

            if( isset( $wc_statuses_arr['wc-failed'] ) ){

                        unset( $wc_statuses_arr['wc-failed']);

            }

            // Pagamento Pendente

            if( isset( $wc_statuses_arr['wc-pending'] ) ){

                        unset( $wc_statuses_arr['wc-pending']);

            }

            // Concluído

            //if( isset( $wc_statuses_arr['wc-completed'] ) ){

            // unset( $wc_statuses_arr['wc-completed'] );

            ///}

            // Cancelado

            //if( isset( $wc_statuses_arr['wc-cancelled'] ) ){

            // unset( $wc_statuses_arr['wc-cancelled'] );

            ///}

            return $wc_statuses_arr; // retorna os status do resultado

}

add_filter( 'wc_order_statuses', 'njengah_remove_order_statuses' );
  1. Este é o resultado no front-end: ocultar status de pedidos
  2. Para adicionar um status de pedido personalizado, adicione o seguinte código no arquivo functions.php:
 /**

* Registre novo status com ID "wc-njengah-shipment" e etiqueta "Aguardando envio"

*/

function njengah_register_waiting_shipment_status() {
register_post_status('wc-njengah-shipment', array(

'label' => 'Aguardando envio',

'público' => verdadeiro,

'show_in_admin_status_list' => true, // show count All (12) , Completed (9) , Awaiting shipping (2) ...

'label_count' => _n_noop( 'Aguardando envio <span class="count">(%s)</span>', 'Aguardando envio <span class="count">(%s)</span>' )

));
}

add_action( 'init', 'njengah_register_awaiting_shipment_status' );

/*

* Adicionar status registrado à lista de status de pedidos de WC

* @param array $wc_statuses_arr Array de todos os status de pedidos no site

*/

function njengah_add_status($wc_statuses_arr) {
$new_statuses_arr = array();

// adiciona o novo status do pedido após o processamento

foreach ( $wc_statuses_arr as $id => $label) {

$new_statuses_arr[ $id ] = $label;

if ( 'wc-completed' === $id ) { // após o status "Completed"

$new_statuses_arr['wc-njengah-shipment'] = 'Aguardando envio';

}

}
return $new_statuses_arr;

// se o status do pedido não importa para você, você pode remover as linhas 21-32 e descomentar o seguinte 35-36

// $wc_statuses_arr['wc-njengah-shipment'] = 'Aguardando envio';

// return $wc_statuses_arr;
}

add_filter( 'wc_order_statuses', 'njengah_add_status' );
  1. Este é o resultado: adicionar status de pedido personalizado

Conclusão

Neste post, você viu como pode ocultar os status de pedidos principais. No entanto, é importante observar que o status do pedido que você deseja excluir não está sendo usado em nenhum lugar da sua loja, pois pode levar a erros. Além disso, compartilhei como adicionar status de pedido personalizado. Se você não estiver familiarizado com o manuseio de código, entre em contato com um desenvolvedor qualificado do WordPress.

Artigos semelhantes