WooCommerce : Afficher un prix « A partir de » pour les produits variables

woocommerce snippet

Lorsque vous utilisez les produits variables de WooCommerce, les prix sont affichés sous la forme « de X€ à Y€ ». Si vous avez une différence de prix conséquente entre le produit le moins cher et le produit le plus cher, cette affichage peut nuire à vos bénéfices.

En effet, un client qui va voir un prix élevé directement peut ne pas avoir envie de cliquer sur votre produit du tout.

woocommerce produits variables snippet wpmarmite

Pour remédier à cela, vous pouvez opter pour un affichage du type « A partir de x€ ». C’est beaucoup plus vendeur (ce n’est pas pour rien qu’on voit cela partout dans les publicité 😉 ).

Pour cela, copiez-collez le snippet suivant dans le fichier functions.php de votre thème enfant:

/* Afficher "À partir de" pour les produits variables */
add_filter( 'woocommerce_variable_sale_price_html', 'wpm_variation_price_format', 10, 2 );
add_filter( 'woocommerce_variable_price_html', 'wpm_variation_price_format', 10, 2 );

function wpm_variation_price_format( $price, $product ) {
	//On récupère le prix min et max du produit variable
	$min_price = $product->get_variation_price( 'min', true );
	$max_price = $product->get_variation_price( 'max', true );

	// Si les prix sont différents on affiche "À partir de ..."
	if ($min_price != $max_price){
		$price = sprintf( __( 'A partir de %1$s', 'woocommerce' ), wc_price( $min_price ) );
		return $price;
	// Sinon on affiche juste le prix
	} else {
		$price = sprintf( __( '%1$s', 'woocommerce' ), wc_price( $min_price ) );
		return $price;
	}
}

Et voila le résultat:

woocommerce prix a partir de snippet wpmarmite

Plus sympa non ? En tout cas nous vous encourageons vivement à mettre cela en place 🙂

Vous débutez ? Procurez-vous le Kit du Freelance WordPress

Trouver les bons clients, leur vendre des prestations et bien communiquer avec eux n'est pas inné. Évitez les galères et gagnez du temps en vous formant aux côtés de 7 professionnels aguerris.

Commencer maintenant

