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(); } } }