Plugin Overview

Custom Product Image Upload for WooCommerce is a comprehensive WordPress plugin that allows customers to upload and crop custom images for WooCommerce products before adding them to cart. The plugin features enterprise-grade security, multi-product configurations, bulk operations, modern tabbed admin UI, and comprehensive monitoring capabilities.

Perfect For:

  • Print-on-demand stores (custom t-shirts, mugs, posters)
  • Photography services (photo printing, canvas prints)
  • Design agencies (client artwork upload)
  • Custom manufacturing (personalized products)
  • Any business requiring customer-provided images

What's New in Version 1.2.0

  • Enterprise Security: Multi-layer security implementation
  • Security Monitoring: Real-time logging and statistics dashboard
  • Advanced Admin Interface: 6-tab interface with Import/Export
  • Enhanced File Validation: Double MIME type validation
  • User Activity Tracking: Monitor upload patterns

Core Features

Image Upload & Processing

  • Secure Image Upload with validation
  • Advanced Image Cropping (Cropper.js)
  • Multiple Image Support per product
  • Base64 Processing with validation
  • JPG, JPEG, PNG, GIF, and WebP support

Multi-Product Configuration

  • Per-product controls and settings
  • Global default settings
  • Searchable product selection (Select2)
  • Bulk operations for multiple products
  • Simple, variable, and grouped product support

User Interface & Experience

  • Modern tabbed admin UI (6 main tabs)
  • Responsive design (desktop & mobile)
  • Customizable button text & colors
  • Real-time progress indicators
  • Modal-based upload interface

WooCommerce Integration

  • Cart integration with thumbnails
  • Order integration (customer & admin views)
  • HPOS Compatible
  • Secure order meta storage
  • Complete workflow integration

Enterprise-Grade Security

  • Secure upload directory with restrictions
  • Path traversal protection
  • Real image validation (double-check)
  • Secure file renaming system
  • Content security scanning

Security Monitoring & Logging

  • Comprehensive upload logging
  • Real-time security statistics
  • Detailed audit trail
  • User activity tracking
  • Automatic log management

Installation Guide

Automatic Installation (Recommended)

  1. Log in to your WordPress admin dashboard
  2. Navigate to Plugins > Add New
  3. Search for "Custom Product Image Upload"
  4. Click Install Now and then Activate
  5. You'll see "Custom Image Upload" in your admin menu

Manual Installation

  1. Download the plugin files from your purchase location
  2. Extract the ZIP file to your computer
  3. Upload the custom-product-image-upload folder to /wp-content/plugins/
  4. Navigate to Plugins in WordPress admin
  5. Find the plugin and click Activate
  6. Access settings via Custom Image Upload menu
Important: Make sure WooCommerce is installed and activated before installing this plugin. The plugin requires WooCommerce 5.0 or higher to function properly.

Configuration Setup

Initial Setup Process

Step 1: Access Plugin Settings

After activation, navigate to Custom Image Upload in your WordPress admin menu. You'll see a modern 6-tab interface:

  • Default Settings - Global configuration
  • Add Configuration - Per-product setup
  • Bulk Operations - Multiple product management
  • Existing Configurations - Review and edit
  • Import/Export - Backup and restore
  • Security Logs - Monitoring and analytics

Step 2: Configure Default Settings

Start with the Default Settings tab to establish global defaults:

Default Configuration Options: • Maximum Images: 1-10 per product • Max File Size: 1-50 MB • Allowed File Types: JPG, JPEG, PNG, GIF, WebP • Button Text: Customizable • Button Colors: Brand matching

Step 3: Set Up Products

Use the Add Configuration tab to set up individual products with specific requirements:

  1. Select products using the searchable dropdown
  2. Configure image count limits
  3. Set file size restrictions
  4. Choose allowed file types
  5. Customize button appearance
  6. Save configuration
Pro Tip: Use the Bulk Operations tab to apply the same settings to multiple products at once, saving significant time for large catalogs.

Admin Interface Guide

Tab 1: Default Settings

Configure global fallback settings for all products without specific configurations.

  • Set default image count limits
  • Configure default file size restrictions
  • Choose default allowed file types
  • Customize default button text and styling
  • Set global UI preferences

Tab 2: Add Configuration

Set up individual product configurations with specific requirements.

  • Searchable product selection (by name, ID, or SKU)
  • Per-product image count settings
  • Individual file size limits
  • Custom file type restrictions
  • Product-specific button customization

Tab 3: Bulk Operations

Efficiently manage multiple products with shared settings.

  • Select multiple products simultaneously
  • Apply identical settings to selected products
  • Batch configuration updates
  • Time-saving bulk management

