recherche

Maison  >  Questions et réponses  >  le corps du texte

Conserver le statut de la commande Woocommerce en attente

Je ne veux pas que Woocommerce mette automatiquement à jour le statut de la commande de « En pause » à « Terminé ». J'aimerais qu'il reste "en attente" car nous envoyons des articles de remplacement et attendons que les articles originaux nous soient retournés. Fondamentalement, je souhaite le mettre en attente même après l'expédition de l'article. Y'a-t-il une quelconque façon de réussir cela?

J'ai essayé d'utiliser le code ci-dessous sans succès :

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粉627136450248 Il y a quelques jours512

répondre à tous(1)je répondrai

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

    répondre
    0
  • Annulerrépondre