29 commentaires Ajoutez le vôtre

  1. Bonjour Alex,
    Excellent ! J’avais essayé avec un autre hook que j’avais pu récupérer d’un site anglais mais sans succès ma nouvelle marque http://www.legaminet.fr.
    Et là, il n’y a que WP marmite qui peut apporter la bonne solution :p
    Merci
    Jérôme

    Répondre
    • Salut, tous les snippets sont testés avec les dernières versions de chaque plugin 😉

      N’hésite pas à parcourir les autres et d’autres snippets sur WooCommerce seront publiés bientot.

  2. Je me rends compte qu’aujourd’hui, que lorsqu’on a des promotions, le prix barré n’apparaît plus et que seulement le prix final est visible. Dommage règlementairement pour justifier du prix original.
    Comment faire pour l’afficher car je n’arrive pas à trouver les bonnes lignes à afficher :/

    Répondre
    • Finalement, j’ai trouvé la bonne écriture :
      function iconic_variable_price_format( $price, $product ) {

      $prefix = sprintf( __( ‘A partir de ‘, ‘woocommerce’ ), wc_price( $min_price ) );

      $min_price_regular = $product->get_variation_regular_price( ‘min’, true );
      $min_price_sale = $product->get_variation_sale_price( ‘min’, true );
      $max_price = $product->get_variation_price( ‘max’, true );
      $min_price = $product->get_variation_price( ‘min’, true );

      $price = ( $min_price_sale == $min_price_regular ) ?
      wc_price( $min_price_regular ) :
      ‘ . wc_price( $min_price_regular ) . ‘‘ .  » . wc_price( $min_price_sale ) .  »;

      return ( $min_price == $max_price ) ?
      $price :
      sprintf(‘%s%s’, $prefix, $price);

      }

      add_filter( ‘woocommerce_variable_sale_price_html’, ‘iconic_variable_price_format’, 10, 2 );
      add_filter( ‘woocommerce_variable_price_html’, ‘iconic_variable_price_format’, 10, 2 );

    • Super !

  3. salut Jérôme; j’ai copié coller ton code le dossier Php de mon thème et là je me retrouve sur une page blanche.
    je n’ai pas de notion de codage, est que tu pourrais mieux l’écrier stp comme le code au-dessus afin de faciliter le copier coller merci 1000 fois

    Répondre
    • Bonjour,
      Super infos, indispensables mêmes !
      Mais tout comme julien, je n’y connais rien aux codes.
      Et moi aussi, je me retrouve avec une page blanche… au lieu du site…
      Quelqu’un aurait-il corriger le code de Julien ?

    • Bonjour, tu as copié le code dans le bon fichier?

  4. Super le code, mais quid pour un site bilingue ?

    Répondre
    • Salut, pour un site bilingue tu peux utiliser la fonction php _e() pour englober ta phrase et traduire ton texte comme n’importe quel autre texte de ton site

    • Merci Julien, j’ai dû chipoter dans le function.php avec du code polylang, mais ouf j’y suis parvenu. Grand merci.

  5. Grand merci pour la réponse.
    Question : je vends un produit variable de 100 à 500 gros mais j’aimerais afficher no pas le prix le plus bas (100gr) mais le prix au kilo … une idée comment faire ?
    PL

    Répondre
  6. Bonjour, certains de mes produits sont vendus par tranche de 100 grammes pour lesquels j’ai préféré mettre des variations de 100 à 500 grammes. Avez-vous une idée du comment afficher le prix au kilo plutôt que la variation de prix à l’entête, ou comme ici ‘A partir de’.
    Ce serait génial 😉

    Répondre
  7. Grand merci pour cette information que je vais utiliser !
    Bon dimanche 😎

    Répondre
  8. Merci pour ce snippet
    ça marche très bien mais « à partir de » est écrit en blanc sur fond blanc donc comment faire pour l’écrire en noir.
    Merci de votre réponse.

    Répondre
  9. Bonjour, j’ai voulu modifier sur mon site le thème enfant boutique sur wordpress, je suis aller sur apparence ensuite éditeur puis sur la gauche j’ai ouvert le fichier functions.php et j’ai copier coller le snippet plus haut et cliquer sur mise à jour… Et là patatras… trop tard il était écrit :
    Do not add custom code / snippets here.
    * While Child Themes are generally recommended for customisations, in this case it is not
    * wise. Modifying this file means that your changes will be lost when an automatic update
    * of this theme is performed. Instead, add your customisations to a plugin such as https://github.com/woothemes/theme-customisations

    Je ne peux plus faire quoi que ce soit car plus d’accès :
    Cette page ne fonctionne pas
    Impossible de traiter cette demande via xxxxxxxfilles.fr à l’heure actuelle.
    HTTP ERROR 500
    Je venais juste de terminer mon site avec 5 pages de produits.
    Est-ce grave docteur ?

    Merci pour votre réponse.

    Répondre
  10. Bonjour Julien,

    Merci pour l’astuce.
    Je voulais juste savoir si quand vous choisissez l’attribut cela remplace le  » à partir de ….€  par le bon prix.

    Merci pour votre retour

    Répondre
    • Bonjour, le prix « à partir de  » reste affiché normalement, en revanche le bon prix s’affiche au dessus du sélecteur de quantité

  11. Bonjour,
    Merci beaucoup pour cette ligne de code, ça m’a sauvé la vie !
    Je voulais savoir comment faire pour avoir les prix en TTC (en toute lettre) sur mon site (ex : 700€ TTC) ? avez-vous une astuce, un truc car je pêche un peu …
    Merci par avance
    Et bravo pour votre site

    Répondre
  12. Bonjour,
    Merci pour ce code, il fonctionne très bien.
    Seulement j’ai mis à jour mes prix avec leurs vraies valeurs (c’était des prix de test avant) et le « A partir de » prend en compte mon ancien prix de test, pas le nouveau.
    Savez-vous de quoi cela peut venir ? Sur ma fiche article le bon prix s’affiche mais pas sur les page catégories.

    Merci d’avance

    Répondre
    • Bonjour, essaye de vider le cache de ton site, le cache du serveur et le cache du navigateur. Regarde aussi en navigation privée si ça fonctionne.

  13. Bonjour, merci pour ce morceau de code très utile. Néanmoins sur le site que je créé, le code ne s’applique pas mais il apparait au dessus de header. Avez-vous une idée de la source de ce problème?

    lien : https://adeoscreen.fr/produit/elegance/

    Répondre
  14. merci de ta réponse julien 🙂

    Voila le bout de code :

    /* Afficher « À partir de » pour les produits variables */
    add_filter( ‘woocommerce_variable_sale_price_html’, ‘wpm_variation_price_format’, 10, 2 );
    add_filter( ‘woocommerce_variable_price_html’, ‘wpm_variation_price_format’, 10, 2 );

    function wpm_variation_price_format( $price, $product ) {
    //On récupère le prix min et max du produit variable
    $min_price = $product->get_variation_price( ‘min’, true );
    $max_price = $product->get_variation_price( ‘max’, true );

    // Si les prix sont différents on affiche « À partir de … »
    if ($min_price != $max_price){
    $price = sprintf( __( ‘A partir de %1$s’, ‘woocommerce’ ), wc_price( $min_price ) );
    return $price;
    // Sinon on affiche juste le prix
    } else {
    $price = sprintf( __( ‘%1$s’, ‘woocommerce’ ), wc_price( $min_price ) );
    return $price;
    }

    Je pense que ca ne fonctionne pas car je n’ai pas fait de thème enfant : est-ce possible?

    Très bonne journée à toi,

    Bryan

    Répondre
    • Bonjour, tu l’as bien collé avec l’ouverture de la balise PHP (<?) du fichier functions.php? (c'est toujours mieux d'avoir un thème enfant sinon tu perdras le snippet à la prochaine mise à jour)

Laisser un commentaire

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

La Marmite ne peut malheureusement pas fournir de support. Merci d'en tenir compte dans votre commentaire 😉

Si vous ne lui en voulez pas, donnez-lui un j'aime sur Facebook :



Partagez
Tweetez
Partagez
Donec ut nunc tristique libero. dictum ipsum commodo ut