Tab 4: Existing Configurations

Review, edit, and manage all configured products.

  • Searchable table of all configurations
  • Filter and sort options
  • Inline editing capabilities
  • Quick delete and modification

Tab 5: Import/Export

Backup and restore plugin configurations.

  • Export complete plugin configuration as JSON
  • Import previously exported settings
  • Migration support between sites
  • Configuration backup recommendations

Tab 6: Security Logs

Monitor upload activity and security events.

  • Real-time upload statistics
  • Comprehensive audit trail
  • Failed upload attempt analysis
  • User behavior tracking
  • Log management and cleanup

Security Features

Multi-Layer Security Implementation

File Validation

  • Strict MIME type validation
  • Double extension protection
  • Real image validation using finfo_file()
  • Additional validation with exif_imagetype()
  • Content security scanning

Upload Security

  • Secure upload directory isolation
  • Path traversal protection
  • Secure file renaming system
  • Non-executable file permissions
  • .htaccess protection

Access Control

  • Authentication requirements
  • User capability checks
  • Session validation
  • CSRF protection
  • Input sanitization

Monitoring & Logging

  • Comprehensive upload logging
  • Security event tracking
  • Failed attempt monitoring
  • User activity analysis
  • Automatic threat detection
Security Best Practices:
  • Regularly review security logs for suspicious activity
  • Monitor failed upload attempts for patterns
  • Keep the plugin updated to the latest version
  • Backup your configurations regularly
  • Use strong WordPress admin passwords

Usage Guide

For Store Administrators

Daily Management Tasks

  1. Monitor Upload Activity: Check the Security Logs tab for upload statistics and any issues
  2. Review Orders: View uploaded images in WooCommerce order screens
  3. Manage Configurations: Add, edit, or remove product configurations as needed
  4. Performance Monitoring: Track upload success rates and user behavior

Advanced Management

  • Use bulk operations for efficient multi-product management
  • Export settings regularly for backup purposes
  • Analyze security logs for optimization opportunities
  • Monitor user patterns for business insights

For Customers (Frontend Experience)

Upload Process

  1. Visit Product Page: Navigate to a product with image upload enabled
  2. Upload Images: Click the upload button to open the modal interface
  3. Select Files: Choose images from device (supports multiple files)
  4. Crop Images: Use the built-in cropping tool to adjust images
  5. Preview: Review all uploaded images before finalizing
  6. Add to Cart: Complete the process - images are saved with the order
Customer Benefits:
  • Professional cropping tools for perfect image sizing
  • Real-time preview of uploaded images
  • Mobile-friendly interface
  • Secure and fast upload process
  • Images automatically saved with orders

System Requirements

Component Minimum Version Recommended Notes
WordPress 5.2 6.4+ Latest version recommended
WooCommerce 5.0 8.6+ Tested up to WooCommerce 8.6
PHP 7.2 8.0+ PHP 8.0+ for optimal performance
MySQL 5.6 8.0+ Or MariaDB 10.0+
Memory Limit 128MB 256MB+ Higher for large image processing

Server Requirements

  • finfo_file() extension: Required for MIME type validation
  • exif_imagetype() extension: Required for image validation
  • GD Library or ImageMagick: For image processing
  • Sufficient upload directory permissions: For file storage
  • Max upload file size: Configure according to your needs
Compatibility Testing: The plugin has been thoroughly tested across multiple WordPress themes including Twenty Twenty-One, Twenty Twenty-Two, Twenty Twenty-Three, and Storefront. It's designed to work with any properly coded WordPress theme.

Development & Customization

WordPress Hooks & Filters

The plugin provides comprehensive hooks for developers to customize functionality:

Action Hooks

// Before the upload field is displayed do_action('cpiu_before_upload_field', $product_id); // After the upload field is displayed do_action('cpiu_after_upload_field', $product_id); // When an upload is successful do_action('cpiu_upload_success', $file_path, $product_id, $user_id); // When an upload fails do_action('cpiu_upload_error', $error_message, $product_id, $user_id); // Before cropping modal is shown do_action('cpiu_before_crop_modal', $product_id); // After cropping modal is closed do_action('cpiu_after_crop_modal', $product_id);

Filter Hooks

// Modify allowed file types add_filter('cpiu_allowed_file_types', function($types) { $types[] = 'svg'; // Add SVG support return $types; }); // Modify maximum file size add_filter('cpiu_max_file_size', function($size, $product_id) { return $size * 2; // Double the size limit }, 10, 2); // Modify upload directory path add_filter('cpiu_upload_directory', function($directory) { return '/custom/upload/path/'; }); // Add custom security validation add_filter('cpiu_security_validation', function($result, $file_path, $product_id) { // Add your custom validation logic return $result; }, 10, 3);

