Hide Price Pro - Connectez-vous pour voir le prix, masquage des prix B2B et gros par visiteur, pays ou produit
Masquez les prix aux personnes qui ne doivent pas les voir et affichez à la place une invitation à se connecter ou votre propre texte. Choisissez une seule règle — visiteurs non connectés, pays sélectionnés ou produits sélectionnés — et le prix est retiré côté serveur avant la construction de la page : il n'atteint jamais le HTML. L'ajout au panier disparaît avec lui sur les listes, et les produits restreints sont retirés du panier côté serveur : un lien d'ajout au panier fabriqué à la main ne sert à rien. Aucun fichier core, template de thème ou override n'est touché. Conçu pour le B2B, la vente en gros et la vente sur devis. Pour PrestaShop 1.7 à 9.
Pour les boutiques où le prix n'est pas destiné à tout le monde
Des tarifs de gros que vous ne voulez pas voir lus par vos concurrents. Un catalogue que vous vendez dans certains pays mais pas dans d'autres. Des produits que l'on chiffre sur devis plutôt que d'afficher un tarif. Dans ces trois cas, la réponse est la même : montrer le produit, masquer le chiffre et donner au visiteur une raison de vous contacter ou de se connecter.
Une seule règle, choisie en connaissance de cause
La page de configuration ne propose qu'un seul choix, et non un empilement d'interrupteurs qui peuvent se contredire :
- Personne — le module est en pause, et rien n'est masqué.
- Visiteurs non connectés (tous les produits) — les visiteurs perdent le prix sur l'ensemble du catalogue.
- Visiteurs des pays sélectionnés ci-dessous (tous les produits) — tous les autres le conservent.
- Tout le monde, mais uniquement sur les produits marqués dans leur page produit, onglet Modules — masqué sur les produits que vous marquez, et nulle part ailleurs.
Les versions précédentes proposaient trois interrupteurs indépendants et l'enregistrement d'une combinaison invalide échouait purement et simplement. En faire un choix unique et exclusif signifie qu'une configuration impossible ne peut même pas être créée — et l'option Personne permet de mettre le module en pause sans jamais avoir à le désinstaller. Ouvrez l'onglet Modules d'un produit alors qu'une autre règle est active : le module vous indique clairement que ses options par produit n'ont aucun effet pour le moment, plutôt que de vous laisser régler quelque chose qui ne ferait silencieusement rien.
Le prix est retiré avant même que la page existe
C'est le point qui compte vraiment. Sur PrestaShop 1.7.5 et supérieur, le module se greffe sur actionPresentProduct et actionPresentProductListing et réécrit le produit côté serveur : show_price désactivé, chaînes de prix vidées, URL d'ajout au panier supprimée. Le prix n'atteint jamais le HTML : il ne reste donc pas dans le balisage à attendre qu'on le trouve dans le code source de la page.
Le masquage couvre tous les endroits où un prix apparaît : pages catégories, résultats de recherche, widgets de la page d'accueil — produits phares, meilleures ventes, nouveaux produits, promotions — aperçu rapide, et la page produit elle-même. Sur les pages de listes, le bouton d'ajout au panier disparaît avec le prix. Une petite couche JavaScript prend en charge les miniatures des listes et retire par précaution le balisage de prix qu'un thème inhabituel afficherait malgré tout : c'est une seconde ligne de défense, pas le mécanisme principal.
Impossible de le contourner en achetant
Masquer un prix ne vaut pas grand-chose si quelqu'un peut tout de même faire entrer le produit dans son panier. À chaque enregistrement du panier, puis de nouveau sur les pages panier et commande, les produits restreints sont supprimés côté serveur — un lien d'ajout au panier fabriqué à la main ne mène donc nulle part.
Si le pays du visiteur ne peut pas être déterminé, celui-ci est traité comme restreint. La règle échoue du côté sûr : elle ne laisse jamais fuiter un prix parce que la géolocalisation était incertaine.
Les fenêtres d'aperçu rapide sont gérées sans y toucher
Les modules d'aperçu rapide affichent les prix via leurs propres contrôleurs AJAX — précisément là où ce type de masquage fuit d'habitude. Ces requêtes sont interceptées au moment de leur répartition et l'affichage des prix du module est désactivé de force en mémoire, pour cette requête uniquement : leurs fichiers et leurs réglages en base de données ne sont jamais modifiés. Un MutationObserver nettoie les fenêtres injectées et y place votre message de remplacement, et le diagnostic liste les modules d'aperçu rapide détectés sur votre boutique.
Ce que le visiteur voit à la place
Pour les règles visiteurs non connectés et pays : un message multilingue que vous rédigez, avec en option un bouton Se connecter automatique qui ramène le visiteur au produit qu'il consultait une fois connecté.
Pour la règle produit : un champ Contenu affiché à la place du prix par produit et par langue, où le HTML est autorisé — "Demander un devis", un numéro de téléphone, un lien de contact, ce qui vous convient — ou rien du tout si vous le laissez vide.
Un diagnostic qui répond aux questions avant que vous les posiez
La page de configuration intègre un diagnostic qui reste silencieux quand tout va bien et se manifeste dans le cas contraire. Sur une boutique en bonne santé, il se contente de confirmer la Règle active, le nombre de Produits marqués, les Modules d'aperçu rapide pris en charge et l'absence de Fichiers des anciennes versions du module.
Le reste n'apparaît que lorsque cela s'applique : un avertissement si la règle par pays est active mais que la géolocalisation PrestaShop est désactivée — avec un lien direct pour l'activer, car la règle ne peut pas distinguer les visiteurs sans elle ; une note si le mode catalogue masque déjà tous les prix dans toute la boutique et rend l'effet du module invisible ; une note si votre PrestaShop est antérieur à 1.7.5 ; et un bouton Réparer maintenant si des restes de la version 1.x sont détectés. On ne vous demande pas de parcourir un mur de coches vertes pour trouver le seul point qui compte.
La version 2 a supprimé un risque de sécurité et une lourde chirurgie du core
La version 1.x s'installait en remplaçant des fichiers core — une copie de ProductListingFrontController pour chaque version de PrestaShop, plus des templates du thème classique et des overrides de classes de ps_featuredproducts, ps_bestsellers, ps_newproducts, ps_specials et ProductController. Chaque mise à jour de PrestaShop devenait alors un risque de page blanche.
La version 2.0 est une réécriture complète qui n'utilise que des hooks. Aucun fichier core, aucun template de thème, aucun override. Les mises à jour de PrestaShop ne peuvent pas le casser, puisqu'il n'y a rien de lui à l'intérieur de PrestaShop qui puisse casser.
Elle a également supprimé les écrans d'import et d'export CSV en masse, qui s'exécutaient comme des scripts autonomes sans aucune authentification — une véritable faille de sécurité, pas une hypothèse d'école. Si vous avez besoin de marquer des produits en masse, une version sécurisée en contrôleur d'administration est prévue.
La mise à jour depuis la 1.x fait le ménage derrière l'ancienne version
Remplacez le dossier et ouvrez la page Configurer du module : il détecte la mise à jour en attente et se migre sur place, en conservant votre liste de pays et vos textes par produit. Il convertit les trois anciens interrupteurs en une règle unique, restaure le contrôleur core et les templates de thème que la 1.x avait remplacés à partir des sauvegardes qu'elle avait laissées, supprime les overrides de classes résiduels, régénère l'index des classes et vide le cache des templates. Tout ce qui ne peut pas être restauré automatiquement est listé par le diagnostic avec un bouton Réparer maintenant.
Deux remarques pratiques : n'utilisez pas le bouton Mettre à jour du Gestionnaire de modules, qui ne fonctionne que pour les modules provenant d'Addons et renvoie "Could not perform action upgrade for module undefined" pour un module mis à jour sur le disque — c'est l'ouverture de la page Configurer qui constitue le chemin de mise à jour. Et n'utilisez jamais Réinitialiser, qui efface la configuration.
Compatibilité
PrestaShop 1.7 à 9, en huit langues : allemand, anglais, espagnol, français, italien, néerlandais, polonais et turc. Masquage des prix entièrement côté serveur à partir de la 1.7.5 ; sur les versions 1.7.0 à 1.7.4, les hooks du présentateur de produit n'existent pas, le masquage se rabat donc uniquement sur la couche CSS et JavaScript — le diagnostic vous indique si votre boutique est concernée. Les données par produit survivent aux modifications rapides, aux mises à jour de stock et aux enregistrements par service web, et les lignes sont supprimées automatiquement lorsqu'un produit est supprimé.
Questions fréquentes
Un visiteur déterminé peut-il encore trouver le prix dans le code source de la page ?
Non, pas sur 1.7.5 et supérieur. Le prix est retiré côté serveur avant la construction du HTML : il n'y a donc rien à trouver dans le code source.
Peut-on ajouter au panier un produit masqué avec un lien direct ?
Non. Les produits restreints sont retirés du panier côté serveur à chaque enregistrement du panier, puis de nouveau sur les pages panier et commande.
Puis-je masquer les prix uniquement aux visiteurs non connectés et les laisser visibles aux clients ?
Oui — c'est la règle visiteurs non connectés, et vous pouvez afficher un bouton Se connecter qui les ramène ensuite au produit.
Que se passe-t-il si je ne peux pas déterminer le pays d'un visiteur ?
Il est traité comme restreint. La règle échoue du côté sûr plutôt que de risquer une fuite de prix. Notez que la règle par pays exige la géolocalisation PrestaShop activée ; le diagnostic vous en avertit et renvoie directement vers le réglage.
Est-ce que cela va casser quand je mettrai PrestaShop à jour ?
Non. La version 2 ne touche aucun fichier core, template de thème ou override — elle fonctionne entièrement par les hooks, il n'y a donc rien à l'intérieur de PrestaShop qu'une mise à jour puisse casser.
Est-ce compatible avec les fenêtres d'aperçu rapide ?
Oui. Ces requêtes AJAX sont interceptées et l'affichage des prix est désactivé de force en mémoire, pour cette requête uniquement ; les fichiers et les réglages du module d'aperçu rapide ne sont jamais modifiés.
Je migre depuis la 1.x — qu'ai-je à nettoyer ?
Rien à la main. Ouvrez la page Configurer et le module se migre lui-même, restaure les fichiers core que la 1.x avait remplacés et supprime ses overrides résiduels. Passez par la page Configurer plutôt que par le bouton Mettre à jour du Gestionnaire de modules, et ne faites jamais Réinitialiser.
Mes prix sont masqués partout et je ne m'y attendais pas. Vérifiez si le mode catalogue propre à PrestaShop est activé — il masque tous les prix dans toute la boutique, indépendamment de ce module. Le diagnostic le signale lorsque c'est le cas. Et si vous voulez arrêter le module sans le désinstaller, réglez la règle sur Personne.
-
CompatibilitéPrestashop 1.7
Prestashop 8
Prestashop 9 -
Traductions de Module DisponiblesAllemand
Anglais
Espagnol
Français
Italien
Néerlandais
Polonais
Turc
MEG Venture
4 autres produits dans la même catégorie
| Version | 2.0.2 |
|---|---|
| Dernière mise à jour | 2026-07-30 |
| Journal des modifications | - [2026-07-30] Backfill missing translation keys for multiple languages in the Hide Price Pro module - [2026-07-24] Add Polish and Turkish translations for Hide Price Pro module settings and messages - [2026-07-23] Bump version to 2.0.2 and update changelog to document upgrade fix for module stability - [2026-07-23] Translate module strings in Turkish for Hide Price Pro, updating messages related to pricing visibility, settings, and user prompts to enhance clarity for Turkish-speaking users. - [2026-07-23] Populate translation files with complete translatable strings - [2026-07-23] Populate translation files with complete translatable strings - [2026-07-23] Populate translation files with complete translatable strings - [2026-07-23] Populate translation files with complete translatable strings - [2026-07-23] Populate translation files with complete translatable strings - [2026-07-23] Add missing translation files (fr, de, pl, nl, tr, it, es) - [2026-07-09] fix: Update README and PHP display name for consistency in module title - [2026-07-09] feat: Add Hide Price Pro module with configuration and front-end functionality - [2026-06-21] feat: Add custom price handling to ProductListingFrontController - [2023-10-02] Update customprice.php - [2023-09-17] v1.5.5 - [2023-09-05] v1.5.3 - [2022-09-27] upgrades for the productlistingfront controller - [2022-05-22] v1.5.2 - [2022-02-19] v1.5.2 - [2021-07-22] v1.5.1 - [2021-02-21] Custom price field save fix - [2020-10-19] First release of v1.5.0 - [2020-10-19] Initial commit |
Commentaires (2)
Votre avis ne peut pas être envoyé
Signaler le commentaire
Signalement envoyé
Votre signalement ne peut pas être envoyé