FE CSV Import & Export is an easy-to-use WordPress plugin for importing and exporting CSV data. It combines a simple admin experience with extensibility through WordPress hooks.
This repository contains the plugin source code, tests, and developer resources. For end-user guides and full documentation, see the links below.
- Taxonomy optimization for unchanged terms significantly reduces processing time for update-heavy imports
- Increased default import batch size from 100 to 500 rows to reduce AJAX overhead
- Added configurable batch size limit filter for per-site customization
- Detailed import profiling with WP_DEBUG batch profile logging for performance analysis
- Fixed JavaScript ES module import syntax to resolve browser compatibility issues
FE CSV Import & Export provides:
- CSV import/export for WordPress content
- Support for custom post types, taxonomies, and custom fields
- Batch processing for large CSV files
- Real-time progress logging
- Hook-based extensibility for developers
- Documentation: https://firstelementjp.github.io/fe-csv-import-export/
- Installation Guide: https://firstelementjp.github.io/fe-csv-import-export/#/installation
- Getting Started: https://firstelementjp.github.io/fe-csv-import-export/#/getting-started
- Configuration: https://firstelementjp.github.io/fe-csv-import-export/#/configuration
- Examples: https://firstelementjp.github.io/fe-csv-import-export/#/examples
- Troubleshooting: https://firstelementjp.github.io/fe-csv-import-export/#/troubleshooting
- Releases: https://github.com/firstelementjp/fe-csv-import-export/releases
- Issues: https://github.com/firstelementjp/fe-csv-import-export/issues
- WordPress 6.6 or higher
- PHP 8.1 or higher
- OpenSSL extension
- Download the latest release ZIP from the Releases page
- Go to Plugins β Add New β Upload Plugin
- Select the ZIP file and upload it
- Activate the plugin
- Download the latest release ZIP from the Releases page
- Extract the ZIP file
- Upload the
fe-csv-import-export/directory to/wp-content/plugins/ - Activate the plugin from the WordPress admin screen
Important
Use the release ZIP file for installation, not Source code (zip).
git clone https://github.com/firstelementjp/fe-csv-import-export.git
cd fe-csv-import-export
composer install
npm installAfter installing dependencies, place the plugin in your local WordPress environment and activate it from the admin dashboard.
PHPUnit for FE CSV Import & Export is designed to run in a local WordPress environment.
- Copy
wp-tests-config.php.exampletowp-tests-config.php - If you use
direnv, copy or create a.envrcfile forfe-csv-import-export - Set
DB_HOST,DB_NAME,DB_USER,DB_PASSWORD, andMYSQL_UNIX_PORTfor your Local site - Approve the environment with
direnv allow - Run
composer install
Example setup command:
cp wp-tests-config.php.example wp-tests-config.phpExample environment values:
export DB_HOST=localhost
export DB_NAME=local
export DB_USER=root
export DB_PASSWORD=root
export MYSQL_UNIX_PORT="/Users/your-name/Library/Application Support/Local/run/xxxxxxx/mysql/mysqld.sock"Verify the MySQL socket path from the Database tab in Local before running tests.
Run PHPUnit from the plugin root:
cd wp-content/plugins/fe-csv-import-exportRun all tests:
composer testThe equivalent direct PHPUnit command is:
./vendor/bin/phpunitRun coverage
composer run test-coverageRun specific test suites
composer run test-unit
composer run test-integration
composer run test-standaloneCoverage reports are generated in:
tests/coverage/
If the test database connection fails in Local, confirm that MYSQL_UNIX_PORT is loaded in the current shell:
printenv | grep MYSQL_UNIX_PORTIf .envrc was updated, reload it before running PHPUnit:
direnv allow
direnv reload
composer test-unit# PHP/Composer
composer test # Run test suite
composer phpcs # Check coding standards
composer phpcbf # Fix coding standards automatically
# Node.js/npm
npm run build # Build/minify frontend assets
npm run lint:js # Check JavaScript coding standards
npm run lint:js:fix # Fix JavaScript coding standards
npm run dev # Development build with source maps
npm run watch:all # Watch for changes and rebuild automatically
# Release
./test-release.sh # Create a release ZIP locallySee package.json for the complete list of available npm scripts.
./test-release.sh now builds release assets, assembles the ZIP, and then removes temporary release artifacts from the working tree.
See the project documentation for detailed development and release workflows.
- Import/export operations are designed to work in batches for large datasets.
- Gutenberg block content is preserved during import/export.
- The plugin provides extensibility through WordPress hooks.
For detailed implementation notes, see:
Contributions are welcome.
Basic workflow:
- Fork the repository
- Create a feature branch from develop
- Make changes and run tests
- Open a Pull Request against develop
Please check existing issues before opening a new feature request or bug report.
GPLv2+
See LICENSE for details.
