Heim  >  Fragen und Antworten  >  Hauptteil

Behalten Sie den Woocommerce-Bestellstatus als „Ausstehend“ bei

Ich möchte nicht, dass Woocommerce den Bestellstatus automatisch von „Pausiert“ auf „Abgeschlossen“ aktualisiert. Ich möchte, dass der Artikel „in der Warteschleife“ bleibt, da wir Ersatzartikel verschicken und auf die Rücksendung der Originalartikel warten. Grundsätzlich möchte ich es auch nach dem Versand des Artikels auf „in der Warteschleife“ setzen. Gibt es eine Möglichkeit, dies zu erreichen?

Ich habe erfolglos versucht, den folgenden Code zu verwenden:

add_action( 'woocommerce_payment_complete', 'cancel_completed_status' );
   
function cancel_completed_status( $order_id ){
  $order = wc_get_order( $order_id );
  $items = $order->get_items(); 
  foreach ( $items as $item_id => $item ) {
    $product_id = $item->get_variation_id() ? $item->get_variation_id() : $item->get_product_id();
    
    if ( $order->has_status( 'on-hold' )) {
        $order->update_status( 'on-hold' );
        $order->save();
    }
  }
}

P粉627136450P粉627136450228 Tage vor492

Antworte allen(1)Ich werde antworten

  • P粉476547076

    P粉4765470762024-03-29 10:54:28

    add_action('woocommerce_order_status_completed', 'completed_to_onhold');
    
    function completed_to_onhold($order_id) {
    
        $order = new WC_Order($order_id);
        $order->update_status('on-hold');
    }

    Antwort
    0
  • StornierenAntwort