Comment récupérer l'ID de commande dans WooCommerce?
ça a marché. Je viens de le modifier
global $woocommerce, $post;
$order = new WC_Order($post->ID);
//to escape # from order id
$order_id = trim(str_replace('#', '', $order->get_order_number()));
C'est une question assez ancienne maintenant, mais quelqu'un peut venir ici chercher une réponse:
echo $order->id;
Cela devrait renvoyer l'ID de commande sans "#".
EDIT (fév/2018)
La manière actuelle d'y parvenir est d'utiliser:
$order->get_id();
Je ne l'ai pas testé et je ne sais pas si vous en avez besoin, mais:
$order = new WC_Order(post->ID);
echo $order->get_order_number();
Laissez-moi savoir si cela fonctionne. Je crois que le numéro de commande fait écho avec le "#" mais vous pouvez le fractionner si vous n'avez besoin que du numéro.
Depuis woocommerce 3.0
$order->id;
ne fonctionnera pas, il générera un avis, utilisez la fonction getter:
$order->get_id();
Il en va de même pour les autres objets de woocommerce comme procut.
$order = new WC_Order( $post_id );
Si vous
echo $order->id;
vous recevrez alors l'identifiant de la publication à partir de laquelle la commande est effectuée. Comme vous l'avez déjà, ce n'est probablement pas ce que vous voulez.
echo $order->get_order_number();
renverra l'identifiant de la commande (avec un # devant). Pour se débarrasser du #,
echo trim( str_replace( '#', '', $order->get_order_number() ) );
selon la réponse acceptée.