
🏪 Mukautetut WooCommerce-tilaustilat: miten luoda ja määrittää
Käsittelimme tilauksen, mutta tälle vaiheelle ei ole vakiotilaa. "Käsittelyssä" kokoonpanoon, "Valmis" toimitukseen ja tyhjiö siltä väliltä. Verkkokauppa kasvaa, eivätkä seitsemän oletusarvoista WooCommerce-tilaa enää riitä.
Voit lisätä mukautetun tilan kahdella tavalla: muutamalla koodirivillä functions.php-tiedostoon tai valmiilla lisäosalla. Molemmat tavat toimivat eivätkä riko vakiotilauslogiikkaa. Alla vaihe vaiheelta, testatulla koodilla ja vaihtoehdolla ilman ohjelmointia.
💡 Pikaopas:
- Mitkä tilat WooCommerce sisältää valmiina ja miksi ne eivät riitä
- Mukautetun tilan rekisteröinti PHP-koodilla
- Useiden tilojen ja mukautettujen sähköposti-ilmoitusten lisääminen
- Lisäosat tilaustiloille, kun koodi ei sovi
- Vastauksia yleisiin kysymyksiin: HPOS, värit, poisto, kääntäminen
Mitkä tilat WooCommerce sisältää valmiina
Oletuksena WooCommerce tarjoaa seitsemän tilaustilaa. Jokainen on tiukasti sidoksissa tiettyyn kohtaan tilauksen elinkaaressa:
Tila | Mitä se tarkoittaa |
|---|---|
Odottaa maksua | Tilaus luotu, maksua ei vastaanotettu |
Käsittelyssä | Maksu vastaanotettu, tilausta käsitellään |
Valmis | Tilaus toimitettu ja suljettu |
Odottaa | Odottaa maksun vahvistusta |
Peruutettu | Asiakkaan tai ylläpitäjän peruuttama |
Hyvitetty | Varat palautettu |
Epäonnistui | Maksu epäonnistui |
Tyypilliselle verkkokaupalle tämä sarja riittää. Mutta heti kun mukaan tulee mukautettua käsittelylogiikkaa, kuten tilauksesta valmistettava tuotanto tai monivaiheinen toimitus, seitsemän tilaa ei enää riitä. Tarvitset tiloja kuten "Kokoonpanossa", "Luovutettu toimitukseen", "Odottaa ennakkomaksua" tai "Vaatii esihenkilön tarkistuksen".
Vaihe 1: mukautetun tilan rekisteröinti koodilla
Ennen WooCommerce 3.0:aa tilat käyttivät shop_order_status-taksonomiaa, ja uuden lisääminen oli hankalaa. Nyt se on yksinkertaisempaa: tilaustila on mukautetun sisältötyypin shop_order julkaisun tila. Se rekisteröidään yhdellä register_post_status()-funktiolla ja wc_order_statuses-suodattimella.
Koodi lisätään lapsiteeman functions.php-tiedostoon. Ennen muokkauksia tee täydellinen sivuston varmuuskopio.
1 // Registering a new order status 2 function sdstudio_register_custom_order_status() { 3 register_post_status( 'wc-preparing', array( 4 'label' => 'In assembly', 5 'public' => true, 6 'exclude_from_search' => false, 7 'show_in_admin_all_list' => true, 8 'show_in_admin_status_list' => true, 9 'label_count' => _n_noop( 10 'In assembly (%s)', 11 'In assembly (%s)', 12 'sdstudio' 13 ), 14 ) ); 15 } 16 add_action( 'init', 'sdstudio_register_custom_order_status' ); 17 18 // Adding status to WooCommerce list 19 function sdstudio_add_custom_order_status( $order_statuses ) { 20 $order_statuses['wc-preparing'] = 'In assembly'; 21 return $order_statuses; 22 } 23 add_filter( 'wc_order_statuses', 'sdstudio_add_custom_order_status' );
Kun functions.php on tallennettu, uusi tila ilmestyy tilaustilan pudotusvalikkoon hallintapaneelissa ja WooCommerce-raportteihin. Järjestelmä näkee sen täysimittaisena tilana, voit suodattaa tilauksia, vaihtaa tilaa manuaalisesti ja käyttää sitä koukuissa.
Mitä tässä tapahtuu
register_post_status()-funktio luo uuden julkaisun tilan wc--etuliitteellä, tämä on WooCommercen käytäntö. label-parametri asettaa luettavan nimen hallintapaneelissa. label_count käsittelee _n_noop()-funktion kautta laskurien oikean näyttämisen suomenkielisessä käyttöliittymässä.
wc_order_statuses-suodatin lisää tilan taulukkoon, jota WooCommerce käyttää listan rakentamiseen. Ilman tätä vaihetta tila rekisteröidään järjestelmään, mutta se ei näy tilauksen pudotusvalikossa.

