Comment cacher les autres méthodes d’expédition lorsque « Livraison gratuite » est disponible

De base, lorsque vous activez la livraison gratuite pour un montant défini ou toute autre condition, WooCommerce continue d’afficher vos différents modes de livraison. Voyons donc comment n’afficher que l’option de livraison gratuite si elle est active.

C’est une opération qui n’est pas trop compliquée qui ne demande que 2 minutes.

Commencez par vider le cache WooCommerce en allant dans le menu « Woocommerce > Etat > Outils > WooCommerce Trascients » et la cliquez sur le bouton « Effacer les données temporaires ».

Ensuite, ajoutez ce bout de code à votre fichier functions.php

Pour WordPress 3.0 & +

/**
 * Cacher les frais de ports lorsque "livraison gratuite" est actif.
 */
function my_hide_shipping_when_free_is_available( $rates ) {
	$free = array();
	foreach ( $rates as $rate_id => $rate ) {
		if ( 'free_shipping' === $rate->method_id ) {
			$free[ $rate_id ] = $rate;
			break;
		}
	}
	return ! empty( $free ) ? $free : $rates;
}
add_filter( 'woocommerce_package_rates', 'my_hide_shipping_when_free_is_available', 100 );

Pour WordPress 2.5

/**
 * Cacher les frais de ports lorsque "livraison gratuite" est actif.
 */
add_filter( 'woocommerce_package_rates', 'hide_shipping_when_free_is_available', 10, 2 );
 
/**
 * Hide shipping rates when free shipping is available
 *
 * @param array $rates Array of rates found for the package
 * @param array $package The package array/object being shipped
 * @return array of modified rates
 */
function hide_shipping_when_free_is_available( $rates, $package ) {
 	
 	// Only modify rates if free_shipping is present
  	if ( isset( $rates['free_shipping'] ) ) {
  	
  		// To unset a single rate/method, do the following. This example unsets flat_rate shipping
  		unset( $rates['flat_rate'] );
  		
  		// To unset all methods except for free_shipping, do the following
  		$free_shipping          = $rates['free_shipping'];
  		$rates                  = array();
  		$rates['free_shipping'] = $free_shipping;
	}
	
	return $rates;
}

Et voilà, c’était aussi simple. A partir de maintenant, si la condition nécessaire pour obtenir la livraison gratuite, les autres modes de livraisons seront masqués.

Gregory

Agitateur de Stratégies, addict à WordPress depuis 2003, fada de Google depuis 1998. Incubateur Digital, j'accompagne au quotidien plusieurs entreprises et indépendants dans la gestion de leur stratégie digitale et l'optimisation de leurs sites WordPress. Basé à Aix-en-Provence, je suis à l'écoute de votre projet si vous avez besoin d'un expert WordPress.

Vous aimerez aussi

Laisser un commentaire

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