Accueil 2026 Forums Forum de Support WooCommerce application livraison gratuite après code promo



Capture d'écran 2025 11 19 221154
2 sujets de 1 à 2 (sur un total de 2)
  • Auteur
    Messages
  • #536856
    crombet
    Participant
    Points: 13 pts

    Bonjour,

    ayant installé un code promo et une livraison gratuite à partir de 25 E, lorsque avec le code promo cela passe en dessous de 25 E la livraison gratuite est quand même appliquée.

    Comment appliquer la livraison gratuite sur le montant du panier après code promo ?

    merci

    agnes

    ...
    #546439
    El Condorito
    Participant
    Points: 171 pts

    Ah, un classique ! C’est une question WooCommerce récurrente que j’ai rencontrée plusieurs fois avec mes clients.

    Le problème vient de la façon dont WooCommerce calcule les frais de port. Par défaut, il compare le montant avant application des codes promo avec votre seuil de livraison gratuite. Du coup, si quelqu’un achète pour 30 €, applique un code qui ramène le total à 20 €, la livraison gratuite s’applique quand même puisque le panier initial dépassait 25 €.

    Pour résoudre ça, tu as deux approches :

    1. Via les conditions de livraison (la plus simple)

    Allez dans Réglages > Livraison > Zones de livraison, éditez votre zone, puis cliquez sur votre méthode de livraison. Dans les conditions d’application, modifiez le seuil en cochant « Panier ex. remises » au lieu de « Panier brut ». Attention : cette option n’existe que si vous utilisez des méthodes natives ou certains plugins spécialisés.

    2. Via un hook PHP (la plus fiable)

    C’est la solution que je préconise généralement. Vous ajoutez ce code dans le fichier functions.php de votre thème enfant (ou via Code Snippets) :

    add_filter( 'woocommerce_shipping_package_rates', function( $rates, $package ) {
        $cart_total = WC()->cart->get_subtotal() - WC()->cart->get_discount_total();
        
        foreach ( $rates as $rate_key => $rate ) {
            if ( strpos( $rate->method_id, 'free_shipping' ) !== false ) {
                if ( $cart_total < 25 ) {
                    unset( $rates[ $rate_key ] );
                }
            }
        }
        return $rates;
    }, 10, 2 );
    

    Ce code recalcule le montant du panier après les remises et masque la livraison gratuite si le total final est inférieur à 25 €.

     

    Si ton thème ou plugin supporte l’option native, utilisez-la (moins de code = moins de maintenance). Sinon, le hook PHP est fiable et facilement adaptable si vous devez ajuster le seuil plus tard.

    ...
2 sujets de 1 à 2 (sur un total de 2)
  • Vous devez être connecté pour répondre à ce sujet.


Capture d'écran 2025 11 19 221154