📋 Changelog

Historique des mises à jour

Suivez l'évolution de nos plugins et découvrez les dernières améliorations.

← Tous les plugins
✍️

Contract Signature for WooCommerce

Dernière version: v1.0.0
v1.0.0 ✨ Dernière 📅 19 février 2026
[1.0.0] - 2026-02-15

### ✍️ Signature Électronique

#### Templates de Contrat
- **Éditeur HTML WYSIWYG** : Création de templates avec éditeur visuel complet
- **40+ shortcodes dynamiques** auto-remplis avec les données client/commande
- Identité client : `[wcs_client_name]`, `[wcs_billing_first_name]`, `[wcs_billing_last_name]`, `[wcs_billing_company]`, `[wcs_billing_email]`, `[wcs_billing_phone]`
- Adresse facturation : `[wcs_billing_address]`, `[wcs_billing_address_1]`, `[wcs_billing_address_2]`, `[wcs_billing_city]`, `[wcs_billing_postcode]`, `[wcs_billing_state]`, `[wcs_billing_country]`
- Adresse livraison : `[wcs_shipping_address]`, `[wcs_shipping_first_name]`, `[wcs_shipping_last_name]`, `[wcs_shipping_company]`, `[wcs_shipping_city]`, `[wcs_shipping_postcode]`, `[wcs_shipping_state]`, `[wcs_shipping_country]`
- Commande : `[wcs_order_id]`, `[wcs_order_number]`, `[wcs_order]`, `[wcs_order_details]`, `[wcs_product_name]`, `[wcs_order_date]`, `[wcs_order_time]`, `[wcs_order_status]`
- Montants : `[wcs_order_total]`, `[wcs_order_subtotal]`, `[wcs_order_tax]`, `[wcs_order_shipping]`, `[wcs_order_discount]`, `[wcs_payment_method]`, `[wcs_transaction_id]`, `[wcs_shipping_method]`
- Signature : `[wcs_signature]`, `[wcs_admin_signature]`, `[wcs_signature_date]`, `[wcs_current_date]`, `[wcs_current_time]`
- Site : `[wcs_site_name]`, `[wcs_site_url]`, `[wcs_site_email]`
- **Gestion des templates** : Statut Draft/Publié, actions en lot, recherche, filtres
- **Prévisualisation** : Aperçu du template en temps réel dans l'admin

#### 3 Méthodes de Signature
- **Canvas (Dessin)** : Signature manuscrite via souris ou écran tactile (SignaturePad.js)
- **Upload Image** : Import d'une image de signature (PNG, JPG)
- **Texte (Police)** : Saisie du nom avec choix parmi plusieurs polices de signature

#### Signature Admin
- Configuration de la signature entreprise/personne/custom
- Shortcode `[wcs_admin_signature]` pour intégration dans les templates
- Gestion du nom et du type de signature admin

### ⏱️ Timing de Signature

#### Signature Immédiate (après commande)
- Redirection automatique vers la page de signature après paiement
- Commande maintenue "en attente" jusqu'à signature
- Bouton "Signer" sur la page de remerciement et dans Mon Compte

#### Signature Avant Commande
- Signature requise AVANT la finalisation du checkout
- Validation de la signature avant le paiement
- Page de redirection configurable par produit

### 📑 Multi-Contrats
- **Jusqu'à 10 templates** par produit WooCommerce
- **Signature séquentielle** : Le client signe un contrat après l'autre
- **Suivi individuel** : Statut de signature par template
- **PDF séparé** : Chaque template génère son propre PDF
- **Automatisation des statuts** : Statut configurable avant/après signature (on-hold, processing, completed)
- **Annulation automatique** : Commandes non signées annulées après délai configurable (heures/jours)

### 📱 Vérification SMS / WhatsApp
- **Double authentification** avant signature pour validité juridique renforcée
- **Fournisseurs SMS** : Twilio, Vonage (Nexmo), Brevo (Sendinblue)
- **Fournisseurs WhatsApp** : Meta Business API, Twilio WhatsApp
- **Processus** : Saisie numéro → Code 4 chiffres → Vérification → Signature autorisée
- **Méthode configurable** : SMS seul, WhatsApp seul, ou les deux

### 🛡️ Protection CAPTCHA
- **Google reCAPTCHA v3** : Invisible, score de confiance
- **Cloudflare Turnstile** : Alternative privacy-first
- Protection anti-bot sur la page de signature

