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

Woocommerce : Désactiver les frais de transport si livraison gratuite
Intermédiaire

---- Cet article a été modifié : 20 février 2021

Dans ce tutoriel, nous allons faire en sorte par exemple de désactiver tous les autres type frais d’expédition si la livraison est détectée gratuite.
Par exemple, vous pouvez ajouter dans votre Woocommerce une livraison gratuite et de mettre une condition comme par exemple un minimum de commande de 75 $ par exemple. Donc si le client achète pour plus de 75 $ et plus la livraison est gratuite.

Le problème est que Woocommerce laisse par défaut les autres types de frais de transport. Alors le client ne comprend que c’est gratuit et en même temps il est capable de choisir un autre type de frais de transport. Donc il faut cacher ces types là.

Donc voici la fonction qui permet de faire ce que l’on souhaite. Remarquer tout de suite que les deux valeurs qui sont présentes dans le unset sont a vérifier avec Firebug, et notez les valeurs par numéro.

Dans le deux images au-dessus, vous retrouvez dans chaque input la valeur de chaque frais de livraison.
Dans le premier input, on voit bien free_shipping:9, puis dans le input avec frais de transport, on voit bien la valeur suivante flat_rate:6. Donc on dit dans cette fonction, que si la condition de la livraison fonctionne, désactive les autres types de frais de transport.

add_filter( 'woocommerce_package_rates', 'montheme_unset_shipping_when_free_is_available_in_zone', 10, 2 );
function montheme_unset_shipping_when_free_is_available_in_zone( $rates, $package ) {
    // Only unset rates if free_shipping is available
    if ( isset( $rates['free_shipping:9'] ) ) {
    unset( $rates['flat_rate:6'] );
}   
    return $rates;
}

Leave a Reply

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>