J'essaie d'obtenir les données associées à une commande sur le plugin woocommerce (wordpress). Actuellement, j'ai écrit mon propre plugin qui contient le code:
<?php
global $woocommerce;
$order = new WC_Order($order_id);
$order_shipping_total = $order->get_shipping();
echo $order_shipping_total;
?>
C’est juste pour le tester, je ne crois pas que cela fonctionne - MAIS, ce dont j’ai besoin, c’est d’obtenir une liste des commandes qui ont un certain statut, puis de pouvoir accéder aux champs (comme le prénom). pour chaque commande dans cette liste. Comment puis-je faire cela? De plus, quels fichiers dois-je inclure pour que cela fonctionne? Le fichier class-wc-order ()?
Récemment, j'ai travaillé pour l'exportation de données de commandes en XML.
$args = array(
'post_type' => 'shop_order',
'post_status' => 'publish',
'meta_key' => '_customer_user',
'posts_per_page' => '-1'
);
$my_query = new WP_Query($args);
$customer_orders = $my_query->posts;
foreach ($customer_orders as $customer_order) {
$order = new WC_Order();
$order->populate($customer_order);
$orderdata = (array) $order;
// $orderdata Array will have Information. for e.g Shippin firstname, Lastname, Address ... and MUCH more.... Just enjoy!
}
Pour filtrer les commandes d'un client particulier, utilisez l'argument supplémentaire meta_value:
$user_id = get_current_user_id();
$args = array(
'post_type' => 'shop_order',
'post_status' => 'publish',
'meta_key' => '_customer_user',
'meta_value' => $user_id,
'numberposts' => -1, // -1 for all orders
'posts_per_page' => '-1'
);
$my_query = new WP_Query($args);
Autre manière alternative de charger des commandes pour un client particulier:
$orders = get_posts( apply_filters( 'woocommerce_my_account_my_orders_query', array(
'numberposts' => 1, // -1 for all orders
'meta_key' => '_customer_user',
'meta_value' => $user_id,
'post_type' => 'shop_order',
'post_status' => 'publish'
) ) );
Voir aussi ici .