2017-08-31 1 views

Répondre

2

Le statut de la commande par défaut est défini par le mode de paiement ou la passerelle de paiement.

Vous pouvez essayer d'utiliser cette fonction personnalisée accroché, mais il ne fonctionnera pas(comme ce crochet est déclenché avant les méthodes de paiement et les passerelles de paiement):

add_action('woocommerce_checkout_order_processed', 'changing_order_status_before_payment', 10, 3); 
function changing_order_status_before_payment($order_id, $posted_data, $order){ 
    $order->update_status('pending'); 
} 

Apparemment, chaque mode de paiement (et les passerelles de paiement) fixent le statut de commande (en fonction de la réponse de transaction pour les passerelles de paiement) ...

maintenant, au contraire, vous pouvez mise à jour l'état de la commande à l'aide woocommerce_thankyou crochet:

add_action('woocommerce_thankyou', 'woocommerce_thankyou_change_order_status', 10, 1); 
function woocommerce_thankyou_change_order_status($order_id){ 
    if(! $order_id) return; 

    $order = wc_get_order($order_id); 

    if($order->get_status() == 'processing') 
     $order->update_status('pending'); 
} 

Code va dans le fichier function.php de votre thème enfant actif (ou le thème) ou encore dans un fichier de plug-in.

testé et fonctionne


fil connexes: WooCommerce: Auto complete paid Orders (depending on Payment methods)