CSS Customization

Extensive CSS classes are available for styling customization:

/* Upload button container */ .cpiu-upload-button-container { /* Your custom styles */ } /* Modal dialog */ .cpiu-upload-modal { /* Modal customization */ } /* Cropping interface */ .cpiu-cropper-container { /* Cropper styling */ } /* Image preview */ .cpiu-image-preview { /* Preview customization */ } /* Security logs table */ .cpiu-security-logs-table { /* Table styling */ } /* Admin tab content */ .cpiu-admin-tab-content { /* Admin interface styling */ }

JavaScript Events

Custom JavaScript events for advanced functionality:

// Listen for upload start document.addEventListener('cpiu:upload:start', function(event) { console.log('Upload started for product:', event.detail.productId); }); // Monitor upload progress document.addEventListener('cpiu:upload:progress', function(event) { console.log('Upload progress:', event.detail.progress + '%'); }); // Handle upload completion document.addEventListener('cpiu:upload:complete', function(event) { console.log('Upload completed:', event.detail.fileInfo); }); // Listen for cropping events document.addEventListener('cpiu:crop:start', function(event) { console.log('Cropping started'); }); document.addEventListener('cpiu:crop:complete', function(event) { console.log('Cropping completed:', event.detail.cropData); });
Important: When customizing the plugin, always use hooks and filters instead of modifying core plugin files. This ensures your customizations survive plugin updates.

Troubleshooting Guide

Common Issues & Solutions

Upload button not appearing on product pages

Possible causes:

  • Product not configured for image upload
  • WooCommerce not activated
  • Theme compatibility issues
  • JavaScript conflicts

Solutions:

  1. Check if the product is configured in the admin panel
  2. Verify WooCommerce is active and updated
  3. Test with a default theme (Twenty Twenty-Three)
  4. Check browser console for JavaScript errors
  5. Deactivate other plugins temporarily to identify conflicts
File upload fails with security error

Common causes:

  • Unsupported file format
  • File size exceeds limits
  • Corrupted image file
  • Server security restrictions

Solutions:

  1. Verify file format is supported (JPG, JPEG, PNG, GIF, WebP)
  2. Check file size against configured limits
  3. Try uploading a different image
  4. Review security logs for detailed error information
  5. Contact hosting provider if server restrictions are suspected
Images not displaying in cart or orders

Troubleshooting steps:

  1. Verify images were successfully uploaded (check security logs)
  2. Ensure WooCommerce cart and order integration is working
  3. Check file permissions in upload directory
  4. Clear any caching plugins or CDN cache
  5. Verify HPOS compatibility if using High-Performance Order Storage
Cropping interface not loading

Possible solutions:

  1. Clear browser cache and cookies
  2. Check if Cropper.js library is loading properly
  3. Verify no JavaScript conflicts with other plugins
  4. Ensure proper file permissions for plugin assets
  5. Test with browser developer tools to identify errors

Performance Optimization

  • Image Optimization: Consider using image compression plugins
  • Server Resources: Ensure adequate memory limit for large files
  • Caching: Configure caching properly to avoid conflicts
  • CDN: Use CDN for faster file delivery if needed
  • Database: Regular database optimization for better performance
Debug Mode: Enable WordPress debug mode (WP_DEBUG = true) in wp-config.php to get detailed error information when troubleshooting issues.

Frequently Asked Questions

How many images can customers upload per product?

The plugin supports up to 10 images per product. You can configure different limits for different products using the per-product settings in the admin interface. Global defaults can be set in the Default Settings tab.

What file formats are supported?

The plugin supports JPG, JPEG, PNG, GIF, and WebP formats with comprehensive MIME type validation. You can configure which formats are allowed globally or per-product through the admin interface.

Can I set different upload requirements for different products?

Yes! The plugin includes comprehensive per-product configuration allowing you to set individual image count limits, file size restrictions, allowed formats, and even custom button styling for each product.

How does the security monitoring work?

The plugin includes enterprise-grade security with real-time monitoring, detailed logging of all upload attempts, threat detection, and comprehensive audit trails. All security information is accessible through the Security Logs tab in the admin interface.

Is the plugin compatible with HPOS (High-Performance Order Storage)?

Yes, the plugin is fully compatible with WooCommerce High-Performance Order Storage (HPOS) and all modern WooCommerce features. Uploaded images integrate seamlessly with the new order storage system.

Can I backup and restore plugin settings?

