Woocommerce : Afficher les prix  » à partir de  » dans les produits variables

Vous avez sans doute pu remarquer que lorsque vous choisissez d’utiliser des produits variables dans Woocommerce, les tarifs en boutique ou sur les pages produits sont affichés de cette manière : 35,00 € – 65,00 €.

Pas très sexy n’est-ce pas ? Au delà de l’aspect esthétique, vous prenez également le risque de dissuader vos potentiels clients de cliquer sur un produit. L’affichage immédiat de la fourchette haute de votre produit variable dans Woocommerce peut avoir un effet néfaste sur vos conversions.

Pour remédier à ce petit problème, nous allons nous servir de ces précieuses lignes de code que nous insèrerons dans notre fichier function.php

// Afficher "À partir de" sur les produits à variations
add_filter( 'woocommerce_variable_sale_price_html', 'wpb_wording_prix_variable', 10, 2 );
add_filter( 'woocommerce_variable_price_html', 'wpb_wording_prix_variable', 10, 2 );

function wpb_wording_prix_variable( $price, $product ) {
// On stocke le prix minimum et maximum du produit dans deux variables
$min_price = $product->get_variation_price( 'min', true );
$max_price = $product->get_variation_price( 'max', true );

// Si les prix diffèrent, on affiche le fameux "À partir de"
if ($min_price != $max_price){
$price = sprintf( __( 'À partir de %1$s', 'woocommerce' ), wc_price( $min_price ) );
return $price;
// Sinon affichage basique
} else {
$price = sprintf( __( '%1$s', 'woocommerce' ), wc_price( $min_price ) );
return $price;
}
}

Résultat en images :

  • Marine

    Bonjour et merci pour cette astuce.
    Si la boutique est bilingue, comment changer le A partir de par un from pour la version anglaise ?
    Merci !

    • Hello Marine ! Tu utilises quoi pour tes traductions ? WPML ou plugin dans le genre ?

    • Marine

      J’utilise Polylang Pro for Woocommerce

    • Je pense qu’il suffit d’ajouter une condition au code. Je connais pas du tout ton plugin. Tu as moyen de savoir si dans la documentation ils te donnent une condition un peu universelle pour tester si tu es en FR ou en EN ?

      On aurait tout ce morceau : if ($min_price != $max_price)

      … Dans un if lang = en etc…

    • Marine

      Merci Bruno, je vais demander à l’éditeur du plugin car je ne sais pas faire de php 😉

    • Je pense qu’il suffit d’ajouter une condition au code. Je connais pas du tout ton plugin. Tu as moyen de savoir si dans la documentation ils te donnent une condition un peu universelle pour tester si tu es en FR ou en EN ?

      On aurait tout ce morceau : if ($min_price != $max_price)

      .. Dans un if lang = en etc…