From f278eafefb17310af6a41f49f87915a705a511c9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=A9mie=20Samson?= Date: Wed, 26 Aug 2026 10:32:45 +0200 Subject: [PATCH 1/2] feat(support): show the support banner only after real usage The banner already required an install older than 7 days, a created page and at least one link, but all of those only prove the plugin was configured, not that the page is used. Gate it behind 50 cumulated clicks so it reaches active installs only. --- CLAUDE.md | 14 ++++++++++++++ includes/class-biolinks-admin.php | 7 ++++++- 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/CLAUDE.md b/CLAUDE.md index a94d57a..390aa8c 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -47,6 +47,20 @@ Structure du zip : - Anchor text simple "BioLinks" pour éviter over-optimization. - Estimation : 10-20% d'activation volontaire × 30% sites DA>10 = 3-6% d'installations génèrent backlink qualifié. +## Bannière de support (conditions d'affichage) + +`BioLinks_Admin::should_show_support_banner()` cumule cinq conditions, toutes obligatoires : + +1. `support_dismissed` non posé (le bouton « I already left a review » le pose définitivement) ; +2. `support_snooze_until` dépassé (« Maybe later » repousse de 14 jours) ; +3. au moins 7 jours depuis `activated_at` ; +4. une page BioLinks créée (`page_id`) et au moins un lien configuré ; +5. **au moins `SUPPORT_MIN_CLICKS` clics cumulés** (50), lus via `BioLinks_DB::get_total_clicks()`. + +Le critère 5 est le seul qui mesure l'usage réel plutôt que la configuration : une install qui a créé sa page puis l'a abandonnée ne verra jamais la bannière. Seuil volontairement au-dessus du bruit d'auto-tests de l'administrateur. + +Contrainte WP.org rappelée : aucune récompense fonctionnelle ni manipulation en échange d'un avis, et le compteur reste local (le plugin est zero-network). + ## Gotcha LiteSpeed (instance nomadesurrails.fr) Les pages BioLinks standalone sont cassées visuellement en Guest Mode LiteSpeed (Combine/Async/Critical CSS supprime le CSS du template). **Obligation** : ajouter chaque slug d'instance BioLinks à l'option `optm-exc` : diff --git a/includes/class-biolinks-admin.php b/includes/class-biolinks-admin.php index 60151d3..a08f036 100644 --- a/includes/class-biolinks-admin.php +++ b/includes/class-biolinks-admin.php @@ -7,6 +7,8 @@ class BioLinks_Admin { + private const SUPPORT_MIN_CLICKS = 50; + public function __construct() { add_action('admin_menu', [$this, 'add_menu']); @@ -450,7 +452,10 @@ private function should_show_support_banner(array $config, array $links): bool if ((int) ($config['page_id'] ?? 0) <= 0) { return false; } - return count($links) >= 1; + if (count($links) < 1) { + return false; + } + return BioLinks_DB::get_total_clicks() >= self::SUPPORT_MIN_CLICKS; } private function render_support_banner(array $config): void From de071bce27a4f8960b3d801a659b6fdd8cc65afd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=A9mie=20Samson?= Date: Wed, 2 Sep 2026 12:00:34 +0200 Subject: [PATCH 2/2] feat(support): lower the usage threshold to 25 clicks Measured on the live demo: only 41 clicks were actually logged over five months, so a 50 click gate would almost never open on a regular install. --- CLAUDE.md | 4 +++- includes/class-biolinks-admin.php | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/CLAUDE.md b/CLAUDE.md index 390aa8c..576c38b 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -55,10 +55,12 @@ Structure du zip : 2. `support_snooze_until` dépassé (« Maybe later » repousse de 14 jours) ; 3. au moins 7 jours depuis `activated_at` ; 4. une page BioLinks créée (`page_id`) et au moins un lien configuré ; -5. **au moins `SUPPORT_MIN_CLICKS` clics cumulés** (50), lus via `BioLinks_DB::get_total_clicks()`. +5. **au moins `SUPPORT_MIN_CLICKS` clics cumulés** (25), lus via `BioLinks_DB::get_total_clicks()`. Le critère 5 est le seul qui mesure l'usage réel plutôt que la configuration : une install qui a créé sa page puis l'a abandonnée ne verra jamais la bannière. Seuil volontairement au-dessus du bruit d'auto-tests de l'administrateur. +Calibrage du seuil (mesuré le 2026-09-02 sur la démo `nomadesurrails.fr/linkedtree/`) : 41 clics réellement logués en 5 mois sur un site à ~101 articles, le reste des 137 `click_count` venant de l'import Click Tracker v2. Un seuil à 50 n'aurait donc quasiment jamais été atteint par une install ordinaire, d'où 25. + Contrainte WP.org rappelée : aucune récompense fonctionnelle ni manipulation en échange d'un avis, et le compteur reste local (le plugin est zero-network). ## Gotcha LiteSpeed (instance nomadesurrails.fr) diff --git a/includes/class-biolinks-admin.php b/includes/class-biolinks-admin.php index a08f036..b9eefbd 100644 --- a/includes/class-biolinks-admin.php +++ b/includes/class-biolinks-admin.php @@ -7,7 +7,7 @@ class BioLinks_Admin { - private const SUPPORT_MIN_CLICKS = 50; + private const SUPPORT_MIN_CLICKS = 25; public function __construct() {