Hace unas semanas un cliente nos solicitó que le añadiéramos un porcentaje de descuento en todos los gastos de envío de su tienda virtual bajo WooCommerce en función del importe total del pedido. Concretamente nos pidió que le aplicáramos un 6% de descuento al importe de los gastos de envío a partir de 180,00 € de gasto total en el pedido del cliente.

Manos a la obra

Para conseguirlo lo que hicimos fue añadir una función PHP en el archivo functions.php de su tema hijo, aunque también la podéis añadir al tema padre si no disponéis de tema hijo, cosa, por otro lado, muy poco recomendable.

Esta es la función PHP que creamos:

function apg_descuento_pedido( $rates ) {
	global $woocommerce;
    
	if ( isset( WC()->cart) && WC()->cart->cart_contents_total >= 180 ) {
		foreach ( $rates as $rate ) {
			$rate->cost = $rate->cost / 1.06;
		}
	}
	
	return $rates;
}
add_filter( 'woocommerce_package_rates', 'apg_descuento_pedido', 10 );

En la función PHP lo primero que hacemos es comprobar si existe un pedido y leer el importe total del mismo para poder comprobar si es igual o superior a los 180,00 €. En caso de que así sea recorre todos los gastos de envío que se tengan configurados y activos en WooCommerce para aplicarles un descuento del 6%.

Como siempre esperamos que os resulte útil esta función y que le podáis sacar provecho en vuestras tiendas virtuales.