Aktualisiere den Auftragsstatus in WooCommerce automatisch jeden Montag von „In Bearbeitung“ auf „Abgeschlossen“.

Lesezeit: 2 Minuten

Aktualisiere den Auftragsstatus in WooCommerce automatisch jeden Montag von „In
Thomas Daninger

Ich muss den Bestellstatus aller „in Bearbeitung“ befindlichen Bestellungen nach einer bestimmten Zeit in WooCommerce aktualisieren. Ich wollte dies über einen Cron-Job tun. Also habe ich diesen Hook in WP Control mit einem Wochenplan hinzugefügt: woocommerce_complete_processing_order_weekly

Folgendes habe ich in meiner functions.php hinzugefügt:

add_action( 'woocommerce_complete_processing_order_weekly', 'custom_woocommerce_complete_order', 10, 0 );

function custom_woocommerce_complete_order ( $order_id ) { 
    if ( ! $order_id ) {
        return;
    }

    $order = wc_get_order( $order_id );
    $order->update_status( 'completed' );
}

Könnt ihr mir dabei helfen?

  • Möchten Sie den gesamten Bearbeitungsstatus nach einer Woche auf abgeschlossen aktualisieren?

    – mujuonly

    27. April 2020 um 13:51 Uhr

  • Hallo – ja das würde gehen. Aber im besten Fall aktualisiert es den Status eine Woche nach der Zahlung. Aber es ist auch in Ordnung, wenn zum Beispiel alle Bestellungen montags auf erledigt geändert werden…

    – Thomas Daninger

    27. April 2020 um 16:01 Uhr

  • Ändern Sie alle Auftragsmittel (beliebiger Status auf abgeschlossen)?

    – mujuonly

    27. April 2020 um 16:02 Uhr

  • Nein, nur die Bestellungen mit Status ‘in Bearbeitung’

    – Thomas Daninger

    27. April 2020 um 16:10 Uhr

1647200946 694 Aktualisiere den Auftragsstatus in WooCommerce automatisch jeden Montag von „In
mujunur

add_action( 'admin_init', 'update_order_status_on_monday' );

function update_order_status_on_monday() {

    if ( date( 'D', strtotime( 'now' ) ) === 'Mon' && !get_transient( '_updated_order_status_on_monday' ) ) {

        $processing_orders   = wc_get_orders( $args              = array(
            'numberposts'    => -1,
            'post_status'    => 'wc-processing',
        ) );

        if ( !empty( $processing_orders ) ) {
            foreach ( $processing_orders as $order )
                $order->update_status( 'completed' );
        }
        set_transient( '_updated_order_status_on_monday', true );
    } elseif ( date( 'D', strtotime( 'now' ) ) !== 'Mon' ) {
        delete_transient( '_updated_order_status_on_monday' );
    }
 }

Fügen Sie diesen Code in Ihre aktive Theme functions.php ein

  • danke. Das ist großartig. Aber kann man auch die Uhrzeit einstellen? Also setzt es den Status nur einmal am Montag? Zum Beispiel Montag 4 Uhr morgens?

    – Thomas Daninger

    27. April 2020 um 16:26 Uhr

  • @ThomasDanninger – es wird am Montag laufen und alle Bearbeitungsaufträge werden auf “Abgeschlossen” geändert. so dass eine Überprüfung möglicherweise nicht erforderlich ist

    – mujuonly

    27. April 2020 um 16:37 Uhr

  • Okay, aber wenn die Bestellung am Montag erstellt wird, wird der Status sofort aktualisiert?

    – Thomas Daninger

    27. April 2020 um 16:39 Uhr

  • Antwort aktualisiert

    – mujuonly

    27. April 2020 um 16:53 Uhr

998840cookie-checkAktualisiere den Auftragsstatus in WooCommerce automatisch jeden Montag von „In Bearbeitung“ auf „Abgeschlossen“.

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy