WooFrance Dépannage et support WordPress WooCommerce Forums Forum de Support WooCommerce Afficher prix min de toutes les variations et prix min d’un attribut

Affichage de 1 message (sur 1 au total)
  • Auteur
    Messages
  • #168075
    RICARDO
    Participant
    Points: 19 pts

    Bonjour à tous,

    Je suis en train de créer un site marchand sur WooCommerce.

    Je vends des produits en location ET en achat comptant.

    Mes produits sont variables et ont plusieurs attributs: dimensions, couleurs, finitions, type d’achat (location 36 mois, location 60 mois, achat comptant).

    Dans le Front de ma boutique et dans mes pages produits, dans la partie prix, je souhaite pouvoir afficher: “à partir de xx€/mois ou xx€ en achat comptant”.

    J’ai réussi à avoir le résultat recherché seulement pour la 1ère partie, “à partir de xx€/mois”, qui correspond au plus faible prix en location 60 mois.

    Pour la 2ème partie, j’arrive grâce à un bout de code récupéré et modifié à afficher le prix max de la variation la plus chère. Mais je souhaite afficher le prix minimum de la variation ayant comme attribut “achat comptant” la moins chère.

    Existe t’il une écriture permettant d’afficher le prix minimum d’un attribut spécifique et non de toutes les variations possibles?

    Ci-dessous le code que j’utilise actuellement.

    Merci infiniment.

    /* 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', $achat_comptant = true );
    
    // Si les prix sont différents on affiche "À partir de ..."
    if ($min_price != $max_price){
    $price = sprintf( __( 'A partir de %1$s /mois ou %2$s', 'woocommerce' ), wc_price( $min_price ), wc_price( $max_price) );
    return $price;
    // Sinon on affiche juste le prix
    } else {
    $price = sprintf( __( 'A partir de %1$s /mois', 'woocommerce' ), wc_price( $min_price ) );
    return $price;
    }
    }

    From Tangrer

    depanagewp
Affichage de 1 message (sur 1 au total)
  • Vous devez être connecté pour répondre à ce sujet.