=== Advanced PDF Invoice Builder === Contributors: natsenack Tags: invoice, pdf, woocommerce, generator, template Requires at least: 6.9 Tested up to: 7.0 Requires PHP: 8.2 Stable tag: 1.0.2 License: GPLv2 or later License URI: https://www.gnu.org/licenses/gpl-2.0.html WC requires at least: 9.9 WC tested up to: 10.0 Constructeur de factures et documents PDF professionnel avancé pour WordPress avec éditeur visuel drag-and-drop et intégration WooCommerce. == Description == Advanced PDF Invoice Builder est un plugin WordPress professionnel pour créer, personnaliser et générer des factures et documents PDF directement depuis l'interface d'administration WordPress, avec des fonctionnalités puissantes et une intégration transparente à WooCommerce. Fonctionnalités principales : * Éditeur visuel de modèles PDF par glisser-déposer * Intégration WooCommerce pour la génération automatique de PDF de commandes * Modèles prédéfinis personnalisables * Support multilingue et localisation * Moteur de génération PDF haute performance * Gestion avancée des ressources et mise en cache intelligente * Fonctionnalité intégrée de sauvegarde et restauration * Tableau de bord analytique complet == Installation == 1. Téléchargez et décompressez le plugin dans le répertoire `/wp-content/plugins/`. 2. Activez le plugin via le menu "Extensions" dans WordPress. 3. Accédez à "PDF Builder" dans le menu principal de l'administration pour configurer vos réglages. == Code Source == Ce plugin contient des fichiers JavaScript minifiés/compilés. Le code source complet non minifié est disponible publiquement à l'adresse : * **Dépôt :** https://github.com/natsenack/advanced-pdf-invoice-builder * **Outil de build :** webpack 5 (configuration : `webpack.config.cjs`) * **Commande de build :** `npm install && npm run build` Tous les fichiers source se trouvent dans le dépôt sous `src/js/` et `src/css/`. La correspondance entre les assets compilés et leurs sources est la suivante : **Scripts admin du plugin (`plugin/assets/js/` ← source dans `src/js/admin/`) :** * `assets/js/ajax-throttle.min.js` ← `src/js/admin/ajax-throttle.js` * `assets/js/settings-main.min.js` ← `src/js/admin/settings-main.js` * `assets/js/notifications.min.js` ← `src/js/admin/notifications.js` * `assets/js/canvas-settings.min.js` ← `src/js/admin/canvas-settings.js` * `assets/js/settings-tabs.min.js` ← `src/js/admin/settings-tabs.js` * `assets/js/pdf-builder-react.min.js` ← compilé depuis `src/js/` (TypeScript/JSX via Babel + webpack) * `assets/js/vendors.min.js` ← dépendances vendors bundlées par webpack (React, ReactDOM, etc.) **Bibliothèque tierce intégrée telle quelle :** * `assets/js/html2canvas.min.js` — html2canvas v1.4.1 (licence MIT) — https://github.com/niklasvh/html2canvas == Foire Aux Questions == = Quelles versions de WordPress sont prises en charge ? = PDF Builder Pro nécessite WordPress 5.0 ou une version ultérieure. = Est-il compatible avec WooCommerce ? = Oui, PDF Builder Pro propose une intégration native de WooCommerce pour la génération automatique de PDF de commandes. = Quels formats PDF sont pris en charge ? = Le plugin génère des fichiers PDF standard compatibles avec tous les lecteurs de documents modernes. == Services externes == Ce plugin se connecte aux services tiers suivants. En utilisant ce plugin, vous acceptez leurs conditions d'utilisation et politiques de confidentialité respectives. = Service de génération PDF (pdf.threeaxe.fr) = Utilisé pour générer les documents PDF depuis vos modèles. Les données de votre modèle et les informations de commande sont envoyées à ce service pour le rendu. Ce service est fourni par Threeaxe et est nécessaire pour toute génération de PDF. Le HTML généré utilise des piles de polices locales/système et ne charge pas Google Fonts. * URL du service : https://pdf.threeaxe.fr * Politique de confidentialité : https://hub.threeaxe.fr/privacy-policy/ * Conditions d'utilisation : https://hub.threeaxe.fr/conditions-dutilisation = Serveur de validation de licence (hub.threeaxe.fr) = Utilisé pour activer et valider votre clé de licence premium. Lorsque vous saisissez votre clé de licence dans les paramètres du plugin, elle est envoyée à ce serveur pour vérifier son authenticité et activer les fonctionnalités premium. Ce serveur est exploité par Threeaxe, l'auteur du plugin. * Données envoyées : clé de licence, URL du site, version du plugin, version de WordPress. * Quand : uniquement lorsque vous activez ou désactivez manuellement une clé de licence dans les paramètres. * URL du service : https://hub.threeaxe.fr * Politique de confidentialité : https://hub.threeaxe.fr/privacy-policy/ * Conditions d'utilisation : https://hub.threeaxe.fr/conditions-dutilisation = API WordPress.org (api.wordpress.org) = Utilisé pour vérifier les mises à jour du plugin via le mécanisme standard de mises à jour WordPress. * URL du service : https://api.wordpress.org * Politique de confidentialité : https://automattic.com/privacy/ * Conditions d'utilisation : https://wordpress.org/about/license/ = Google Drive (oauth2.googleapis.com / www.googleapis.com) = Intégration optionnelle pour exporter les PDFs générés directement vers Google Drive. Activée uniquement si vous configurez l'intégration Google Drive dans les paramètres du plugin. * URL du service : https://oauth2.googleapis.com / https://www.googleapis.com * Politique de confidentialité : https://policies.google.com/privacy * Conditions d'utilisation : https://developers.google.com/terms = Dropbox (api.dropboxapi.com / www.dropbox.com) = Intégration optionnelle pour exporter les PDFs générés directement vers Dropbox. Activée uniquement si vous configurez l'intégration Dropbox dans les paramètres du plugin. * URL du service : https://api.dropboxapi.com * Politique de confidentialité : https://www.dropbox.com/privacy * Conditions d'utilisation : https://www.dropbox.com/terms = Microsoft OneDrive (graph.microsoft.com / login.microsoftonline.com) = Intégration optionnelle pour exporter les PDFs générés vers OneDrive. Activée uniquement si vous configurez l'intégration OneDrive dans les paramètres du plugin. * URL du service : https://graph.microsoft.com * Politique de confidentialité : https://privacy.microsoft.com/fr-fr/privacystatement * Conditions d'utilisation : https://www.microsoft.com/fr-fr/servicesagreement = Slack (slack.com / api.slack.com) = Intégration optionnelle pour envoyer des notifications PDF vers des canaux Slack. Activée uniquement si vous configurez l'intégration Slack dans les paramètres du plugin. * URL du service : https://api.slack.com * Politique de confidentialité : https://slack.com/intl/fr-fr/trust/privacy/privacy-policy * Conditions d'utilisation : https://slack.com/intl/fr-fr/terms-of-service = HubSpot (api.hubapi.com) = Intégration CRM optionnelle pour joindre les PDFs générés aux contacts et deals HubSpot. Activée uniquement si vous configurez l'intégration HubSpot dans les paramètres du plugin. * URL du service : https://api.hubapi.com * Politique de confidentialité : https://legal.hubspot.com/privacy-policy * Conditions d'utilisation : https://legal.hubspot.com/terms-of-service = Salesforce (login.salesforce.com / .salesforce.com) = Intégration CRM optionnelle pour joindre les PDFs générés aux enregistrements Salesforce. Activée uniquement si vous configurez l'intégration Salesforce dans les paramètres du plugin. * URL du service : https://login.salesforce.com * Politique de confidentialité : https://www.salesforce.com/fr/company/privacy/ * Conditions d'utilisation : https://www.salesforce.com/fr/company/legal/sfdc-website-terms-of-service/ = Feedback de désactivation (threeaxe.france@gmail.com) = Lors de la désactivation du plugin, une fenêtre modale peut apparaître et vous inviter à partager optionnellement la raison de cette désactivation. Si vous choisissez d'envoyer un feedback, les données suivantes sont transmises par email directement à l'auteur du plugin : * Données envoyées : raison de désactivation, commentaire optionnel, URL du site, adresse email de l'admin du site, serveur, date/heure. * Quand : uniquement si vous cliquez sur le bouton « Envoyer le feedback » dans la modale de désactivation. Aucune donnée n'est envoyée si vous ignorez ou fermez la modale. * Destinataire : threeaxe.france@gmail.com (auteur du plugin, Threeaxe) Cette démarche est entièrement facultative. Vous pouvez désactiver le plugin sans soumettre de feedback. **Note :** Toutes les intégrations tierces sont strictement optionnelles et nécessitent une configuration explicite par l'administrateur du site. Aucune donnée n'est envoyée à un service tiers sans votre consentement et votre configuration active. == Journal des modifications == = 1.3.27 = * Conformité WP.org : ajout de `License URI` dans l'en-tête principal du plugin * Conformité WP.org : correction de la clé HMAC externalisée via `get_option('pdfib_puppeteer_hmac_key')` (plus de secret hardcodé) * Conformité WP.org : URL service PDF migré de HTTP vers HTTPS * Conformité WP.org : remplacement de `FILTER_UNSAFE_RAW` par accès direct `$_POST` avec `wp_unslash()` dans 3 fichiers PHP * Conformité WP.org : correction XSS DOM JavaScript dans 4 fichiers JS admin (innerHTML avec données serveur remplacé par DOM API / escapeHtml) * Conformité WP.org : nettoyage du fichier .pot (suppression des entrées dupliquées corrompues avec suffixe `, 'advanced-pdf-invoice-builder`) * Conformité WP.org : ajout des en-têtes WooCommerce `WC requires at least` et `WC tested up to` dans readme-fr_FR.txt = 1.3.26 = * Correctif : PHP Parse error dans Puppeteer_Client.php — accolades fermantes manquantes dans render() et render_image() causant des erreurs fatales * Correctif : NonEnqueuedStylesheet — suppression de l'import Google Fonts dans le HTML généré et bascule vers des piles de polices locales/système * Correctif : DevelopmentFunctions — wp_debug_backtrace_summary() remplacé par Exception::getTraceAsString() * Correctif : DiscouragedFunctions — suppression des appels set_time_limit() et set_error_handler() * Correctif : NonPrefixedHooknameFound — filtre plugin_locale remplacé par determine_locale() * Correctif : SlowDBQuery — meta_query supprimé de get_users() / get_posts(), remplacé par SQL direct ou filtrage PHP * Correctif : NonPrefixedVariableFound — toutes les variables globales préfixées en pdfib_ dans les templates et pages admin * Correctif : NonPrefixedFunctionFound — suppression des fonctions WP sans préfixe dans settings-contenu.php et les handlers * Correctif : bugs de syntaxe PHP dans predefined-templates-manager.php et settings-licence.php * Amélioration : PuppeteerEngine et Puppeteer_Client journalisent sous WP_DEBUG (statut licence, code HTTP visible dans les logs) = 1.0.3.25 = * Conformité WP.org : suppression de toutes les violations wp_enqueue restantes (echo "