Un cliente tenía varias tarifas de envío en la página del carrito generadas automáticamente por FedEx, USPS, UPS y complementos similares a través de su API. El problema era que querían clasificarlos por precio en lugar de agruparlos por el proveedor.
Afortunadamente, con una función simple de PHP «Uasort», es posible tomar la matriz de tarifas de envío y ordenarla por el monto antes de devolverla a la pantalla. Si no conoce PHP, ¡simplemente copie/pegue!
Php Snippet: ordene las tarifas de envío por precio @ WooCommerce Cart/Checkout
/** n*@snippet Sort Shipping Rates by Price - WooCommerce n*@how-to https://tdestudiodesign.com/tutoriales n*@author Tomás Lucas D´Amario, TD Estudio Design n*@compatible WooCommerce 7 n*@community https://tdestudiodesign.com/club */ add_filter( 'woocommerce_package_rates' , 'businessbloomer_sort_shipping_methods', 9999, 2 ); function businessbloomer_sort_shipping_methods( $rates, $package ) { if ( ! is_array( $rates ) ) return $rates; uasort( $rates, function ( $a, $b ) { if ( $a == $b ) return 0; return ( $a->cost < $b->cost ) ? -1 : 1; } ); return $rates; // NOTE: BEFORE TESTING EMPTY YOUR CART }