| 开发者 | zevvolabs |
|---|---|
| 更新时间 | 2026年4月17日 00:11 |
| PHP版本: | 7.4 及以上 |
| WordPress版本: | 6.9 |
| 版权: | GPLv2 or later |
| 版权网址: | 版权信息 |
wp_check_filetype_and_ext().htaccess (denies PHP execution + directory listing)index.php sentinel file prevents directory browsing on all servers/wp-content/plugins/zevvo-file-uploads, or install directly through the WordPress plugins screenYes. Zevvo File Upload is built specifically for WooCommerce's High-Performance Order Storage (HPOS) and works with both HPOS and legacy (post-based) order storage.
The plugin supports JPG, PNG, GIF, WebP, PDF, and ZIP. Each file type can be toggled on or off per product from the product metabox.
Files are stored in your WordPress uploads directory at wp-content/uploads/zevvo_uploads/. Filenames are randomized (MD5 hash) for security. The directory is protected with .htaccess rules that prevent PHP execution and directory listing.
Note for Nginx users: .htaccess rules don't apply on Nginx. Files are still protected by random hashed names, but we recommend configuring your Nginx server block to deny direct access to the zevvo_uploads directory for additional protection.
Yes. Each product has its own maximum file size setting (in MB). The default is 10 MB.
Go to WooCommerce → Zevvo Uploads in your admin. You'll see all uploaded files with options to view (with in-admin preview), download, move to trash, or permanently delete.
Yes. Image uploads appear as thumbnail previews and documents (PDF, ZIP) appear as file icons in WooCommerce order confirmation emails sent to both customers and admins.
Files remain in the system and stay attached to the order. You can manually delete them from the admin dashboard.
Yes. File upload settings are configured on the parent product and apply to all variations.
Yes. You can allow 1 to 5 files per product. The upload field displays a counter showing how many files have been selected out of the allowed maximum.
Yes. Check the Required Field option in the product metabox. Customers will not be able to add the product to cart without uploading at least one file.
No order-level limit. Each product in the cart can have its own independent file upload configuration.
The plugin works with any properly-coded WooCommerce theme. It uses standard WooCommerce hooks for classic themes, and includes Store API integration for block-based cart and checkout.
Yes. Go to WooCommerce → Zevvo Uploads, navigate to the Process Uploads tab, and click the Export CSV button to download all file records as a CSV file.
A daily WordPress cron job removes "pending" files (uploaded but never attached to an order) that are older than 24 hours. This prevents orphaned files from accumulating on your server. The retention period for attached files is configurable in the plugin settings.
The plugin provides the following filters and actions for developers: Filters:
zevvo_allowed_file_types — Modify allowed MIME types for a product ($types, $product_id)zevvo_max_upload_size — Modify the maximum file size in MB ($size_mb, $product_id)zevvo_max_files_count — Modify the maximum number of files ($max_files, $product_id)zevvo_session_abuse_limit — Change the per-session global upload ceiling ($limit)
Actions:
zevvo_validate_upload — Run custom validation before a file is saved ($file, $post_id)
See the docs/DEVELOPER-HOOKS.md file in the plugin directory for usage examples.
Yes. Pending (unattached) files are automatically deleted after 24 hours. Attached files are stored only as long as needed for order processing, and you can configure automatic deletion after a set number of days in the plugin settings.
Yes. The plugin includes a Gutenberg block for product pages and is fully compatible with the WooCommerce block-based cart and checkout via the Store API integration.
Use the WordPress.org support forum for this plugin.
zevvo_allowed_file_types, zevvo_max_upload_size, zevvo_max_files_count, zevvo_session_abuse_limitzevvo_validate_upload