---
title: "[WooCommerce] Limiter les frais d’expédition avec un montant maximum"
description: "WooCommerce permet de calculer automatiquement les frais d’expédition. Dans certains cas, il peut être utile de limiter ce montant pour qu’il ne dépasse jamais une certaine valeur. ## Contenu avancé Cet article utilise du code PHP. Une erreur peut rendre…"
url: "https://academy.drgeek.com/docs/avance/woocommerce-code/woocommerce-limiter-les-frais-dexpedition-avec-un-montant-maximum/"
updated: "2026-03-20"
category: Avancé / WooCommerce (code)
tags:
  - Avancé
---

# [WooCommerce] Limiter les frais d’expédition avec un montant maximum

WooCommerce permet de calculer automatiquement les frais d’expédition. Dans certains cas, il peut être utile de limiter ce montant pour qu’il ne dépasse jamais une certaine valeur.

## Contenu avancé

Cet article utilise du code PHP. Une erreur peut rendre le site inaccessible. Il est recommandé d’utiliser un thème enfant ou un plugin de snippets.

## Objectif

Définir un plafond maximum pour les frais d’expédition calculés par WooCommerce.

## Code à utiliser

Ajoute le code suivant dans le fichier `functions.php` de ton thème enfant ou via un plugin de snippets :

```
/**
* Fonction pour définir un minimum / plafond sur les frais d’expédition
*/
function my_minimum_limit_shipping_rates_function( $rates, $package ) {

$methods = WC()->shipping()->get_shipping_methods();
$shipping_limit = 10.50; // Le montant maximum est de 10.50

// Boucle sur tous les tarifs
foreach ( $rates as $rate_id => $rate ) {

// Vérifie si le tarif dépasse le montant défini
if ( $rate->cost > $shipping_limit ) {
$rate->cost = $shipping_limit;

// Recalcul des taxes d’expédition
if ( $method = $methods[ $rate->get_method_id() ] ) {
$taxes = WC_Tax::calc_shipping_tax( $rate->cost, WC_Tax::get_shipping_tax_rates() );
$rate->set_taxes( $method->is_taxable() ? $taxes : array() );
}
}

}

return $rates;

}
add_filter( 'woocommerce_package_rates', 'my_minimum_limit_shipping_rates_function', 10, 2 );
```

## Comprendre le fonctionnement

- Le filtre `woocommerce_package_rates` permet d’intervenir sur les frais d’expédition calculés par WooCommerce.
- La variable `$shipping_limit` définit le montant maximum autorisé.
- Si un tarif dépasse cette limite, son montant est remplacé par la valeur définie.
- Les taxes d’expédition sont ensuite recalculées pour rester cohérentes.

## Personnaliser la limite

Dans cet exemple, le plafond est fixé à `10.50`.

Tu peux remplacer cette valeur par le montant de ton choix, par exemple :

- `15.00`
- `25.00`
- `50.00`

## Quand utiliser cette méthode

- si les frais d’expédition deviennent trop élevés sur les gros paniers
- si tu veux rassurer les clients avec un montant maximum
- si ta logique commerciale prévoit un plafond de livraison

## Points d’attention

- Ce code agit sur les tarifs d’expédition calculés par WooCommerce.
- Il modifie aussi les taxes liées à l’expédition.
- Teste toujours le résultat avec plusieurs paniers avant mise en production.
- Ne modifie jamais directement le thème principal.

## Astuce utile

Cette méthode est particulièrement utile lorsque tes frais d’expédition sont calculés automatiquement mais que tu souhaites éviter qu’ils dépassent un seuil psychologique ou commercial.

## Compatibilité

Cette méthode fonctionne avec les tarifs d’expédition WooCommerce standard. Si tu utilises un plugin de livraison avancée, des ajustements peuvent être nécessaires.

## Pour aller plus loin

- [Calculer les frais d’expédition avec une classe de livraison](/docs/avance/woocommerce-code/woocommerce-calculer-les-frais-dexpedition-avec-une-classe-de-livraison/)
- [Utiliser des formules avancées pour calculer les frais d’expédition](/docs/avance/woocommerce-code/woocommerce-utiliser-des-formules-avancees-pour-calculer-les-frais-dexpedition/)

## Pour conclure

Avec ce snippet, tu peux plafonner proprement les frais d’expédition dans WooCommerce. C’est une solution efficace lorsque tu veux conserver une logique automatique tout en gardant le contrôle sur le montant final affiché au client.
