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)