Affichage du prix le plus bas : Tarifs dégressifs (Créer un compte)

  • WordPress :5.4
  • Statut : non résolu
8 sujets de 1 à 8 (sur un total de 8)
  • Auteur
    Messages
  • #2343777
    rom7802
    Participant
    Initié WordPress
    4 contributions

    Bonjour,

    Ma configuration WP actuelle

    • Version de PHP/MySQL :
    • Thème utilisé : stratus
    • Extensions en place : woo commerce + pricing and discount
    • Nom de l’hébergeur : o2switch
    • Adresse du site : https://cleanmobilier.com/

    Problème(s) rencontré(s) :

    Bonjour,

    Savez-vous s’il vous plaît comment afficher « à partir de » devant le prix de produits aux tarifs dégressifs sur woocommerce ?
    J’ai trouvé de nombreux guides pour le faire avec des produits variables.
    Mais pas dans le cas d’un seul produit.
    Si le produit vaut 10€/unité, 8€/unité pour 5 achetés, nativement le prix affiché est 10€.
    Comment afficher : à partir de 8€ ?
    Un grand merci par avance 😊

     

    Fichiers joints :
    Vous devez être connecté pour voir les fichiers joints.
    #2343783
    momofr@free.fr
    Modérateur
    Maître WordPress
    3204 contributions

    Salut, il faut utiliser cette fonction PHP dans le fichier functions.php de ton 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;
    	}
    }

    Si tu n’as pas de thème enfant il faut ajouter une extension comme Code Snippet pour embarquer la fonction. Ne la met pas dans le fichier du thème natif car à la prochaine mise à jour elle disparaîtra.

    #2343789
    rom7802
    Participant
    Initié WordPress
    4 contributions

    Bonjour Momo,

    Merci beaucoup pour la réponse très rapide 😊
    L’extension Code Snippet est géniale ✌️

    J’avais trouvé une solution pour afficher “À partir de” pour les produits variables, même si la tienne est plus simple donc je vais la garder.

    Mais mon souhait est de pouvoir afficher “À partir de” pour les produits sans variable, mais qui ont un prix dégressif en fonction de la quantité.
    Prix unitaire : 80 euros
    Prix unitaire pour 5 achetés : 76 euros
    Prix unitaire pour 10 achetés : 71 euros

    Dans cet exemple, sais-tu comment faire pour afficher : “À partir de 71 euros HT” au lieu de l’affichage par défaut “80 euros HT“.

    Un grand merci par avance 😊

    #2343832
    ferman
    Participant
    Maître WordPress
    2511 contributions

    Bonjour,

    Votre question n’est pas très précise. Vous voulez que ça s’applique à tous les produits simples? Certains d’entre eux? Et alors comment sont-ils sélectionnés? Essayez le code ci-dessous: Il s’applique à tous les produits simples (pas aux variations) ni aux produits en solde. Le prix minimum est 80% du prix normal. C’est naturellement modifiable. Si vous voulez l’appliquer seulement à certains produits, il faut modifier le code en conséquence.

    function prix_mini( $price, $product ) {
       
        if ( $product->managing_stock()  && $product->is_in_stock() ){
    		if ($product->is_type('simple')){
            $regular_price = $product->get_regular_price(); 
            $price = $regular_price*0.8;
            $price = ('A partir de  '.$price.' Euros HT');
    		}	
        }
    	return $price;
    }
    add_filter( 'woocommerce_get_price_html', 'prix_mini',10,2 );

    • Cette réponse a été modifiée le il y a 1 semaine et 2 jours par ferman.
    #2343881
    rom7802
    Participant
    Initié WordPress
    4 contributions

    Bonjour Ferman,

    Merci beaucoup de prendre le temps de réfléchir à mon problème 😊
    J’ai intégré votre mais je ne parviens pas au résultat attendu.

    Je voudrais que cela s’applique à tous les produits simples au moins. Mais si en plus ça peut s’appliquer aux variations c’est encore mieux.
    Je reformule et vous joins des captures pour plus de clarté.

    La situation actuelle : L’hygiaphone vaut 80€. La fiche produit affiche HYGIPHONE 80,00€ HT
    Si le client en prend 5, il vaut 76€
    Si le client en prend 10, il vaut 71€
    Si le client en prend 100, il vaut 60€

    Ce que je voudrais : La fiche produit affiche HYGIPHONE À partir de 60,00€ HT
    Je voudrais qu’on affiche le prix dégressif le plus bas.
    Ces prix sont calculés via l’extension Pricing and Discounts.

    Je vous suis vraiment très reconnaissant de m’aider et reste à votre disposition si vous souhaitez davantage d’informations.
    Merci 😊
    Excellente journée,

    Fichiers joints :
    Vous devez être connecté pour voir les fichiers joints.
    #2343890
    momofr@free.fr
    Modérateur
    Maître WordPress
    3204 contributions

    Salut, je n’ai jamais eu à afficher les prix sur les réduction sur volume, regarde ce sujet sur Stackoverflow, il y a peut être une fonction qui te conviendra.

    #2343891
    ferman
    Participant
    Maître WordPress
    2511 contributions

    Bonjour,

    Ce que je vous avais donné fonctionne  chez moi pour des prix établis sans extension . Ce n’est qu’une fonction d’affichage et ça doit être complété par une fonction qui tient compte des quantités au niveau du panier.

    Donc une fonction pour “à partir de…” (celle que je vous ai donnée) et une autre (ou bien une extension comme dans votre cas) pour moduler les prix selon les quantités dans le panier. Les deux fonctions sont indépendantes. Chez moi ce système marche bien et fait exactement ce que vous demandez. Je n’ai pas testé avec l’extension donc je ne peux pas dire mais quand je regarde vos copies d’écran c’est effectivement différent de ce que je vois chez moi sans extension et donc il est fort possible que la fonction ne puisse pas fonctionner.

    Désolé de ne pas pouvoir vous aider.

    • Cette réponse a été modifiée le il y a 1 semaine et 1 jour par ferman.
    • Cette réponse a été modifiée le il y a 1 semaine et 1 jour par ferman.
    #2343917
    rom7802
    Participant
    Initié WordPress
    4 contributions

    Momo, Ferman,

    Un très grand merci à tous les 2 pour votre aide.
    Vos ressources me sont très utiles même si pour le moment je ne parviens pas à réaliser ce que je souhaite.
    Je vous tiendrai informé si j’y arrive.

    Je vous souhaite une excellente journée,
    Merci encore 😊

     

8 sujets de 1 à 8 (sur un total de 8)
  • Vous devez être connecté pour répondre à ce sujet.