WooCommerce ne permet pas nativement de rendre les méthodes de livraison déjà configurées gratuites via un code promo classique. La livraison gratuite est considérée comme une méthode distincte, et non comme une remise appliquée aux transporteurs existants.
Pour les développeurs : quelques pistes techniques
Si vous aimez bidouiller WooCommerce, il est possible de créer un coupon qui applique une remise sur les frais de livraison grâce à quelques filtres et actions. Voici les grandes étapes :
Créer un type de coupon personnalisé
Pour la création d’un code promo personnalisé, voici la solution :
Besoin d’un spécialiste WooCommerce pour votre projet ? Contactez-moi
add_filter('woocommerce_coupon_discount_types', 'td_add_free_shipping_coupon_type');
function td_add_free_shipping_coupon_type($discount_types) {
$discount_types['td_free_shipping'] = __('Frais de livraison gratuits', 'woocommerce');
return $discount_types;
}
Ce bout de code ajoute un nouveau type de coupon à WooCommerce appelé « Frais de livraison gratuits ». Sans cette étape, WooCommerce ne saurait pas qu’un coupon peut agir spécifiquement sur les frais de livraison.
Afficher le type de coupon dans l’admin
Une fois le type de coupon crée, vous allez devoir l’afficher dans l’administration, voici comment faire :
add_action('woocommerce_coupon_options', 'td_add_free_shipping_coupon_field', 10, 2);
function td_add_free_shipping_coupon_field($coupon_id, $coupon) {
if ($coupon->get_discount_type() !== 'td_free_shipping') return;
echo '<p class="form-field"><strong>' . __('Ce coupon déduit les frais de livraison du panier.', 'woocommerce') . '</strong></p>';
}
Ce code affiche dans l’interface d’administration WooCommerce un message indiquant que ce coupon agit sur les frais de livraison. Cela permet à l’administrateur de distinguer facilement ce type de coupon des autres. Regardez cette capture d’écran pour voir la nouvelle option disponible dans le menu de sélection du type de remise :

Calculer les frais et appliquer la réduction
La remise sur les frais d’envoi doit maintenant être appliquée dans le processus de commande, voici le code php correspondant :
add_filter('woocommerce_package_rates', 'td_apply_free_shipping_coupon', 100, 2);
function td_apply_free_shipping_coupon($rates, $package) {
$applied_coupons = WC()->cart->get_applied_coupons();
if (empty($applied_coupons)) return $rates;
foreach ($applied_coupons as $coupon_code) {
$coupon = new WC_Coupon($coupon_code);
if ($coupon->get_discount_type() !== 'td_free_shipping') continue;
foreach ($rates as $rate_key => $rate) {
$rates[$rate_key]->cost = 0;
$rates[$rate_key]->taxes = array();
}
break;
}
return $rates;
}
Cette fonction vérifie si le coupon « Frais de livraison gratuits » est appliqué au panier. Si c’est le cas, elle réduit à zéro le coût de tous les transporteurs disponibles, supprimant également les taxes associées à la livraison.
Une solution clé en main
Ces extraits montrent comment WooCommerce peut être adapté pour proposer des frais de livraison gratuits via un coupon.
Si vous n’avez pas le temps ou l’envie de manipuler le code, le plugin TD Free Shipping Coupon simplifie tout ce processus et vous permet de gérer vos codes promo de livraison gratuite en quelques clics, tout en conservant le choix des transporteurs et la compatibilité avec vos autres promotions.
Autres pistes d’évolution de ce plugin woocommerce
Contrairement au fonctionnement natif woocommerce, où la livraison gratuite est une méthode distincte qui écrase toutes les autres, un développement personnalisé permet de gérer finement les frais de livraison et les promotions. Voici d’autres possibilités qu’il est possible d’implémenter grâce à un developpement spécifique :
- Appliquer la livraison gratuite uniquement à certains transporteurs : par exemple, rendre Colissimo gratuit mais Mondial Relay payant.
- Un cumul ou une combinaison fine avec d’autres promotions : décider si le coupon peut se cumuler avec d’autres réductions ou promotions en cours.
- Une exclusion ou une inclusion de suppléments spécifiques : offrir la livraison gratuite tout en maintenant le paiement pour des options comme l’emballage cadeau ou l’assurance transporteur.
- Une application automatique selon conditions complexes : activer la livraison gratuite pour certains produits, catégories, zones géographiques ou types d’utilisateurs.
- Messages personnalisés dans le panier : informer le client que seule une partie du panier bénéficie de la livraison gratuite ou expliquer les exceptions.
- Gamification et seuils personnalisés : lier la livraison gratuite à des points fidélité, badges ou mini-défis pour encourager les achats.
Ces possibilités montrent que, grâce à un plugin ou un développement sur mesure, vous pouvez transformer la livraison gratuite en un véritable levier marketing flexible, tout en conservant le contrôle sur chaque détail du parcours client.
Besoin d’un developpement WooCommerce spécifique ?
Découvrez nos plugins WooCommerce
Améliorez votre boutique en ligne avec nos plugins personnalisés :
Automatisez vos promotions, multiple point de collecte, bon d’achat exclusif à chaque nouveau inscrit, …
