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/probe311/temoignage/archive/refs/heads/master.zipNo built-in updater. New versions won't appear under Dashboard → Updates. Install new releases yourself, or let Git Updater track the repository.
Plugin Témoignages WordPress
Un plugin WordPress complet pour la gestion des témoignages avec formulaire de soumission et affichage en masonry.
🎯 Fonctionnalités
Frontend
- Formulaire de soumission avec validation
- Affichage masonry des témoignages validés
- Chargement AJAX pour "Lire plus de témoignages"
- Design campagne politique (bleu, blanc, rouge)
- Interface responsive et accessible
Backend
- CPT "Témoignage" avec statuts personnalisés
- Validation manuelle des témoignages
- Métaboxes personnalisées pour les détails
- Colonnes personnalisées dans la liste admin
- Pages d'administration : Documentation, Statistiques, Shortcodes
📋 Prérequis
- WordPress 5.0 ou supérieur
- PHP 7.4 ou supérieur
- jQuery (inclus avec WordPress)
🚀 Installation
- Télécharger le plugin dans le dossier
/wp-content/plugins/ - Activer le plugin via l'interface WordPress
- Configurer les shortcodes sur vos pages
📝 Utilisation
Shortcodes disponibles
Formulaire de témoignage
[temoinage_form title="Témoignez vous aussi votre soutien!"]
Paramètres :
title: Titre du formulaire (optionnel)
Liste des témoignages
[temoinage_list title="Un élan populaire pour Bordeaux" posts_per_page="5"]
Paramètres :
title: Titre de la section (optionnel)posts_per_page: Nombre de témoignages par page (optionnel, défaut: 5)
Structure des données
Champs du formulaire
- Prénom (obligatoire)
- Nom (obligatoire)
- Fonction (optionnel)
- Message (obligatoire)
Statuts des témoignages
- À valider : Témoignages soumis en attente de validation
- En ligne : Témoignages validés et visibles publiquement
🎨 Personnalisation
Styles CSS
Le plugin utilise des variables CSS pour faciliter la personnalisation :
:root {
--primary-color: #1e3a8a; /* Bleu principal */
--secondary-color: #3b82f6; /* Bleu secondaire */
--accent-color: #dc2626; /* Rouge accent */
--background-color: #ffffff; /* Blanc */
--border-color: #e5e7eb; /* Gris clair */
--text-color: #1f2937; /* Gris foncé */
--text-light: #6b7280; /* Gris moyen */
--success-color: #059669; /* Vert succès */
--error-color: #dc2626; /* Rouge erreur */
}
Classes CSS principales
Formulaire
.temoinage-form-container: Container principal du formulaire.temoinage-form: Formulaire de soumission.form-row: Ligne avec deux colonnes.form-group: Groupe de champs.temoinage-submit-btn: Bouton de soumission
Liste des témoignages
.temoinage-list-container: Container principal de la liste.temoinage-masonry: Grille masonry.temoinage-card: Carte individuelle de témoignage.temoinage-author: Section auteur.temoinage-message: Contenu du témoignage.temoinage-load-more-btn: Bouton "Lire plus"
🔧 Administration
Gestion des témoignages
- Accéder à "Témoignages" dans le menu WordPress
- Voir la liste des témoignages avec colonnes personnalisées
- Modifier les détails via les métaboxes
- Approuver/Rejeter avec les boutons d'action rapide
Pages d'administration
Documentation
- Guide complet d'installation et configuration
- Documentation des shortcodes
- Intégration avec Divi Builder
- Personnalisation et support
Statistiques
- Vue d'ensemble des témoignages
- Compteurs en temps réel
- Alertes pour témoignages à valider
Shortcodes
- Documentation des shortcodes disponibles
- Exemples d'utilisation
- Paramètres configurables
- Intégration Divi Builder
Actions rapides
Approuver un témoignage
// Via AJAX
$.ajax({
url: temoinage_admin.ajax_url,
type: 'POST',
data: {
action: 'approve_temoinage',
nonce: temoinage_admin.nonce,
post_id: postId
}
});
Rejeter un témoignage
// Via AJAX
$.ajax({
url: temoinage_admin.ajax_url,
type: 'POST',
data: {
action: 'reject_temoinage',
nonce: temoinage_admin.nonce,
post_id: postId
}
});
🔒 Sécurité
Mesures implémentées
- Nonces WordPress pour toutes les actions AJAX
- Sanitisation des données d'entrée
- Validation côté client et serveur
- Permissions utilisateur vérifiées
- Protection CSRF intégrée
Bonnes pratiques
- Utilisation des fonctions WordPress natives
- Échappement des données de sortie
- Validation des permissions utilisateur
- Gestion sécurisée des fichiers
📱 Responsive Design
Breakpoints
- Mobile : < 480px
- Tablet : 480px - 768px
- Desktop : > 768px
Adaptations
- Grille masonry responsive
- Formulaire en colonnes sur mobile
- Boutons adaptés au tactile
- Typographie scalable
♿ Accessibilité
Fonctionnalités
- Navigation clavier complète
- ARIA labels et rôles
- Focus management amélioré
- Contraste conforme WCAG
- Lecteurs d'écran compatibles
Raccourcis clavier
- Ctrl/Cmd + Enter : Soumettre le formulaire
- Ctrl/Cmd + S : Sauvegarder (admin)
- Échap : Fermer les modales
- Tab : Navigation entre champs
🚀 Performance
Optimisations
- Lazy loading des images
- Debouncing des recherches
- Cache des requêtes AJAX
- Minification des assets
- Compression des données
Métriques
- Temps de chargement < 2s
- Score Lighthouse > 90
- Optimisation Core Web Vitals
- Gestion mémoire efficace
🐛 Dépannage
Problèmes courants
Les témoignages ne s'affichent pas
- Vérifier que les témoignages sont au statut "En ligne"
- Contrôler les permissions utilisateur
- Vérifier la configuration des shortcodes
Erreurs AJAX
- Vérifier les nonces WordPress
- Contrôler les permissions
- Consulter les logs d'erreur
Problèmes de style
- Vérifier la compatibilité du thème
- Contrôler les conflits CSS
- Tester en mode debug
Debug
Activer le mode debug
// Dans wp-config.php
define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true);
Logs personnalisés
// Dans le code du plugin
error_log('Message de debug: ' . $variable);
🔄 Mises à jour
Version 1.0.0
- ✅ Fonctionnalités de base
- ✅ Formulaire de soumission
- ✅ Affichage masonry
- ✅ Administration complète
- ✅ Design wireframe
Roadmap
- 🔄 Export/Import CSV
- 🔄 Notifications email
- 🔄 Modération automatique
- 🔄 Analytics avancées
- 🔄 API REST
📞 Support
Documentation
Contact
- Email : support@example.com
- GitHub : Issues
📄 Licence
Ce plugin est distribué sous licence GPL v2 ou ultérieure.
🤝 Contribution
Les contributions sont les bienvenues ! Veuillez :
- Fork le projet
- Créer une branche feature
- Commiter vos changements
- Pousser vers la branche
- Ouvrir une Pull Request
Standards de code
- PSR-12 pour PHP
- ESLint pour JavaScript
- Prettier pour le formatage
- Tests unitaires requis
Développé avec ❤️ pour la communauté WordPress