Comment afficher les transporteurs par tri du moins cher au plus cher WooCommerce ?

Nous allons voir comment trier automatiquement les modes de livraison selon leur prix du moins cher au plus cher. Et ce, dans la page commande et dans calculateur de frais d’expédition de la page panier de votre boutique WooCommerce.

Par défaut, la liste des modes d’expédition est triée en fonction de l’ordre que vous avez défini dans le tableau de bord.

En effet, les icônes avec les trois traits horizontaux ci-dessus permettent d’ordonner chaque ligne du tableau des méthodes de livraison.

Le soucis se pose lorsque vous avez plusieurs transporteurs avec des règles de tarifs avancées. Dans ce cas, il peut-être difficile de garantir que le tri manuel affichera bien les transporteurs du moins cher au plus cher.

Voici un code à placer dans le fichier functions.php de votre thème et qui règle ce problème facilement :

add_filter( 'woocommerce_package_rates' , 'wootimeo_sort_shipping_methods', 10, 2 );
   
function wootimeo_sort_shipping_methods( $rates, $package ) {
    
    if ( empty( $rates ) ) return;
   
    if ( ! is_array( $rates ) ) return;
    
    uasort( $rates, function ( $a, $b ) { 
        if ( $a == $b ) return 0;
        return ( $a->cost < $b->cost ) ? -1 : 1; 
    } );
    
    return $rates;
          
}Langage du code : PHP (php)

Voici le résultat attendu à titre d’exemple :

Si vous avez des produits déjà dans le panier, videz le panier ou modifier son contenu pour forcer la mise à jour de la liste des modes d’expédition.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *