Din dedikerte partner for alle ting WordPress

Slik endrer du WooCommerce-ordrestatus programmatisk

Innholdsfortegnelse

WooCommerce er en populær e-handelsplattform som driver millioner av nettbutikker over hele verden. En av kjernefunksjonene til WooCommerce er muligheten til å administrere bestillinger. Som standard kommer WooCommerce med flere ordrestatuser som venter, behandling, fullført og kansellert. Det kan imidlertid være tider når du trenger å opprette egendefinerte ordrestatuser eller endre ordrestatusen programmatisk. I dette blogginnlegget viser vi deg hvordan du endrer WooCommerce-ordrestatusen programmatisk og gir deg noen eksempler på praktiske anvendelser.

Før vi begynner, er det viktig å forstå hvordan ordrestatuser fungerer i WooCommerce. Når en kunde legger inn en bestilling, blir den tildelt standardstatusen «venter». Du kan manuelt endre denne statusen til "behandler" når du begynner å oppfylle bestillingen. Når bestillingen er fullført, kan du endre statusen til «fullført». Hvis en ordre kanselleres, endres statusen til «kansellert».

La oss nå si at du må opprette en egendefinert bestillingsstatus kalt «på vent». Du kan gjøre dette ved å legge til følgende kode i functions.php-filen din:

"php
function register_custom_order_status() {
register_post_status( 'wc-on-hold', array(
'label' => 'På vent',
'public' => sant,
'exclude_from_search' => usant,
'show_in_admin_all_list' => sant,
'show_in_admin_status_list' => sant,
'label_count' => _n_noop( 'På vent (%s) ', 'På vent (%s) ' )
));
}
add_action( 'init', 'register_custom_order_status' );

Du kan deretter bruke følgende kode for å endre ordrestatusen til "på vent" programmatisk:

"php
$ordre = wc_get_order( $order_id );
$order->update_status( 'on-hold', __( 'Order on hold', 'woocommerce' ) );

Denne koden henter ordreobjektet ved å bruke $order_id-variabelen og oppdaterer statusen til «på vent».

La oss nå se en praktisk anvendelse av denne koden. La oss si at du driver en nettbutikk som tilbyr en abonnementstjeneste. Du vil opprette en egendefinert bestillingsstatus kalt "utløpt" som tilordnes bestillinger når abonnementsperioden deres utløper. Du kan bruke følgende kode for å oppnå dette:

"php
function change_order_status_on_subscription_expiry( $subscription ) {
$order_id = $subscription->get_parent_id();
$ordre = wc_get_order( $order_id );
$order->update_status( 'utløpt', __( 'Abonnementet utløpt', 'woocommerce') );
}
add_action( 'woocommerce_subscription_end_of_prepaid_term', 'change_order_status_on_subscription_expiry');

Denne koden lytter etter «woocommerce_subscription_end_of_prepaid_term»-hendelsen, som utløses når en abonnementsperiode avsluttes. Den henter deretter den overordnede ordre-IDen og oppdaterer statusen til "utløpt".

konklusjonen

Å endre WooCommerce-ordrestatus programmatisk kan være en nyttig funksjon for nettbutikkeiere som ønsker å tilpasse ordrestyringssystemet sitt. Ved hjelp av WordPress-kroker og filtre kan du opprette tilpassede ordrestatuser, automatisere ordrestatussendringer og integrere med tredjepartstjenester. Vi håper denne artikkelen har gitt deg litt innsikt i hvordan du oppnår dette og inspirert deg til å utforske flere muligheter med WooCommerce.

 

Bloggene våre

Hvordan komme i gang?

Les mer

WooCommerce-vedlikehold

Lagre 33% med vår årlige prisplan.

Kom i gang

Har du problemer med WordPress?

Krev din Gratis WordPress-vedlikehold

I dagens hektiske digitale landskap fortjener hvert nettsted omsorgen og ekspertisen til et profesjonelt vedlikeholdsteam, som sikrer optimal ytelse, forbedret sikkerhet og sømløse brukeropplevelser, slik at du kan fokusere på å utvide virksomheten din med trygghet.

Alexey Seryapin
Grunnlegger av WPServices

Kupongkode brukt!

Ta deg god tid og fortsett å bla gjennom tjenestene våre.

Alexey Seryapin
Grunnlegger av WPServices