I need to create a custom WordPress plugin with the following features and components:
**1. Front-End User Interface:**
• A prominent, visually appealing green “Upload” button displayed on the main page.
• Upon clicking the Upload button, a **popup window** should open, allowing users to select and upload a file from their device. The popup should include:
• Drag-and-drop functionality for file upload.
• A file selection option via a traditional file explorer window.
• File type and size validation (configurable from the admin panel).
• While the file is uploading, a **loading animation** should be displayed to enhance user experience.
• Upon successful upload, the following should be displayed:
• A **shortlink** for the file download, formatted as: domain.com/[12-characters]/. The 12-character string should be a unique identifier generated for each uploaded file.
• A **QR code** for the shortlink, allowing users to easily download the file on mobile devices. 
**2. Download Page:**
• Each shortlink should lead to an individual download page containing:
• File details (name, size, and upload date).
• A prominent download button.
• Optional captcha or other verification before downloading (configurable in the admin panel). 
**3. Administration Panel:**
• A dedicated section in the WordPress dashboard for plugin management.
• A **history log** of all uploaded files, showing:
• File name, size, and upload date.
• Shortlink associated with each file.
• QR code image or regeneration option.
• Download count and last accessed date.
• Details related to the uploader:
• **IP address** of the uploader.
• **Browser details** (User-Agent).
• **Geolocation information** (based on IP).
• **File management options:**
• Ability to delete files individually or in bulk.
• Expiration settings (e.g., delete after a certain number of downloads or after a specific timeframe). 
**4. Security and Performance:**
• Secure file storage to prevent unauthorized access.
• Shortlink protection to avoid abuse (e.g., rate limiting, captcha, etc.).
• Compatibility with popular caching plugins and CDN integration for faster file delivery.
• Consideration for GDPR compliance by anonymizing IPs or allowing users to request file removal. 
**5. Customization and Settings:**
• Configuration panel for the following settings:
• Maximum file size and allowed file types.
• Shortlink expiration rules (e.g., time-based or download limit-based).
• Customization options for the upload button and download page design (colors, text, etc.).
• Option to enable or disable QR code generation.
**6. Additional Requirements:**
• Clean and modular code structure following WordPress coding standards.
• a shortlink that I can put on any page to display the button
• Compatibility with the latest version of WordPress and popular themes.
• Proper use of WordPress hooks, actions, and filters for maximum extendibility.
• Internationalization support for easy translation into multiple languages.
• Detailed documentation for installation, configuration, and usage of the plugin.


I need to create a custom WordPress plugin with the following features and components:
**1. Front-End User Interface:**
• A prominent, visually appealing green “Upload” button displayed on the main page.
• Upon clicking the Upload button, a **popup window** should open, allowing users to select and upload a file from their device. The popup should include:
• Drag-and-drop functionality for file upload.
• A file selection option via a traditional file explorer window.
• File type and size validation (configurable from the admin panel).
• While the file is uploading, a **loading animation** should be displayed to enhance user experience.
• Upon successful upload, the following should be displayed:
• A **shortlink** for the file download, formatted as: domain.com/[12-characters]/. The 12-character string should be a unique identifier generated for each uploaded file.
• A **QR code** for the shortlink, allowing users to easily download the file on mobile devices. 
**2. Download Page:**
• Each shortlink should lead to an individual download page containing:
• File details (name, size, and upload date).
• A prominent download button.
• Optional captcha or other verification before downloading (configurable in the admin panel). 
**3. Administration Panel:**
• A dedicated section in the WordPress dashboard for plugin management.
• A **history log** of all uploaded files, showing:
• File name, size, and upload date.
• Shortlink associated with each file.
• QR code image or regeneration option.
• Download count and last accessed date.
• Details related to the uploader:
• **IP address** of the uploader.
• **Browser details** (User-Agent).
• **Geolocation information** (based on IP).
• **File management options:**
• Ability to delete files individually or in bulk.
• Expiration settings (e.g., delete after a certain number of downloads or after a specific timeframe). 
**4. Security and Performance:**
• Secure file storage to prevent unauthorized access.
• Shortlink protection to avoid abuse (e.g., rate limiting, captcha, etc.).
• Compatibility with popular caching plugins and CDN integration for faster file delivery.
• Consideration for GDPR compliance by anonymizing IPs or allowing users to request file removal. 
**5. Customization and Settings:**
• Configuration panel for the following settings:
• Maximum file size and allowed file types.
• Shortlink expiration rules (e.g., time-based or download limit-based).
• Customization options for the upload button and download page design (colors, text, etc.).
• Option to enable or disable QR code generation.
**6. Additional Requirements:**
• Clean and modular code structure following WordPress coding standards.
• a shortlink that I can put on any page to display the button
• Compatibility with the latest version of WordPress and popular themes.
• Proper use of WordPress hooks, actions, and filters for maximum extendibility.
• Internationalization support for easy translation into multiple languages.
• Detailed documentation for installation, configuration, and usage of the plugin.