Visuaalisesti tulos näyttää täsmälleen tältä, uusi tila näkyy yleisessä listassa vakiotilojen rinnalla.
Vaihe 2: useiden tilojen ja sähköposti-ilmoitusten lisääminen
Yhdelle tilalle yllä oleva koodi toimii täydellisesti. Jos tarvitset useita, kopioi vain register_post_status() saman funktion sisällä ja lisää merkintä $order_statuses-taulukkoon. Esimerkiksi verkkokaupalle, jossa on tilauksesta valmistettava tuotanto:
1 function sdstudio_register_multiple_statuses() { 2 // Status "In production" 3 register_post_status( 'wc-in-production', array( 4 'label' => 'In production', 5 'public' => true, 6 'exclude_from_search' => false, 7 'show_in_admin_all_list' => true, 8 'show_in_admin_status_list' => true, 9 'label_count' => _n_noop( 10 'In production (%s)', 11 'In production (%s)', 12 'sdstudio' 13 ), 14 ) ); 15 16 // Status "Ready to ship" 17 register_post_status( 'wc-ready-to-ship', array( 18 'label' => 'Ready to ship', 19 'public' => true, 20 'exclude_from_search' => false, 21 'show_in_admin_all_list' => true, 22 'show_in_admin_status_list' => true, 23 'label_count' => _n_noop( 24 'Ready to ship (%s)', 25 'Ready to ship (%s)', 26 'sdstudio' 27 ), 28 ) ); 29 } 30 add_action( 'init', 'sdstudio_register_multiple_statuses' ); 31 32 function sdstudio_add_multiple_statuses( $order_statuses ) { 33 $order_statuses['wc-in-production'] = 'In production'; 34 $order_statuses['wc-ready-to-ship'] = 'Ready to ship'; 35 return $order_statuses; 36 } 37 add_filter( 'wc_order_statuses', 'sdstudio_add_multiple_statuses' );
Huomioi: tilan tunniste (register_post_status-funktion ensimmäinen argumentti) alkaa aina wc--etuliitteellä. Ilman tätä etuliitettä WooCommerce ei huomioi tilaa.
Sähköposti-ilmoitukset mukautetuille tiloille
Oletuksena WooCommerce ei lähetä sähköposteja, kun tilaksi vaihdetaan mukautettu tila. Ota ilmoitukset käyttöön lisäämällä woocommerce_email_actions-suodatin:
1 function sdstudio_add_custom_status_email( $email_actions ) { 2 $email_actions[] = 'woocommerce_order_status_wc-preparing'; 3 $email_actions[] = 'woocommerce_order_status_wc-in-production'; 4 return $email_actions; 5 } 6 add_filter( 'woocommerce_email_actions', 'sdstudio_add_custom_status_email' );
Tämän jälkeen voit määrittää sähköpostipohjan kohdassa WooCommerce → Asetukset → Sähköpostit, uusi tila ilmestyy liipaisinten listaan muokattavaksi. Pohja luodaan lapsiteemaan polkuun woocommerce/emails/, tiedosto nimetään kaavan customer-<status>.php mukaan.
Lisäosat tilaustiloille: kun koodi ei sovi
Koodi ei ole ainoa tie. Jos et halua muokata functions.php-tiedostoa tai sinun täytyy vaihtaa tiloja usein, on olemassa lisäosia. Kaksi päävaihtoehtoa:
WooCommerce Order Status Manager, WooCommercen virallinen laajennus. Lisää käyttöliittymän tilojen luomiseen ja muokkaamiseen suoraan hallintapaneelista: WooCommerce → Asetukset → Tilaustilat. Tukee sähköposti-ilmoituksia, kuvakkeita, värejä ja tilojen tuontia/vientiä. Maksullinen, sisältyy joihinkin WooCommerce-paketteihin.
Flexi Custom Order Status, ilmainen lisäosa WordPress.orgin valikoimasta. Tarjoaa myös visuaalisen editorin tiloille, mutta vähemmillä ominaisuuksilla. Sopii perusskenaarioihin: lisäsit tilan, annoit värin, otit sähköpostin käyttöön.
Mikä polku valita:
- Tarvitset yhden tai kaksi tilaa etkä pelkää koodia,
functions.phpriittää. - Tiloja on paljon, ne vaihtuvat usein tai sivustoa hallinnoi asiakas ilman teknisiä taitoja, hanki lisäosa.
- Käytät HPOS:ia (High-Performance Order Storage), molemmat tavat toimivat. Tilat perustuvat edelleen
register_post_status()-funktioon, HPOS ei vaikuta niihin.
Yllä oleva lyhyt video näyttää mukautetun tilan lisäämisen viidessä minuutissa, lisäosan asennuksesta ensimmäiseen käyttöön tilauksissa.
⁉️🤔 Yleisiä kysymyksiä
Toimiiko mukautettu tila HPOS:n kanssa?
Kyllä, täysin. HPOS muuttaa tilaustietojen tallennustapaa, mutta ei koske julkaisun tilaan.
register_post_status()-funktio pysyy päämekanismina, koodisi toimii HPOS:n ollessa sekä käytössä että pois käytöstä.
Voiko mukautetulle tilalle asettaa värin?
Koodilla vain CSS-tyyleillä hallintapaneelissa: koukuta
.status-wc-preparing-luokkaan ja aseta tausta. Kätevämmin lisäosilla: Order Status Manager ja Flexi tarjoavat visuaalisen värinvalinnan ilman yhtäkään koodiriviä.
Kuinka poistaa luotu tila?
Poista se
register_post_status()-funktiosta jawc_order_statuses-suodattimesta. Tämän tilan tilaukset eivät katoa, ne säilyvät tietokannassa, mutta tila lakkaa näkymästä pudotusvalikossa. Ennen poistoa siirrä kaikki poistettavan tilan tilaukset toiseen tilaan, jotta et menetä niitä näkyvistä.
Kuinka kääntää tilat toiselle kielelle?
label-parametriregister_post_status-funktiossa hyväksyy merkkijonon, määritä nimi halutulla kielellä. Jos sivusto on monikielinen, kääri merkkijono__()- tai_x()-kutsuun tekstidomeenin kanssa ja käännä.po/.mo-tiedostojen kautta kuten mikä tahansa muukin teeman teksti.
Onko wc--etuliite pakollinen?
Kyllä. WooCommerce suodattaa tiloja tämän etuliitteen perusteella. Jos rekisteröit tilan ilman
wc--etuliitettä, se ei näy tilauksen hallintapaneelissa. Poikkeus, lisäosat: ne lisäävät etuliitteen itse tai ohittavat suodatuksen sisäisillä mekanismeilla.
Voiko mukautetun tilan lisätä ilman koodia ja ilman lisäosaa?
Ilman koodia ja ilman lisäosaa ei voi. WooCommerce ei tarjoa käyttöliittymää tilojen luomiseen valmiina. Minimaalinen polku ilman ohjelmointia, ilmainen Flexi Custom Order Status WordPress.orgin valikoimasta. Yhden klikkauksen asennus, määritys hallintapaneelin kautta.
Mitä käyttää omaan tehtävääsi
Mukautetut tilaustilat ovat yksi niistä WooCommercen mekanismeista, jotka on helppo ohittaa, kun verkkokauppa on pieni. Mutta heti kun tuotanto, vaiheittainen logistiikka tai manuaalinen tilausvarmennus tulee mukaan, ilman niitä hallintapaneeli muuttuu epämääräisten muistiinpanojen kaaokseksi.
- Tarvitset yhden tai kaksi tilaa ja olet muokannut
functions.php-tiedostoa aiemmin, vaiheen 1 koodi hoitaa tehtävän viidessä minuutissa. - Tarvitset visuaalisen editorin ja väriasetukset asiakkaalle, Flexi Custom Order Status (ilmainen).
- Tilat ovat osa monimutkaista liiketoimintaprosessia, jossa on sähköpostiskenaarioita ja kymmeniä vaiheita, WooCommerce Order Status Manager (virallinen laajennus).
Tarkista, mikä lähestymistapa sopii sinulle paremmin, ja lisää ensimmäinen mukautettu tilasi jo tänään. Jos käytät eri menetelmää tai tiedät lisäosan, jota ei ole artikkelissa, jaa se kommenteissa.



