Comment puis-je obtenir le id de méthode d'expédition de la commande ....
Par exemple, 'flate_rate'.
Depuis WooCommerce 3.x.x, ce n'est pas si facile car tout a changé.
Je l'ai essayé avec $order->get_data()
dans une boucle foreach mais les données sont protégées.
Si vous souhaitez obtenir les données d'expédition des articles commandés, vous devez d'abord les obtenir dans une boucle foreach (pour 'shipping'
type d'article) et d'utiliser les méthodes WC_Order_Item_Shipping pour accéder aux données
$order_id = 528; // For example
// An instance of
$order = wc_get_order($order_id);
// Iterating through order shipping items
foreach( $order->get_items( 'shipping' ) as $item_id => $shipping_item_obj ){
$order_item_name = $shipping_item_obj->get_name();
$order_item_type = $shipping_item_obj->get_type();
$shipping_method_title = $shipping_item_obj->get_method_title();
$shipping_method_id = $shipping_item_obj->get_method_id(); // The method ID
$shipping_method_instance_id = $shipping_item_obj->get_instance_id(); // The instance ID
$shipping_method_total = $shipping_item_obj->get_total();
$shipping_method_total_tax = $shipping_item_obj->get_total_tax();
$shipping_method_taxes = $shipping_item_obj->get_taxes();
}
Vous pouvez également obtenir un tableau de ces données (non protégées et accessibles) en utilisant la méthode WC_Data
- get_data()
à l'intérieur de cette boucle foreach:
$order_id = 528; // For example
// An instance of
$order = wc_get_order($order_id);
// Iterating through order shipping items
foreach( $order->get_items( 'shipping' ) as $item_id => $shipping_item_obj ){
// Get the data in an unprotected array
$shipping_item_data = $shipping_item_obj->get_data();
$shipping_data_id = $shipping_data['id'];
$shipping_data_order_id = $shipping_data['order_id'];
$shipping_data_name = $shipping_data['name'];
$shipping_data_method_title = $shipping_data['method_title'];
$shipping_data_method_id = $shipping_data['method_id'];
$shipping_data_instance_id = $shipping_data['instance_id'];
$shipping_data_total = $shipping_data['total'];
$shipping_data_total_tax = $shipping_data['total_tax'];
$shipping_data_taxes = $shipping_data['taxes'];
}
Pour terminer, vous pouvez utiliser les méthodes suivantes WC_Abstract_Order
liées aux "Données d'expédition", comme dans ces exemples :
// Get an instance of the WC_Order object
$order = wc_get_order(522);
// Return an array of shipping costs within this order.
$order->get_shipping_methods(); // same thing than $order->get_items('shipping')
// Conditional function based on the Order shipping method
if( $order->has_shipping_method('flat_rate') ) {
// Output formatted shipping method title.
echo '<p>Shipping method name: '. $order->get_shipping_method()) .'</p>';