NB : Faire une sauvegarde de votre thème, de votre fichier et/ou votre base de données avant d’ajouter ces fonctions tutoriels.
Publié le : 28 octobre 2023 - Modifié le : 4 avril 2024
Temps de lecture : 2 minutes, 36 seconds - 109 mots
Partager la publication "Calculer le coût moyen d’expédition par commande – Woocommerce"
Nous allons dans ce tutoriel calculer le coût moyen des frais d’expédition par commande sur l’ensemble des commandes (y compris celles qui n’ont pas de frais de livraison), vous pouvez ajuster la fonction de la manière suivante
Calculer le coût moyen des frais d'expédition - Toutes les commandes
function woocl_calculate_average_shipping_cost_per_order_all_orders() { $args = array( 'status' => array('wc-completed', 'wc-shipped'), 'limit' => -1, 'return' => 'ids', ); $shipped_orders = wc_get_orders($args); $total_shipping_cost = 0; $total_orders = count($shipped_orders); foreach ($shipped_orders as $order_id) { $order = wc_get_order($order_id); $shipping_total = (float) $order->get_shipping_total(); $total_shipping_cost += $shipping_total; } if ($total_orders > 0) { $average_shipping_cost_per_order = $total_shipping_cost / $total_orders; } else { $average_shipping_cost_per_order = 0; } return $average_shipping_cost_per_order; }
Maintenant nous souhaitons l’afficher dans notre template.
$average_shipping_cost_per_order = woocl_calculate_average_shipping_cost_per_order_all_orders(); echo 'Coût moyen d\'expédition par commande (toutes les commandes): ' . wc_price($average_shipping_cost_per_order);
Calculer le coût moyen des frais d'expédition - Commandes avec frais d'expédition
Maintenant, si vous voulez calculer le coût moyen des frais d’expédition uniquement pour les commandes qui ont effectivement des frais d’expédition, vous pouvez utiliser la fonction suivante:
function woocl_calculate_average_shipping_cost_for_orders_with_shipping() { $args = array( 'status' => array('wc-completed', 'wc-shipped'), 'limit' => -1, 'return' => 'ids', ); $shipped_orders = wc_get_orders($args); $total_shipping_cost = 0; $orders_with_shipping = 0; foreach ($shipped_orders as $order_id) { $order = wc_get_order($order_id); $shipping_total = (float) $order->get_shipping_total(); if ($shipping_total > 0) { $total_shipping_cost += $shipping_total; $orders_with_shipping++; } } if ($orders_with_shipping > 0) { $average_shipping_cost = $total_shipping_cost / $orders_with_shipping; } else { $average_shipping_cost = 0; } return $average_shipping_cost; }
Pour afficher le coût moyen d’expédition (Uniquement les Commandes avec Frais d’Expédition)
$average_shipping_cost = woocl_calculate_average_shipping_cost_for_orders_with_shipping(); echo 'Coût moyen d\'expédition (uniquement les commandes avec frais d\'expédition): ' . wc_price($average_shipping_cost);