Upload and install multiple WordPress plugin ZIP files in a single operation with preview, rollback, and profile support.
- Drag-and-drop bulk upload of multiple plugin ZIP files
- Preview screen with compatibility checks before installation
- Sequential processing with per-plugin status tracking
- Automatic rollback on failed updates with batch rollback support
- Installation profiles for repeatable plugin sets
- Dry run mode to simulate installations without changes
- Changelog extraction with semantic version classification
- Email notifications for batch operations
- WP-CLI integration (
wp bulk-plugin install) - WordPress Multisite / Network Admin support
- Activity logging with filterable log viewer
- Configurable settings: auto-activate, max file size, rollback retention
- Self-updating via GitHub Releases
- WordPress 5.8 or later
- PHP 8.3 or later
- Download the latest release ZIP from Releases
- In WordPress admin, go to Plugins > Add New > Upload Plugin
- Upload the ZIP file and activate
Or install via WP-CLI:
wp plugin install bulk-plugin-installer.zip --activateThe plugin checks GitHub for updates automatically and will notify you when a new version is available.
- Navigate to Plugins > Add New > Bulk Upload
- Drag and drop your plugin ZIP files (or click to browse)
- Review the preview screen — check compatibility warnings and changelogs
- Select which plugins to install and click "Install Selected"
- Monitor per-plugin progress and review the summary
# Install from ZIP files
wp bulk-plugin install plugin-a.zip plugin-b.zip
# Install from a saved profile
wp bulk-plugin install --profile=my-stack
# Dry run
wp bulk-plugin install plugin-a.zip --dry-run
# Skip confirmation
wp bulk-plugin install plugin-a.zip --yes# Install dependencies
composer install
# Run all tests
php -d memory_limit=256M vendor/bin/phpunit --no-coverage
# Run unit tests only
vendor/bin/phpunit --testsuite unit
# Run property-based tests only
php -d memory_limit=256M vendor/bin/phpunit --testsuite propertyThe test suite includes 480+ tests with 60,000+ assertions:
- Unit tests covering all components
- Property-based tests (using Eris) validating correctness invariants
All plugin functionality requires the install_plugins capability (Administrators). No public-facing endpoints exist — unauthenticated users cannot interact with the plugin.
| Context | Required Capability | Role |
|---|---|---|
| Single site | install_plugins |
Administrator |
| Multisite (Network Admin) | manage_network_plugins |
Super Admin |
On individual subsites within a multisite network, the standard install_plugins capability applies.
The plugin provides actions and filters for third-party developers:
bpi_before_process_batch/bpi_after_process_batch— batch lifecyclebpi_process_plugin_result— filter individual plugin resultsbpi_before_batch_rollback/bpi_after_batch_rollback— rollback lifecyclebpi_validate_zip— add custom ZIP validation rulesbpi_preview_items— filter preview data before displaybpi_batch_email_subject/bpi_batch_email_body— customize notification emailsbpi_rollback_email_subject/bpi_rollback_email_body— customize rollback emails
See CONTRIBUTING.md for guidelines.
See SECURITY.md for reporting vulnerabilities.
GPL-2.0-or-later. See LICENSE for the full text.
Portions of this codebase were generated with the assistance of Large Language Models (LLMs). All AI-generated code has been reviewed and tested to ensure quality and correctness.