Rumah  >  Soal Jawab  >  teks badan

Pastikan status pesanan Woocommerce sebagai belum selesai

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粉627136450P粉627136450178 hari yang lalu382

membalas semua(1)saya akan balas

  • 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');
    }

    balas
    0
  • Batalbalas