Async file uploads with Uppy for WooCommerce downloadable products.
The plugin automatically replaces the "Choose file" button in WooCommerce downloadable products with Uppy's upload interface, enabling chunked uploads for large files.
- PHP ^8.1
- WordPress ^6.0
- WooCommerce ^10.0
You can install the plugin in three ways: manually, via Composer from WPackagist, or via Composer from GitHub Releases.
Manual Installation
- Go to the Releases section of this repository.
- Download the latest release zip file.
- Log in to your WordPress admin dashboard.
- Navigate to
Plugins>Add New. - Click
Upload Plugin. - Choose the downloaded zip file and click
Install Now.
Installation via Composer from WPackagist
If you use Composer to manage WordPress plugins, you can install it from WordPress Packagist:
- Open your terminal.
- Navigate to the root directory of your WordPress installation.
- Ensure your
composer.jsonfile has the following configuration: *
{
"require": {
"composer/installers": "^1.0 || ^2.0",
"wpackagist-plugin/wc-product-upload-with-uppy": "^0.1"
},
"extra": {
"installer-paths": {
"wp-content/plugins/{$name}/": [
"type:wordpress-plugin"
]
}
}
}- Run the following command:
composer update
Note:
* composer/installers might already be required by another dependency.
Installation via Composer from GitHub Releases
If you use Composer to manage WordPress plugins, you can install it from this repository directly.
Standard Version (uses WordPress update system):
- Open your terminal.
- Navigate to the root directory of your WordPress installation.
- Ensure your
composer.jsonfile has the following configuration: *
{
"require": {
"composer/installers": "^1.0 || ^2.0",
"wp-spaghetti/wc-product-upload-with-uppy": "^0.1"
},
"repositories": [
{
"type": "package",
"package": {
"name": "wp-spaghetti/wc-product-upload-with-uppy",
"version": "0.1.0",
"type": "wordpress-plugin",
"dist": {
"url": "https://github.com/wp-spaghetti/wc-product-upload-with-uppy/releases/download/v0.1.0/wc-product-upload-with-uppy.zip",
"type": "zip"
}
}
}
],
"extra": {
"installer-paths": {
"wp-content/plugins/{$name}/": [
"type:wordpress-plugin"
]
}
}
}Version with Git Updater (uses Git Updater Lite for updates):
For installations that need updates managed via Git instead of WordPress.org, use the --with-git-updater version:
{
"require": {
"composer/installers": "^1.0 || ^2.0",
"wp-spaghetti/wc-product-upload-with-uppy": "^0.1"
},
"repositories": [
{
"type": "package",
"package": {
"name": "wp-spaghetti/wc-product-upload-with-uppy",
"version": "0.1.0",
"type": "wordpress-plugin",
"dist": {
"url": "https://github.com/wp-spaghetti/wc-product-upload-with-uppy/releases/download/v0.1.0/wc-product-upload-with-uppy--with-git-updater.zip",
"type": "zip"
}
}
}
],
"extra": {
"installer-paths": {
"wp-content/plugins/{$name}/": [
"type:wordpress-plugin"
]
}
}
}- Run the following command:
composer update
Note:
* composer/installers might already be required by another dependency.
* The --with-git-updater version includes Git Updater Lite for automatic updates detection, while the standard version relies on WordPress.org update system.
Add these constants to your wp-config.php file to customize the plugin behavior:
// Chunk size for TUS uploads (in bytes)
// Default: 2097152 (2MB)
define('WPSPAGHETTI_WCPUWU_CHUNK_SIZE', 2 * 1024 * 1024);
// Maximum file size allowed for upload (in bytes)
// Default: null (no limit, respects PHP upload_max_filesize and post_max_size)
// Example: 100MB limit
define('WPSPAGHETTI_WCPUWU_MAX_FILE_SIZE', 100 * 1024 * 1024);
// Allowed file types (array of MIME types or file extensions)
// Default: [] (all types allowed)
// Example: ['application/pdf', '.pdf'] (Only PDF files)
define('WPSPAGHETTI_WCPUWU_ALLOWED_FILE_TYPES', ['application/pdf', '.pdf']);
// Example: Multiple document types
// define('WPSPAGHETTI_WCPUWU_ALLOWED_FILE_TYPES', [
// 'application/pdf',
// 'application/zip',
// 'application/msword',
// 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',
// '.pdf',
// '.zip',
// '.doc',
// '.docx'
// ]);
// Enable cache busting for assets (useful during development)
// Default: false
define('WPSPAGHETTI_WCPUWU_CACHE_BUSTING', true);See LINKS file.
Please see CHANGELOG for a detailed list of changes for each release.
We follow Semantic Versioning and use Conventional Commits to automatically generate our changelog.
- Major versions (1.0.0 → 2.0.0): Breaking changes
- Minor versions (1.0.0 → 1.1.0): New features, backward compatible
- Patch versions (1.0.0 → 1.0.1): Bug fixes, backward compatible
All releases are automatically created when changes are pushed to the main branch, based on commit message conventions.
For your contributions please use:
See CONTRIBUTING for detailed guidelines.

