Cum să ascundeți starea comenzii în WooCommerce

Publicat: 2020-11-12

WooCommerce Ascunde starea comenzii Doriți să ascundeți stările comenzilor principale în magazinul dvs. WooCommerce? Recent, un client a vrut să ascund unele dintre stările comenzii în magazinul său WooCommerce. În această postare, veți vedea cum puteți elimina cu ușurință unele stări de comandă și cum să creați unele personalizate.

WooCommerce Ascunde starea comenzii

Din diverse motive, este posibil să doriți să ascundeți unele dintre stările principale ale comenzii. Cu toate acestea, versiunea implicită a WooCommerce vă permite să marcați comenzile cu una dintre următoarele stări finalizate, procesate, plăți în așteptare, în așteptare, rambursate, anulate sau eșuate.

Multe plugin-uri vă permit să gestionați stările comenzilor, iar unul dintre ele este pluginul „ WooCommerce Order Status Manager ”, care are un preț de 49 USD. Manager de stare comenzi WooCommerce

Aceasta ar putea fi o soluție costisitoare pentru magazinul dvs., dar există o modalitate ușoară de a face acest lucru. În versiunea actuală de WooCommerce, stările comenzii sunt salvate ca stare de postare personalizată, la fel ca schița, programată sau publicată pentru postări.

Cum să ascundeți starea comenzii

Acestea fiind spuse, haideți să vedem cum puteți ascunde starea comenzii în WooCommerce folosind un fragment de cod. Pentru a verifica mesajele implicite de stare a comenzii, conectați-vă la site-ul dvs. WordPress și accesați Tabloul de bord ca utilizator administrator. Apoi, faceți clic pe WooCommerce > Comenzi . Vei vedea asta: starea comenzii back end

Aceste mesaje sunt afișate și în front-end atunci când un client încearcă să plaseze o comandă. Acesta poate fi accesat făcând clic pe Contul meu > Comenzi, după cum se arată mai jos: starea comenzii front end

Pași pentru a ascunde stările comenzii principale

Merită menționat faptul că atunci când ascundeți stările comenzilor de bază, asigurați-vă că nu există produse cu acea stare. Mai mult, ar trebui să vă asigurați că magazinul dvs. WooCommerce nu folosește acest statut nicăieri, deoarece poate duce la erori. De exemplu, dacă nu intenționați să efectuați rambursări în magazinul dvs. WooCommerce, puteți ascunde starea rambursării.

Motivul pentru care nu putem elimina toate stările de bază ale comenzii este că pluginurile folosesc stările comenzii, chiar și pe cele pe care nu le folosiți în fluxul dvs. de lucru. Pluginurile precum gateway-urile de plată presupun întotdeauna că sunt prezente stările de bază ale comenzii. Dacă nu sunt acolo, se vor rupe

Iată pașii pe care trebuie să-i urmezi:

  1. Conectați-vă la site-ul dvs. WordPress și accesați tabloul de bord ca utilizator administrator.
  2. Din meniul Tablou de bord, faceți clic pe Meniu Aspect > Meniu Editor de teme . Când pagina Editor de teme este deschisă, căutați fișierul cu funcțiile temei pentru a adăuga funcția de a ascunde stările comenzilor de bază în magazinul dvs. WooCommerce.
  3. Adăugați următorul cod în fișierul functions.php:
 /*

 * Eliminarea stărilor comenzii principale

 * @param array $wc_statuses_arr Matrice de toate stările comenzilor de pe site

 */

funcția njengah_remove_order_statuses( $wc_statuses_arr ){

            // Prelucrare

            if( isset( $wc_statuses_arr['wc-processing'] ) ) { // dacă există

                        unset( $wc_statuses_arr['wc-processing'] ); // îl elimină din matrice

            }

            // Rambursat

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

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

            }

            // În așteptare

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

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

            }

            // A eșuat

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

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

            }

            // În așteptarea plată

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

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

            }

            // Efectuat

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

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

            //}

            // Anulat

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

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

            //}

            returnează $wc_statuses_arr; // returnează stările rezultate

}

add_filter( 'wc_order_statuses', 'njengah_remove_order_statuses');
  1. Acesta este rezultatul pe front: ascunde starea comenzii
  2. Pentru a adăuga o stare de comandă personalizată, adăugați următorul cod în fișierul functions.php:
 /**

* Înregistrați un nou statut cu ID-ul „wc-njengah-shipment” și eticheta „În așteptarea expedierii”

*/

funcția njengah_register_waiting_shipment_status() {
register_post_status( 'wc-njengah-shipment', array(

'label' => 'Se așteaptă expedierea',

„public” => adevărat,

'show_in_admin_status_list' => adevărat, // arată numărul Toate (12) , Finalizate (9) , Se așteaptă expedierea (2)...

'label_count' => _n_noop( 'Se așteaptă expedierea <span class="count">(%s)</span>', 'Se așteaptă expedierea <span class="count">(%s)</span>' )

) );
}

add_action('init', 'njengah_register_waiting_shipment_status');

/*

* Adăugați statutul de înregistrat la lista stărilor comenzii WC

* @param array $wc_statuses_arr Matrice de toate stările comenzilor de pe site

*/

funcția njengah_add_status( $wc_statuses_arr ) {
$new_statuses_arr = array();

// adăugați starea comenzii noi după procesare

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

$new_statuses_arr[ $id ] = $label;

if ( 'wc-completed' === $id ) { // după starea „Finalizat”.

$new_statuses_arr['wc-njengah-shipment'] = 'Se așteaptă expedierea';

}

}
returnează $new_statuses_arr;

// dacă ordinea privind starea comenzii nu contează pentru dvs., puteți elimina rândurile 21-32 și decomentați următoarele 35-36

// $wc_statuses_arr['wc-njengah-shipment'] = 'Se așteaptă expedierea';

// returnează $wc_statuses_arr;
}

add_filter( 'wc_order_statuses', 'njengah_add_status');
  1. Acesta este rezultatul: adăugați starea comenzii personalizate

Concluzie

În această postare, ați văzut cum puteți ascunde stările comenzilor de bază. Cu toate acestea, este important să rețineți că starea comenzii pe care doriți să o ștergeți nu este folosită nicăieri în magazinul dvs., deoarece poate duce la erori. În plus, am împărtășit cum să adaugi starea comenzii personalizate. Dacă nu sunteți familiarizat cu gestionarea codului, vă rugăm să contactați un dezvoltator WordPress calificat.

Articole similare