J'essaie de désactiver une méthode d'expédition si une classe d'expédition spécifique est dans le panier. Im en utilisant la nouvelle version de woocommerce.Désactiver la méthode d'expédition spécifique si un article du panier utilise un ID de classe d'expédition spécifique
Ci-dessous est mon code pour ma tâche. Il est placé à la fin de mon fichier functions.php
de mon thème.
Malheureusement, cela ne fonctionne pas.
add_filter('woocommerce_package_rates', 'businessbloomer_hide_free_shipping_for_shipping_class', 10, 2);
function businessbloomer_hide_free_shipping_for_shipping_class($rates, $package) {
$shipping_class_target = 513; // ID OF MY SHIPPING_CLASS
$in_cart = false;
foreach(WC()->cart->cart_contents as $key => $values) {
if($values[ 'data' ]->get_shipping_class_id() == $shipping_class_target) {
$in_cart = true;
break;
}
}
if($in_cart) {
unset($rates['flat_rate:2']); //VALUE:ID OF MY SHIPPING METHOD
}
return $rates;
}
Vous êtes génial! L'actualisation du cache l'a fait pour moi! Ty Monsieur. – sHamann
Peu en retard à la fête, juste une question rapide 'var_dump ($ rates)' ne renvoie rien sur la page '/ cart'. Nouveau pour wordpress ici. –
@SanjokGurung Comme il s'agit d'un filtre, pour avoir une idée des données des tarifs d'expédition, il vaut mieux essayer ailleurs: 'echo '
';' – LoicTheAztec