Advanced CSV Exporter
Exportez facilement vos utilisateurs, produits, catégories et commandes en CSV avec des filtres.
by RAKOTONARIVO Jean Claude · github.com/jean-claude07/advanced-csv-export-wordpress-plugin · website
Install
No release zip yet. The repository archive installs, but the folder name will carry the branch suffix and updates will not flow:
wp plugin install https://github.com/jean-claude07/advanced-csv-export-wordpress-plugin/archive/refs/heads/main.zipAdvanced CSV Exporter Wordpress Plugin
Exportez facilement vos utilisateurs, produits, catégories et commandes WooCommerce au format CSV depuis l'administration WordPress.
Version: 1.0.0
Requis: WordPress >= 5.8, PHP >= 7.4. Pour l'export des commandes, WooCommerce >= 6.0.
Résumé
Advanced CSV Exporter ajoute des boutons d'export CSV sur les pages de listes de l'administration :
- Utilisateurs
- Produits
- Catégories de produits
- Commandes (si WooCommerce actif)
Le plugin applique des vérifications de capacité et de nonce, filtre les paramètres GET reçus et produit des CSV compatibles avec Excel (BOM UTF-8). Vous pouvez choisir le séparateur et activer l'export en streaming pour les gros volumes.
Fichiers principaux
advanced-csv-exporter.php: bootstrap du plugin.includes/class-exporter-base.php: classe abstraite commune (gestion des filtres, génération CSV, sécurité, en-têtes HTTP, streaming).includes/class-admin.php: enregistrement des exporteurs, hooks d'admin et page de réglages.includes/class-users-exporter.php: export des utilisateurs.includes/class-products-exporter.php: export des produits.includes/class-categories-exporter.php: export des catégories.includes/class-orders-exporter.php: export des commandes (chargé si WooCommerce actif).assets/css/admin.css: styles du bouton d'export.
Installation
- Copier le dossier
advanced-csv-exporterdanswp-content/plugins/. - Activer le plugin depuis le menu Extensions de WordPress.
- Si vous souhaitez exporter les commandes, assurez-vous que WooCommerce est installé et activé.
Réglages
Une page de réglages est disponible via Réglages > Export CSV (ou depuis la page d'options du plugin). Options disponibles :
- Séparateur CSV :
,,;(par défaut) ouTab. - Streaming : activer/désactiver l'export en streaming (
fputcsvversphp://output). Le streaming est recommandé pour de très grands jeux de données car il évite de tout charger en mémoire.
Les options sont sauvegardées via l'API Settings de WordPress.
Utilisation
- Aller sur la page de listing correspondante (ex: Utilisateurs, Produits, Catégories ou Commandes).
- Repérer le bouton "Exporter en CSV" en haut à droite des filtres.
- Cliquer : un fichier CSV sera téléchargé en respectant les filtres de la page et les réglages choisis.
Sécurité & permissions
Chaque export vérifie :
- la présence d'un nonce (
_wpnonce) et sa validité ; - que l'utilisateur courant possède la capacité nécessaire (
list_users,edit_products,manage_categories,edit_shop_orders).
Format CSV
- Encodage : UTF-8 avec BOM (compatible Excel).
- Délimiteur : configurable (
,,;,tab). - Les valeurs contenant le séparateur, des guillemets ou des retours à la ligne sont échappées correctement.
Implémentation et internationalisation
- Les en-têtes CSV utilisent les fonctions d'i18n (
__()) pour pouvoir être traduites. - Les exports disposent d'une implémentation en streaming (
generate_csv_stream) qui écrit directement surphp://outputviafputcsv()quand le streaming est activé. - Les exports conservent une implémentation mémoire (ancienne méthode) en cas de désactivation du streaming.
Personnalisation / développement
- Pour ajouter un nouvel exporteur, créez une classe héritièr(e) de
Adv_CSV_Exporter_Base, définissez$id,$title,capability, implémentezadd_export_button()etgenerate_csv(); pour de gros volumes, implémentezgenerate_csv_stream( $filters, $out, $delimiter ). - Enregistrez votre exporteur dans
includes/class-admin.php(méthoderegister_exporters).
Tests locaux rapides
- Vérifier la syntaxe PHP du plugin :
php -l advanced-csv-exporter.php
php -l includes/class-exporter-base.php
php -l includes/class-admin.php
- Activer
WP_DEBUGpour afficher les erreurs lors des tests.
Changelog
- 1.0.0 — Première version : export utilisateurs, produits, catégories, commandes (si WooCommerce présent). Ajout : options (séparateur, streaming), streaming via
fputcsv, i18n des en-têtes.