NB : Faire une sauvegarde de votre thème, de votre fichier et/ou votre base de données avant d’ajouter ces fonctions tutoriels.

Calculer le coût moyen d'expédition par commande - Woocommerce
Intermédiaire
Hébergement Web Canada

Publié le : 28 octobre 2023 - Modifié le : 4 avril 2024

Temps de lecture : 2 minutes, 36 seconds - 109 mots

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);

Laissez un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

You may use these HTML tags and attributes:

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>