Muestra los gastos de envío ordenados según su coste

Gracias a este snippet podrás mostrar los gastos de envío ordenados según coste. Se mostrarán de manera ordenada por precio los métodos de envío disponibles. Imaginaros que tenéis dos tipos de envío, uno de 4 euros en 48H. y otro de 5,90 en 24 H. De esta manera el cliente podrá elegir que método de envío elegir.

Por defecto se listan de manera ascendiente de menor a mayor coste. Si queréis que sea al revés cambia el texto “asc” por “desc” de la línea 5 de código y a funcionar.

 

Snippet que muestra los gastos de envío ordenados según su coste

// Ordena los gastos de envío según su coste
if ( in_array( 'woocommerce/woocommerce.php', get_option( 'active_plugins' ) ) ){

	add_filter( 'woocommerce_package_rates' , 'sort_woocommerce_shipping_methods_by_cost', 10, 2 );
	function sort_woocommerce_shipping_methods_by_cost( $rates, $package ) {
	
		$sort_from = 'asc'; // Indica aquí cómo quieres ordenar los gastos de envío. Si quieres mostrar primero los más baratos, usa 'asc' y si vas a 	mostrar primero los más caros, usa 'desc'
	
		if ( !$rates ) {
			return;
		}
		
		// Obtiene el listado de precios de gastos de envío disponibles
		$shipping_prices = array();
		foreach( $rates as $rate ) {
	
			$shipping_prices[] = $rate->cost;
		}
		
		// Ordena los gastos de envío de menor a mayor
		if ( 'asc' == $sort_from ) {
			
			array_multisort( $shipping_prices, SORT_ASC, $rates );
		}
	
		// Ordena los gastos de envío de mayor a menor
		if ( 'desc' == $sort_from ) {
		
			array_multisort( $shipping_prices, SORT_DESC, $rates );
		}
		
		return $rates;
	}
}
Ver más tutoriales de: WooCommerce

Tutoriales relaccionados

¿Necesitas un desarrollo a medida?

Login para aceder

LOGIN
REGISTRO