Din dedikerade partner för allt WordPress

Hur man ändrar WooCommerce Order Status Programmatiskt

Innehållsförteckning

WooCommerce är en populär e-handelsplattform som driver miljontals onlinebutiker över hela världen. En av kärnfunktionerna i WooCommerce är möjligheten att hantera beställningar. Som standard kommer WooCommerce med flera orderstatusar som väntande, bearbetning, slutförd och avbruten. Det kan dock finnas tillfällen då du behöver skapa anpassade orderstatusar eller ändra orderstatus programmatiskt. I det här blogginlägget kommer vi att visa dig hur du ändrar WooCommerce orderstatus programmatiskt och ger dig några exempel på dess praktiska tillämpningar.

Innan vi börjar är det viktigt att förstå hur orderstatus fungerar i WooCommerce. När en kund gör en beställning tilldelas den standardstatusen "väntande". Du kan manuellt ändra denna status till "bearbetar" när du börjar utföra beställningen. När beställningen är klar kan du ändra statusen till "avslutad". Om en beställning avbryts ändras statusen till "avbruten".

Låt oss nu säga att du behöver skapa en anpassad beställningsstatus som heter "on-hold". Du kan göra detta genom att lägga till följande kod till din functions.php-fil:

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

Du kan sedan använda följande kod för att ändra beställningsstatus till "on-hold" programmatiskt:

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

Den här koden hämtar orderobjektet med hjälp av variabeln $order_id och uppdaterar dess status till "on-hold".

Låt oss nu se en praktisk tillämpning av denna kod. Låt oss säga att du driver en onlinebutik som erbjuder en prenumerationstjänst. Du vill skapa en anpassad beställningsstatus som kallas "förfallit" som tilldelas beställningar när deras prenumerationsperiod slutar. Du kan använda följande kod för att uppnå detta:

"php
function change_order_status_on_subscription_expiry( $subscription ) {
$order_id = $subscription->get_parent_id();
$order = wc_get_order( $order_id );
$order->update_status( 'expired', __( 'Prenumeration har gått ut', 'woocommerce') );
}
add_action( 'woocommerce_subscription_end_of_prepaid_term', 'change_order_status_on_subscription_expiry');
”'

Den här koden lyssnar efter händelsen "woocommerce_subscription_end_of_prepaid_term", som utlöses när en prenumerationsperiod slutar. Den hämtar sedan det överordnade beställnings-ID och uppdaterar dess status till "förfallit".

Slutsats

Att ändra WooCommerce-orderstatus programmatiskt kan vara en användbar funktion för nätbutiksägare som vill anpassa sitt orderhanteringssystem. Med hjälp av WordPress-krokar och filter kan du skapa anpassade orderstatusar, automatisera orderstatusändringar och integrera med tredjepartstjänster. Vi hoppas att den här artikeln har gett dig lite insikter om hur du uppnår detta och inspirerat dig att utforska fler möjligheter med WooCommerce.

 

Hur man kommer igång?

LÄR DIG MER

WooCommerce underhåll

Spara 33% med vår årliga prisplan.

Kom igång

Har du problem med WordPress?

Uppdatera din Gratis WordPress-underhåll

I dagens snabba digitala landskap förtjänar varje webbplats omsorg och expertis från ett professionellt underhållsteam, vilket säkerställer optimal prestanda, förbättrad säkerhet och sömlösa användarupplevelser, så att du kan fokusera på att växa ditt företag med sinnesfrid.

Alexey Seryapin
Grundare av WPServices

Kupongkod tillämpad!

Ta dig tid och fortsätt att bläddra i våra tjänster.

Alexey Seryapin
Grundare av WPServices