Absolutely! The plugin includes comprehensive Import/Export functionality accessible through the admin interface. You can export all settings as a JSON file and import them on other sites or restore them after plugin reinstallation.

Does the plugin work with my theme?

The plugin is designed to work with any properly coded WordPress theme. It has been tested with popular themes including Twenty Twenty-One, Twenty Twenty-Two, Twenty Twenty-Three, and Storefront. The interface adapts to your theme's styling.

What happens to uploaded images when I uninstall the plugin?

During uninstallation, you'll be presented with options to either keep your data (recommended for temporary uninstall) or delete all plugin data. You can also export your settings before deletion for backup purposes.

Version History & Changelog

Version 1.2.0 (Latest) - Enterprise Security Update

🚀 Major Features Added:

  • Enterprise Security: Comprehensive multi-layer security implementation
  • Security Monitoring: Real-time logging, statistics dashboard, and audit trails
  • Advanced Admin Interface: 6-tab interface with Import/Export and Security Logs
  • Secure Upload Class: Dedicated class for enterprise-grade file validation
  • Content Security Scanning: Detection of executable code and malicious patterns

🔒 Security Enhancements:

  • Enhanced File Validation: Double MIME type validation with finfo_file() and exif_imagetype()
  • Path Traversal Protection: Comprehensive filename and path security
  • Execution Prevention: .htaccess protection and non-executable permissions
  • Security Logs Management: Detailed logging with automatic cleanup

⚙️ Advanced Features:

  • Settings Backup/Restore: Complete import/export functionality
  • User Activity Tracking: Monitor unique users and upload patterns
  • Failed Attempt Analysis: Security threat detection and monitoring
  • Performance Optimizations: Enhanced database queries and caching

Version 1.1.0 - Multi-Product Configuration

✨ New Features:

  • Multi-Product Configurations: Per-product image count, size, and file type settings
  • Tabbed Admin UI: Modern interface with Default Settings, Add Configuration, Bulk Operations, and Existing Configurations tabs
  • Searchable Product Selection: Select2-powered search by name, ID, or SKU
  • Bulk Operations: Apply settings to multiple products simultaneously

🎨 UI/UX Improvements:

  • Frontend Improvements: Enhanced upload/crop flow with modal interface
  • Cart/Order Integration: Thumbnails in cart and order views
  • Responsive Design: Better mobile experience

⚡ Technical Enhancements:

  • HPOS Compatibility: Full compatibility with WooCommerce High-Performance Order Storage
  • Settings Export/Import: Backup and restore configurations
  • Uninstall Options: User-controlled data retention during uninstallation

Version 1.0.0 - Initial Release

🎉 Initial Features:

  • Basic image upload functionality on product pages
  • Cropping capabilities with built-in Cropper.js integration
  • Admin settings panel for basic configuration
  • WooCommerce integration for cart and order management
  • Secure file handling with WordPress standards
  • Mobile-responsive upload interface

Roadmap - Upcoming Features

🚧 Under Development:

  • Advanced image filters and effects
  • Integration with popular page builders
  • Enhanced mobile app support
  • Advanced analytics and reporting
  • Multi-language interface improvements

Support & Resources

📚 Documentation

Comprehensive setup guides, tutorials, and technical documentation.

View Complete Documentation →

💬 Professional Support

Get help from our expert team for installation, configuration, and troubleshooting.

Contact Support Team →

🌐 Company Website

Learn more about our products, services, and latest updates.

Visit Nowdigiverse →

🛡️ Security Issues

Report security vulnerabilities through responsible disclosure.

Report Security Issue →

Support Guidelines

Before Contacting Support:

  1. Check this documentation for solutions
  2. Review the FAQ section
  3. Try the troubleshooting steps
  4. Test with default WordPress theme
  5. Disable other plugins temporarily

When Contacting Support, Please Include:

  • WordPress version and theme name
  • WooCommerce version
  • Plugin version
  • PHP version and server details
  • Detailed description of the issue
  • Steps to reproduce the problem
  • Screenshots or error messages (if applicable)
  • Any relevant error logs

📧 Contact Information

  • Support Email: hello@nowdigiverse.com
  • Documentation: https://www.nowdigiverse.com/documentation-custom-image-upload-addon/
  • Website: https://nowdigiverse.com/
  • Response Time: Within 24-48 hours (business days)

Community & Contributions

We welcome contributions and feedback from the WordPress community. The plugin follows WordPress coding standards and includes comprehensive hooks for developers to extend functionality.

Contributing: For security-related contributions, please follow responsible disclosure practices. General contributions and feature requests are welcome through our support channels.