Install
This is the repository archive. It installs, but the folder name will carry the branch suffix and updates will not flow.
Install straight from GitHub with WP-CLI:
wp plugin install https://github.com/khalil-laajine/quantyss-core/archive/refs/heads/main.zipPlugin WordPress sur mesure pour quantyss.com
Développé et maintenu par Khalil LAAJINE (https://novasiteweb.fr)
Sommaire
- Description
- Fonctionnalités
- Architecture
- Installation
- Dépendances
- Modules
- Shortcodes
- Hooks & Filtres
- Base de données
- Crons planifiés
- Roadmap
- Conventions de code
- Changelog
Description
Quantyss Core est un plugin WordPress sur mesure qui regroupe l'ensemble des outils développés spécifiquement pour le site Quantyss. Il remplace une dizaine de plugins tiers par des briques métier cohérentes, performantes et entièrement contrôlées.
Fonctionnalités
| Module | Description | Statut |
|---|---|---|
| Slider Articles | Shortcode + Widget Elementor, multilingue Polylang | ✅ v1.0.0 |
| Dashboard CEO | KPIs, graphiques, derniers articles | ✅ v1.0.0 |
| Stats GA4 | Sessions, utilisateurs, taux de rebond, sources | ✅ v1.0.0 |
| Gestion des Leads | Capture CF7, BDD, pipeline, export CSV | ✅ v1.0.0 |
| Lead Magnet | Formulaire, token sécurisé, email, téléchargement | ✅ v1.0.0 |
| Logs de sécurité | Activité site, anti brute-force | ✅ v1.0.0 |
| Performance | Désactivation emoji, lazy load, nettoyage BDD | ✅ v1.0.0 |
| SEO Technique | Meta tags, JSON-LD, canonical, sitemap | ✅ v1.0.0 |
| Monitoring Uptime | Check toutes les 5 min, alertes email | ✅ v1.0.0 |
| Rapport mensuel | PDF auto généré et envoyé le 1er du mois | ✅ v1.0.0 |
Architecture
quantyss-core/
├── quantyss-core.php # Fichier principal — déclaration plugin
├── composer.json # Dépendances PHP (Google Analytics)
├── vendor/ # Autoload Composer (gitignored)
├── scripts/
│ └── generate-report.py # Générateur PDF rapport mensuel (Python)
├── assets/
│ ├── css/
│ │ ├── slider.css # Styles slider front-end
│ │ └── lead-magnet.css # Styles formulaire lead magnet
│ └── pdfs/
│ └── .htaccess # Bloc accès direct aux PDFs
└── includes/
├── enqueue.php # Enregistrement assets Swiper
├── slider.php # Shortcode [slider_quantyss]
├── leads-handler.php # Interception CF7 + BDD + email
├── elementor/
│ ├── elementor-init.php # Init widgets Elementor
│ └── widgets/
│ └── slider-widget.php # Widget Elementor slider
├── admin/
│ ├── dashboard.php # Page admin principale — KPIs
│ ├── dashboard-style.css
│ ├── stats.php # Page stats GA4
│ ├── stats-style.css
│ ├── leads.php # Page gestion leads
│ ├── leads-style.css
│ ├── lead-magnet-admin.php # Page gestion lead magnets
│ └── monthly-report.php # Cron + génération rapport PDF
└── tools/
├── security-logs.php # Logs activité + brute force
├── performance.php # Optimisations silencieuses
├── seo.php # SEO technique automatique
├── uptime.php # Monitoring disponibilité
├── lead-magnet.php # Shortcodes + téléchargement
└── monthly-report.php # Rapport PDF mensuel
Installation
Prérequis
- WordPress 6.0+
- PHP 8.0+
- Composer (pour l'intégration GA4)
- Python 3.8+ avec
reportlabetpypdf(pour les rapports PDF) - Plugins requis : Elementor, Contact Form 7, Polylang
Étapes
# 1. Cloner dans le dossier plugins
cd wp-content/plugins/
git clone https://github.com/tonpseudo/quantyss-core.git
# 2. Installer les dépendances PHP (GA4)
cd quantyss-core
composer install
# 3. Installer les dépendances Python (rapport PDF)
pip install reportlab pypdf --break-system-packages
# 4. Activer dans WordPress → Extensions
Configuration post-activation
- GA4 — Aller dans Quantyss → Statistiques et configurer le Property ID + credentials JSON
- Lead Magnet — Aller dans Quantyss → Lead Magnets et créer le premier guide
- Rapport mensuel — Le premier rapport sera envoyé automatiquement le 1er du mois suivant. Utiliser le bouton "Générer maintenant" dans le dashboard pour un test immédiat.
Dépendances
PHP / Composer
| Package | Version | Usage |
|---|---|---|
google/analytics-data |
^0.9 | API Google Analytics 4 |
JavaScript (CDN)
| Librairie | Version | Usage |
|---|---|---|
| Swiper.js | 11 | Slider articles |
| Chart.js | 4 | Graphiques dashboard |
Python
| Package | Usage |
|---|---|
reportlab |
Génération PDF rapport mensuel |
pypdf |
Manipulation PDF |
Modules
Slider Articles
Affiche les derniers articles de blog dans un carousel Swiper.js responsive. Gère automatiquement la langue courante via Polylang.
// Shortcode
[slider_quantyss posts="6" category="ia"]
// Via Widget Elementor : glisser-déposer depuis la catégorie "Quantyss"
Options shortcode :
| Paramètre | Défaut | Description |
|-----------|--------|-------------|
| posts | 6 | Nombre d'articles |
| category | — | Slug de catégorie |
Dashboard CEO
Page admin accessible via Quantyss → Dashboard.
KPIs affichés :
- Articles publiés / en brouillon / ce mois
- Pages publiées
- Commentaires totaux / en attente
- Utilisateurs inscrits
- Graphique publications sur 6 mois
- Tableau des 8 derniers articles
Stats GA4
Page admin accessible via Quantyss → Statistiques.
Métriques disponibles :
- Sessions, utilisateurs, taux de rebond, durée moyenne session
- Graphique sessions sur 30 jours
- Sources de trafic (doughnut chart)
- Sélecteur de période : 7j / 30j / 90j
Configuration requise :
- Compte de service Google Cloud avec accès en lecture à la propriété GA4
- Fichier JSON credentials uploadé dans l'interface
Gestion des Leads
Capture automatique des soumissions Contact Form 7.
Champs collectés : prénom, nom, email, téléphone, entreprise, message
Mapping CF7 (à adapter selon les noms de champs du formulaire) :
// Dans includes/leads-handler.php — fonction quantyss_catch_cf7_submission()
$first_name = $data['first-name'] ?? $data['your-name'] ?? '';
$email = $data['your-email'] ?? $data['email'] ?? '';
// etc.
Statuts disponibles : Nouveau → En cours → Qualifié → Archivé
Export CSV : Bouton dans Quantyss → Leads
Lead Magnet
Système de distribution de guides PDF contre email.
Flow :
Visiteur → Formulaire email → Token (24h) → Email → Téléchargement sécurisé → Lead en BDD
Shortcodes :
// Bouton CTA dans un article
[lead_magnet id="1" label="Télécharger le guide"]
// Formulaire complet (page dédiée)
[lead_magnet_form id="1"]
Sécurité : Les PDFs sont stockés hors du webroot public (assets/pdfs/ + .htaccess).
L'accès se fait uniquement via token temporaire unique.
SEO Technique
S'active automatiquement uniquement si Yoast SEO et Rank Math sont absents.
Fonctionnalités :
- Balises
<meta name="description">générées depuis le contenu - Open Graph (og:title, og:description, og:image, og:url)
- Twitter Cards
- JSON-LD Article (posts) et Organization (homepage)
- Canonical URL
- Sitemap XML à
yoursite.com/quantyss-sitemap.xml
Monitoring Uptime
Vérifie la disponibilité du site toutes les 5 minutes via WordPress Cron.
Alertes : Email envoyé si le site est hors ligne — 1 alerte max toutes les 30 minutes.
Historique : 288 points conservés = 24h de données.
Rapport Mensuel PDF
Généré et envoyé automatiquement le 1er de chaque mois à 8h.
Contenu du rapport :
- Page de couverture branded
- KPIs : articles, leads, téléchargements, uptime
- Tableau leads par source et par statut
- Tableau sécurité
- Liste des articles publiés dans le mois
Génération manuelle : Bouton "Générer maintenant" dans le dashboard.
Stockage : wp-content/uploads/quantyss-reports/rapport-YYYY-MM.pdf
Shortcodes
| Shortcode | Description | Paramètres |
|---|---|---|
[slider_quantyss] |
Slider articles | posts, category |
[lead_magnet] |
Bouton CTA lead magnet | id, label |
[lead_magnet_form] |
Formulaire téléchargement | id |
Hooks & Filtres
Actions utilisées
| Hook WordPress | Fonction Quantyss | Description |
|---|---|---|
wp_enqueue_scripts |
quantyss_enqueue_assets |
Enregistrement Swiper |
wpcf7_mail_sent |
quantyss_catch_cf7_submission |
Capture leads CF7 |
wp_login |
quantyss_log_login |
Log connexions |
wp_login_failed |
quantyss_log_failed_login |
Log tentatives échouées |
save_post |
quantyss_log_post_save |
Log modifications articles |
activated_plugin |
quantyss_log_plugin_activated |
Log plugins activés |
quantyss_uptime_check |
quantyss_run_uptime_check |
Check uptime (cron) |
quantyss_db_cleanup |
quantyss_run_db_cleanup |
Nettoyage BDD (cron) |
quantyss_monthly_report |
quantyss_generate_monthly_report |
Rapport PDF (cron) |
Filtres utilisés
| Filtre WordPress | Fonction Quantyss | Description |
|---|---|---|
cron_schedules |
quantyss_add_cron_interval |
Ajoute interval 5min |
cron_schedules |
quantyss_add_monthly_interval |
Ajoute interval mensuel |
wp_get_attachment_image_attributes |
quantyss_add_lazy_load |
Lazy load images |
xmlrpc_enabled |
__return_false |
Désactive XML-RPC |
query_vars |
quantyss_sitemap_query_var |
Var sitemap |
Base de données
{prefix}_quantyss_leads
| Colonne | Type | Description |
|---|---|---|
id |
BIGINT PK | Identifiant |
first_name |
VARCHAR(100) | Prénom |
last_name |
VARCHAR(100) | Nom |
email |
VARCHAR(150) | |
phone |
VARCHAR(30) | Téléphone |
company |
VARCHAR(150) | Entreprise |
message |
TEXT | Message |
status |
VARCHAR(30) | new / in_progress / qualified / archived |
source |
VARCHAR(100) | cf7 / lead_magnet / manual |
created_at |
DATETIME | Date de création |
{prefix}_quantyss_logs
| Colonne | Type | Description |
|---|---|---|
id |
BIGINT PK | Identifiant |
user_id |
BIGINT | ID utilisateur WordPress |
username |
VARCHAR(100) | Login utilisateur |
action |
VARCHAR(100) | Type d'action |
object |
VARCHAR(200) | Objet concerné |
ip |
VARCHAR(45) | Adresse IP |
user_agent |
VARCHAR(255) | User agent |
created_at |
DATETIME | Date |
{prefix}_quantyss_magnet_tokens
| Colonne | Type | Description |
|---|---|---|
id |
BIGINT PK | Identifiant |
email |
VARCHAR(150) | Email du téléchargeur |
token |
VARCHAR(64) UNIQUE | Token sécurisé (bin2hex 32 bytes) |
magnet_id |
BIGINT | ID du lead magnet |
downloaded |
TINYINT(1) | 0 = pas encore, 1 = téléchargé |
expires_at |
DATETIME | Expiration (24h) |
created_at |
DATETIME | Date de création |
Options WordPress utilisées
| Option | Description |
|---|---|
quantyss_ga4_property_id |
Property ID GA4 |
quantyss_ga4_credentials_path |
Chemin vers le fichier JSON Google |
quantyss_magnets |
Array JSON des lead magnets |
quantyss_magnet_page_id |
ID de la page de téléchargement |
quantyss_uptime_history |
Historique uptime (288 entrées) |
quantyss_perf_history |
Historique temps de chargement (200 entrées) |
quantyss_last_report |
Métadonnées du dernier rapport PDF |
quantyss_db_version |
Version du schéma BDD |
Crons planifiés
| Cron | Fréquence | Action |
|---|---|---|
quantyss_uptime_check |
Toutes les 5 min | Vérification disponibilité |
quantyss_db_cleanup |
Hebdomadaire | Nettoyage BDD (révisions, transients, spam) |
quantyss_monthly_report |
Mensuel (1er à 8h) | Génération et envoi rapport PDF |
Note : Les crons WordPress ne s'exécutent qu'en présence de trafic. Sur un site à faible trafic, configurer un vrai cron serveur :
# crontab -e */5 * * * * curl -s https://quantyss.com/wp-cron.php?doing_wp_cron > /dev/null
Roadmap
- [ ] Système de testimonials (Custom Post Type + shortcode + widget Elementor)
- [ ] Notifications Slack nouveaux leads
- [ ] Widget Elementor pour le formulaire de contact
- [ ] Export leads vers CRM externe (HubSpot, Pipedrive)
- [ ] Tableau de bord mobile-first (PWA)
- [ ] Tests unitaires (PHPUnit)
Conventions de code
Commits
feat: nouvelle fonctionnalité
fix: correction de bug
style: CSS, mise en forme
refactor: restructuration sans changement de comportement
docs: documentation
chore: maintenance, dépendances, gitignore
perf: optimisation performance
security: correctif sécurité
PHP
- Nommage fonctions :
quantyss_nom_de_la_fonction() - Nommage classes :
Quantyss\Widgets\NomDeLaClasse - Toujours
defined('ABSPATH') || exit;en début de fichier - Toujours
sanitize_*etesc_*sur les données entrantes/sortantes - Nonces sur tous les formulaires admin
wp_verify_nonce()avant tout traitement POST
JavaScript
- Vanilla JS ou Swiper uniquement côté front
- Pas de jQuery sauf si WordPress l'impose
Changelog
v1.0.0 — 2025
feat: init plugin Quantyss Corefeat: slider shortcode multilingue Polylang + Swiperfeat: widget Elementor natif slider articlesfeat: dashboard admin KPIs + graphique Chart.jsfeat: intégration stats GA4 (sessions, sources, bounce rate)feat: système gestion leads — capture CF7, BDD, pipeline, CSVfeat: système lead magnet — token sécurisé, email, téléchargementfeat: logs sécurité + protection brute forcefeat: optimisations performance silencieusesfeat: SEO technique automatique (meta, JSON-LD, sitemap)feat: monitoring uptime toutes les 5 minutesfeat: rapport PDF mensuel automatique
Licence
GPL-2.0+ — Voir LICENSE.txt
Plugin développé sur mesure pour Quantyss. Non distribué publiquement.