### 📄 Génération PDF
- **Moteurs PDF** : DomPDF ^3.1 et mPDF ^8.2
- **Support complet** : Images, tableaux, HTML/CSS dans les PDFs
- **Hyphenation française** : Support de la césure avec Syllable
- **QR Code** : Intégré au certificat de sécurité (php-qrcode)
- **Protection PDF** : Mot de passe et permissions configurables
- **Hooks** : `wcs_after_pdf_generated`, `wcs_pdf_filename`, `wcs_contract_text_before_pdf`

### ☁️ Synchronisation Cloud

#### Dropbox
- Upload automatique des PDFs signés
- Génération de liens de partage
- Dossier de destination configurable
- Test de connexion AJAX

#### Google Drive
- Authentification OAuth2 sécurisée
- Upload vers un dossier Drive ID
- Liens de visualisation et téléchargement
- Test de connexion AJAX

#### AWS S3
- Upload direct vers un bucket S3
- Région et bucket configurables
- URLs publiques pour les PDFs
- Test de connexion AJAX

#### Options Cloud
- Suppression automatique du fichier local après sync
- Stockage cloud par template (multi-contrats)

### 🔐 Certificats de Sécurité
- **Numéro de certificat unique** par signature
- **Hash SHA-256** du document pour intégrité
- **QR code de vérification** scannable
- **Adresse IP chiffrée** du signataire
- **User Agent hashé** pour traçabilité
- **Horodatage précis** de la signature
- **Page de vérification publique** (`?wcs_verify=1`)
- **Détection de falsification** automatique
- **Token d'accès sécurisé** pour les contrats publics

### 📝 Contrats d'Inscription
- **Signature obligatoire** lors de l'inscription d'un nouvel utilisateur
- **Redirection automatique** après inscription vers la page de signature
- **Blocage d'accès** au site jusqu'à ce que le contrat soit signé
- **Template dédié** sélectionnable pour les contrats d'inscription
- **Stockage user meta** : statut, PDF, date liés au profil utilisateur

### 📧 Système d'Emails

#### Emails de Commande (4 types)
- **Signature requise** : Notification au client avec lien de signature
- **Contrat signé (client)** : Confirmation avec PDF en pièce jointe
- **Contrat signé (admin)** : Notification à l'administrateur
- **Rappel automatique** : Relance configurable (délai, nombre max)

#### Emails d'Inscription (4 types)
- **Signature requise** : Notification après création de compte
- **Contrat signé (client)** : Confirmation d'inscription
- **Contrat signé (admin)** : Notification à l'administrateur
- **Rappel inscription** : Relance pour les contrats non signés

#### Fonctionnalités Email
- Activation/désactivation par type d'email
- Sujet et contenu personnalisables avec variables dynamiques
- Envoi d'emails test depuis l'administration
- Rappels manuels depuis la liste des contrats en attente

### 📊 Gestion des Statuts de Commande
- **Statut personnalisé** : "En attente de signature" (`awaiting-signature`)
- **Transitions automatiques** : Paiement → En attente signature → Complété
- **Automatisation configurable** : Statut avant/après signature
- **Annulation automatique** : Cron horaire pour les commandes non signées
- **Nettoyage** : Suppression des données de signature lors d'annulation/remboursement/échec

### 👤 Intégration Mon Compte WooCommerce
- **Endpoint** : `mes-contrats` dans le compte client
- **Menu automatique** : "Mes Contrats" ajouté au menu WooCommerce
- **Contrats signés** : Liste avec téléchargement PDF
- **Contrats en attente** : Liste avec bouton "Signer"
- **Compteur** : Badge de contrats en attente
- **Shortcodes** : `[wcs_my_contracts]`, `[wcs_my_contracts_menu]`, `[wcs_contracts_pending]`, `[wcs_contracts_signed]`, `[wcs_contracts_count]`

### ⚙️ Réglages Produit
- **Onglet dédié** : "Signature Contrat" dans l'édition de chaque produit WooCommerce
- **Activer/Désactiver** la signature par produit
- **Timing** : Choix immédiat ou avant commande par produit
- **Template(s)** : Sélection d'un ou plusieurs templates (multi-contrats)
- **Page de redirection** : Configuration pour le mode avant commande

### 🏗️ Administration

#### Dashboard
- Statistiques : nombre de templates, contrats signés, contrats en attente
- Actions rapides : créer template, voir contrats, réglages

