Skip to content

firstelementjp/fe-csv-import-export

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

821 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

FE CSV Import & Export

FE CSV Import & Export Banner

Version License WordPress Ask DeepWiki

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.

✨ Recent Highlights

  • 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

πŸ“– Overview

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

⚑ Quick Links

βš™οΈ Requirements

  • WordPress 6.6 or higher
  • PHP 8.1 or higher
  • OpenSSL extension

πŸš€ Installation

From WordPress Admin

  1. Download the latest release ZIP from the Releases page
  2. Go to Plugins β†’ Add New β†’ Upload Plugin
  3. Select the ZIP file and upload it
  4. Activate the plugin

Manual Installation

  1. Download the latest release ZIP from the Releases page
  2. Extract the ZIP file
  3. Upload the fe-csv-import-export/ directory to /wp-content/plugins/
  4. Activate the plugin from the WordPress admin screen

Important

Use the release ZIP file for installation, not Source code (zip).

πŸ’» Local Development

git clone https://github.com/firstelementjp/fe-csv-import-export.git
cd fe-csv-import-export
composer install
npm install

After installing dependencies, place the plugin in your local WordPress environment and activate it from the admin dashboard.

πŸ§ͺ Testing

PHPUnit for FE CSV Import & Export is designed to run in a local WordPress environment.

PHPUnit setup for Local by Flywheel

  1. Copy wp-tests-config.php.example to wp-tests-config.php
  2. If you use direnv, copy or create a .envrc file for fe-csv-import-export
  3. Set DB_HOST, DB_NAME, DB_USER, DB_PASSWORD, and MYSQL_UNIX_PORT for your Local site
  4. Approve the environment with direnv allow
  5. Run composer install

Example setup command:

cp wp-tests-config.php.example wp-tests-config.php

Example 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-export

Run all tests:

composer test

The equivalent direct PHPUnit command is:

./vendor/bin/phpunit

Run coverage

composer run test-coverage

Run specific test suites

composer run test-unit
composer run test-integration
composer run test-standalone

Coverage 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_PORT

If .envrc was updated, reload it before running PHPUnit:

direnv allow
direnv reload
composer test-unit

πŸ› οΈ Development Commands

# 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 locally

See 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.

πŸ“ Developer Notes

  • 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:

🀝 Contributing

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.

πŸ“„ License

GPLv2+

See LICENSE for details.

πŸ‘¨β€πŸ’» Authors

About

Simple yet powerful CSV import/export plugin for WordPress

Resources

License

Contributing

Security policy

Stars

Watchers

Forks

Packages

 
 
 

Contributors