Pastikan status pesanan Woocommerce sebagai belum selesai
P粉627136450
P粉627136450 2024-03-28 16:34:08
0
1
537

Saya tidak mahu Woocommerce mengemas kini status pesanan secara automatik daripada "Dijeda" kepada "Selesai". Saya ingin ia kekal "ditahan" kerana kami menghantar barang gantian dan menunggu barang asal dikembalikan kepada kami. Pada asasnya, saya ingin menetapkannya kepada "ditahan" walaupun selepas item telah dihantar. Adakah terdapat cara untuk mencapai ini?

Saya cuba menggunakan kod di bawah tidak berjaya:

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粉627136450
P粉627136450

membalas semua(1)
P粉476547076
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');
}
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan