[Résolu] Variables pour le prix d’un produit

  • WordPress :5.2
  • Statut : résolu
15 sujets de 1 à 15 (sur un total de 22)
  • Auteur
    Messages
  • #2274795
    Manue1
    Participant
    Initié WordPress
    47 contributions

    Bonjour,

    Ma configuration WP actuelle :

    • Version de PHP/MySQL : 7.2
    • Thème utilisé : StoreFront
    • Extensions en place : WooCommerce
    • Nom de l’hébergeur : Infomaniak
    • Adresse du site : https://emmanuelle-ojeda.com

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

    Je souhaiterais que s’affiche pour tous les articles cette possibilité :

    En priorité : Le prix qui est généré avec l’option “Produit simple” (dans mon cas, il s’agit d’un original)

    Plus bas : Le menu déroulant qui est généré avec l’option “Produit variable” (dans mon cas, des reproductions)

    D’autre part, j’ai constaté que l’UGS s’affiche dans la liste des caractéristiques.

    Quel script PHP faut-il insérer pour y remédier et où faut-il le coller ?.

    Merci beaucoup !!.

    Manue

     

    #2274826
    momofr@free.fr
    Modérateur
    Maître WordPress
    2582 contributions

    Salut, je ne comprend pas trop ton principe produit, à priori il y en a 2 : l’original, la reproduction. Ils pourraient être au sein d’un même produit variable mais ça semble ne pas te convenir.

    Soit tu utilises le module produits apparentés ou les proudits liés pour afficher les reproductions en bas de page de l’original, soit tu construits ta propre page modèle de produit avec les critères que tu recherches car là ça sort de la logique globale de WooCommerce.

    Pour l’UGS cette règle CSS suffit à le masquer :

    .sku_wrapper {display: none !important;}

    #2274875
    Manue1
    Participant
    Initié WordPress
    47 contributions

    Bonjour Momo et merci beaucoup pour ce code,

    Je pensais avoir téléchargé un visuel pour que ce soit plus explicite, je recommence donc.

    Le système “Produit variable” me convient très bien à un détail près : il affiche le prix des reproductions (voir pièce jointe).

    Est-il possible que cette option privilégie en premier lieu le prix d’un unique exemplaire (on l’obtient en “Produit simple”) tout en conservant le menu déroulant ?.

    ;- )

    Manue

     

     

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

    Salut, l’affichage de la fourchette de prix des produits variables peut être modifié pour afficher “A partir de” avec ce code dans le fichier functions.php de ton thème enfant ou avec l’extension Code Snipet (par exemple) :

    // Utiliser les variables pour le format des prix WC 2.0
    add_filter('woocommerce_variable_sale_price_html', 'wc_wc20_variation_price_format', 10, 2);
    add_filter('woocommerce_variable_price_html', 'wc_wc20_variation_price_format', 10, 2);
    function wc_wc20_variation_price_format($price, $product)
    {
        $min_price = $product->get_variation_price('min', true);
        $max_price = $product->get_variation_price('max', true);
        if ($min_price != $max_price) {
            $price = sprintf(__('A partir de %1$s', 'woocommerce'), wc_price($min_price));
            return $price;
        } else {
            $price = sprintf(__('%1$s', 'woocommerce'), wc_price($min_price));
            return $price;
        }
    }

    Cette boutique utilise ce snippet.

    #2275269
    Manue1
    Participant
    Initié WordPress
    47 contributions

    Bonjour Momo,

    Je n’ai pas trouvé l’emplacement du fichier functions.php.

    Sinon, je me demandais une chose : si j’intervertis les lignes 6 et 7 puis-je obtenir un affichage de prix decrescendo ?.

    Est-il possible de se passer des lignes 8 à 13 ?.

    La fourchette de prix qui sera affichée pour un article ne pourra pas occasionner d’alternatives du genre min = max.

    Merci beaucoup.

    ; – )

     

    Si c’est le cas, ce n’est pas possible dans le domaine en question.

    • Cette réponse a été modifiée le il y a 3 weeks et 1 jour par  Manue1.
    #2275271
    momofr@free.fr
    Modérateur
    Maître WordPress
    2582 contributions

    Salut, si tu as un thème enfant il doit contenir ce fichier, sinon installe Code Snippet et créé un snippet avec ce code.

    #2275272
    ferman
    Participant
    Maître WordPress
    1010 contributions

    Bonjour,

    Travaillez-vous avec un thème enfant? Sinon, il faut commencer par en créer un (et créer un nouveau sujet sur le forum: comment créer un thème enfant).

    Le fichier  functions.php (du thème enfant, donc) est accessible par ftp. Il faut le transférer sur son PC, puis ajouter le code transmis dans la réponse précédente par @momofr@free.fr.

    Si vous faites la modification dans function.php du thème parent, c’est possible mais il faudra tout recommencer après la prochaine mis à jour du thème.

    Cela étant dit, vous ne pouvez pas supprimer des lignes dans le code et si vous intervertissez les  lignes 6 et 7, ça ne changera rien.  Vous pouvez par contre modifier les lignes 9 et 10. Dans l’exemple ci-dessous, on part du prix de départ maxi et on indique le prix mini.  Vous pouvez modifier comme vous l’entendez  par ex. “A partir de : le prix maximum” (mais ce serait bizarre:on attend plutôt une variation de prix ascendante).

    “La fourchette de prix qui sera affichée pour un article ne pourra pas occasionner d’alternatives du genre min = max. Je ne saisis pas très bien mais en tout cas, la ligne 8 est là pour que les modifications ne se fassent que s’il y a un prix maximum et un prix minimum (donc des variations).

     

    $price = sprintf(__('A partir de %1$s jusqu\'à %2$s', 'woocommerce'), wc_price($max_price), wc_price ($min_price));
            return $price;

     

    #2275274
    momofr@free.fr
    Modérateur
    Maître WordPress
    2582 contributions

    Salut, le code reprend l’ancienne présentation des prix de variations, c’est dire qu’il n’y plus de fourchette mais seulement le prix “A partir de” (donc le prix le plus bas).

    #2275489
    Manue1
    Participant
    Initié WordPress
    47 contributions

    Bonjour,

    Je n’avais pas vu le lien vers cet autre site. C’est un bon modèle. Merci.

    Finalement, j’ai trouvé le fichier functions.php , je l’indique pour d’autres :

    Apparence – Editeur de thème – Fonctions du thème (à droite).

    Je vais plutôt installer l’extension “Code snippet”, c’est plus sécurisant d’ajouter du code de cette manière, même dans un thème enfant.

    “Vous pouvez modifier comme vous l’entendez  par ex. “A partir de : le prix maximum” 

    D’accord, il faut que je trouve une formule pour remplacer toute cette phrase.

    Merci beaucoup et bonne journée.

    Manue

    : -)

     

    #2275530
    Manue1
    Participant
    Initié WordPress
    47 contributions

    Bonjour Momo,

    Je suis obligée de revenir car j’ai trouvé un code PHP sans fourchette de prix (c’est mieux dans mon cas).

    Le hic étant que j’ai voulu le tester sur un site mais cela ne fonctionne pas.

    /* 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 voudrais savoir si je peux intervertir “min” et “max” pour obtenir un affichage decrescendo et si oui à quels emplacements ?.

    Vraiment merci beaucoup.

    ; -)

    • Cette réponse a été modifiée le il y a 2 weeks et 6 jours par  Manue1.
    • Cette réponse a été modifiée le il y a 2 weeks et 6 jours par  Manue1.
    • Cette réponse a été modifiée le il y a 2 weeks et 6 jours par  Manue1.
    #2275537
    ferman
    Participant
    Maître WordPress
    1010 contributions

    Bonjour,

    Je ne sais pas si vous avez bien fait attention mais le code que vous avez trouvé est exactement le même que celui que @momofr@free.fr vous avait donné. Et donc, comme je vous le disais ,vous pouvez modifier les lignes (ici 12 et 16) et en particulier remplacer $min_price par $max_price. Cela vous écrira “à partir de 100€ (par ex) les autres prix étant plus bas. Personnellement, je trouve ça bizarre.

    Et ça doit fonctionner.

    #2276716
    Manue1
    Participant
    Initié WordPress
    47 contributions

    Bonjour et merci Ferman,

    Désolée, je n’avais pas fait attention au fait que je postais un doublon.

    Je vais essayer ce code.

    Je comprends qu’un affichage decrescendo puisse surprendre.

    Cependant, dans le domaine en question, l’achat d’un original est une démarche prioritaire chez les amateurs d’art.

    Si j’insère une formule du genre : “A partir de l’original”, c’est dans l’ordre des choses dans ce secteur.

    ; – )

     

    #2276978
    Manue1
    Participant
    Initié WordPress
    47 contributions

    Bonjour Ferman ou Momo,

    Merci à vous deux !!.

    Le code fonctionne parfaitement et le remplacement de “min” par “max” aussi.

    Mon site est bientôt terminé mais j’ai encore quelques difficultés.

    Je me demande si je peux ajouter un mot avec apostrophe dans un code PHP ?.

    Mon souhait serait de transformer la formule : “A partir de”  en  “A partir de l’original”.

    J’ai essayé mais cette modification ne s’applique pas.

    ??

    ;- )

    #2276979
    momofr@free.fr
    Modérateur
    Maître WordPress
    2582 contributions

    Salut, utilise un guillemet courbe ’ au lieu d’un guillemet droit.

    #2276986
    ferman
    Participant
    Maître WordPress
    1010 contributions

    Bonjour,

    Autrement il faut “échapper” l’apostrophe comme c’est fait  pour jusqu\’à au lieu de jusqu’à  (voir réponse #2275272 plus haut). Donc l\’original au lieu de l’original.

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