#### Pages Admin (8 sous-menus)
- Dashboard
- Templates (CRUD complet)
- Templates Email (personnalisation)
- Contrats Signés (filtres, téléchargement PDF, liens cloud)
- Contrats en Attente (rappels manuels, compteur de jours)
- Réglages (général, SMS, CAPTCHA, Cloud, Sécurité, Inscription)
- Documentation (guide complet intégré)
- Modules Complémentaires

#### Meta Box Commande
- Affichage du statut de signature dans la page d'édition de commande
- Prévisualisation de la signature
- Lien de téléchargement PDF
- Liens de stockage cloud
- Lien de vérification du certificat
- Support multi-contrats

### 🔌 Compatibilité
- **HPOS** : High Performance Order Storage compatible
- **WooCommerce Blocks** : Cart & Checkout Blocks compatible
- **WooCommerce** : Testé jusqu'à 9.0
- **WordPress** : 5.0+
- **PHP** : 7.4+

### 🔧 Technique

#### Architecture
- Architecture modulaire basée sur des classes (10 classes includes)
- Système de modules extensible via filtre `wcs_available_modules`
- Templates séparés dans le dossier `templates/`
- Composer pour la gestion des dépendances

#### Dépendances Composer
- `dompdf/dompdf` ^3.1 - Génération PDF
- `mpdf/mpdf` ^8.2 - Moteur PDF alternatif
- `chillerlan/php-qrcode` ^4.3 - QR codes
- `vanderlee/syllable` ^1.9 - Césure française
- `setasign/fpdi` - Manipulation PDF

#### Sécurité
- Nonces WordPress pour toutes les actions AJAX
- Vérification des capacités (`manage_options`, `manage_woocommerce`)
- Sanitisation des entrées (`sanitize_text_field`, `intval`, `wp_kses_post`)
- Prévention injection SQL (`$wpdb->prepare`)
- Protection XSS (échappement des sorties)
- Certificats de sécurité SHA-256
- Détection de falsification
- Stockage IP chiffré
- Protection PDF par mot de passe
- Accès public par token sécurisé

#### Cron Jobs
- `wcs_check_auto_cancel_orders` (horaire) - Annulation automatique des commandes non signées
- `wcs_send_signature_reminders` (quotidien) - Envoi des rappels automatiques

#### Hooks et Filtres Personnalisés
- **Actions** : `wcs_after_pdf_generated`, `wcs_before_signature_saved`, `wcs_after_signature_saved`, `wcs_delete_local_pdf_after_sync`
- **Filtres** : `wcs_signature_email_subject`, `wcs_signature_email_content`, `wcs_pdf_filename`, `wcs_contract_text_before_pdf`, `wcs_available_modules`

#### Pages Exclues
- Pages de signature exclues du sitemap XML
- Pages de signature exclues de la recherche WordPress

### 🌍 Internationalisation & Loco Translate

#### Système de traduction
- **Text domain unifié** : `wc-contract-signature` pour le plugin principal et tous les modules
- **1860+ chaînes traduisibles** couvrant toute l'interface (admin, frontend, emails, PDF)
- **Fichier .pot complet** : Inclut les chaînes du plugin principal + Listeo Module + PDF Upload Module + Signature Send Module
- **Compatibilité Loco Translate** : Fonctionne avec tous les emplacements de sauvegarde

#### Emplacements Loco Translate supportés
- **Personnalisé** : `wp-content/languages/loco/plugins/wc-contract-signature-{locale}.po`
- **Système** : `wp-content/languages/plugins/wc-contract-signature-{locale}.po`
- **Auteur** : `wp-content/plugins/wrc-woocommerce/languages/wc-contract-signature-{locale}.po`

#### Sélecteur de langue indépendant
- Option de langue dans les réglages du plugin (indépendant de la langue WordPress)
- Détection automatique des langues disponibles (fichiers .mo existants)
- Priorité : Personnalisé Loco > Système > Plugin > Fallback WordPress

#### Outils développeur
- Script `generate-pot.php` : Régénère le fichier .pot à partir de tous les fichiers PHP
- Script `compile-mo.php` : Compile les fichiers .po en .mo
- Compatible Poedit pour traduction hors-ligne

📖 Légende des changements

✨ Nouvelles fonctionnalités 🐛 Corrections de bugs 🚀 Améliorations 🔐 Sécurité 🗑️ Suppressions