QR Photo Video Upload PRO WordPressQR Photo Video Upload PRO WordPress
Upload photos and videos via QR code, manage sessions, galleries, contests, ratings, and more Recently Updated
Overview
QR Photo, Video and Files Upload PRO
QR Photo, Video and Files Upload PRO is a WordPress plugin for creating event-based upload sessions. Each session generates a public upload link and QR code that guests can use to upload photos, videos, audio files, documents, and other configured file formats.
The plugin also provides frontend galleries, custom upload fields, access restrictions, upload limits, PIN protection, file-based contests, ratings, contest statistics, styling controls, multilingual support, and a licensing system.
Main Features
- Create independent upload sessions for events, weddings, parties, conferences, exhibitions, schools, contests, and other activities.
- Generate a unique public upload URL and QR code for every session.
- Accept photos, videos, audio files, documents, and custom file types.
- Restrict uploads to anyone with the link or to registered users only.
- Protect upload forms with a session PIN.
- Set session expiration dates, file limits, and maximum file sizes.
- Add custom fields to the public upload form.
- Display uploaded files through configurable WordPress shortcodes.
- Organize gallery files by file type.
- Enable rating contests with one-to-five-star voting.
- View contest rankings and voting statistics in WordPress administration.
- Customize the appearance and text of the public upload page.
- Translate the plugin using standard WordPress language files.
---
1. Upload Sessions
An upload session is an independent collection of files associated with a specific event or activity.
For every session, administrators can configure:
- Session title.
- Public upload link.
- Automatically generated QR code.
- Link expiration period.
- Upload access permissions.
- Maximum number of files allowed in the session.
- Maximum size allowed for each uploaded file.
- Accepted file categories and extensions.
- Optional upload PIN.
- Custom form fields.
- Optional contest settings.
The administration dashboard also shows recent sessions and provides direct access to their upload URLs, QR codes, expiration details, upload limits, and uploaded-file totals.
## Session Expiration
Each session can have an expiration date. When the link has expired, the public upload page no longer accepts uploads and displays an invalid or expired link message.
## Upload Permissions
Each session supports two access modes:
- **Anyone with the QR code or upload link**: visitors can upload without creating an account.
- **Registered users only**: visitors must log in before they can access the upload form.
When login is required, anonymous visitors are shown a login message and button.
## Upload PIN Protection
Administrators can require a PIN before allowing uploads.
When this option is enabled:
1. A PIN is configured in the session settings.
2. The public upload form displays a required PIN field.
3. Files are accepted only when the submitted PIN matches the session PIN.
## Session Upload Limits
Every session can define:
- The maximum total number of uploaded files.
- The maximum size of each individual file.
These limits are checked server-side during upload. The public upload form also displays the remaining file allowance and maximum file size.
---
2. File Types and Extensions
The plugin includes a file-type management area under:
**QR Photo Upload → File Types**
Default categories include:
- Photos.
- Video.
- Audio.
- Documents.
Administrators can:
- Add new file-type categories.
- Edit existing categories.
- Add a name and description.
- Define accepted file extensions.
- Delete custom file types.
Each upload session can enable one or more categories and select the exact extensions accepted for that session.
This makes it possible to create, for example:
- A photo-only session.
- A video submission session.
- A document collection form.
- A mixed media upload session.
- A custom file submission workflow.
File extensions and MIME types are validated during upload.
---
3. Public Upload Page
Each session has a dedicated public upload page accessible through its unique URL or QR code.
The page can display:
- The session name.
- Uploader name field.
- Custom session fields.
- Optional upload PIN field.
- Multiple-file upload control.
- Accepted file extensions.
- Remaining file allowance.
- Maximum file size.
- Success messages.
- Validation and error messages.
- Login requirement messages.
Visitors can upload multiple files in a single submission, provided the session limits are not exceeded.
Uploaded files are stored as WordPress Media Library attachments and linked to the relevant upload session.
---
4. Custom Upload Fields
Administrators can add custom fields to each session. These fields are displayed on the public upload form and their values are stored with each uploaded file.
Supported field types include:
- Text.
- Number.
- Date.
- Multi-line description or textarea.
Each field can be configured as:
- Optional.
- Required.
Custom fields can be edited or removed from the session configuration. Removing a field does not delete previously saved values from existing uploads, although the removed field is no longer displayed on new upload forms.
---
5. Uploaded File Management
Uploaded files are associated with their parent session and can be managed from the WordPress administration area.
Administrators can review file information such as:
- File title.
- Media preview.
- Uploader information.
- Custom field values.
- Upload date.
- Associated session.
- Media Library edit link.
Because files are stored as WordPress attachments, they remain compatible with standard WordPress media-management tools.
---
6. Frontend Galleries
Uploaded files can be displayed on posts and pages with the following shortcode:
[qr_photo_gallery]
The gallery supports three layouts:
- `masonry`
- `list`
- `table`
### Basic Examples
[qr_photo_gallery layout="masonry"]
[qr_photo_gallery layout="table" pagination="yes" per_page="20"]
[qr_photo_gallery layout="list" lazy="yes"]
## Display a Specific Session
[qr_photo_gallery session_id="123" layout="masonry" pagination="yes" per_page="9" columns="3"]Replace `123` with the WordPress ID of the required session.
## Group Files by Type
Files can be grouped by their configured file category:
[qr_photo_gallery session_id="123" view_mode="type" filter_mode="select"]
Supported file-type navigation modes are:
- `select`
- `tabs`
- `accordion`
Examples:
[qr_photo_gallery session_id="123" view_mode="type" filter_mode="tabs"]
[qr_photo_gallery session_id="123" view_mode="type" filter_mode="accordion"]
### Shortcode Attributes
| Attribute | Description | Default |
|---|---|---|
| `session_id` | Session ID to display. Leave empty to display files from all sessions. | Empty |
| `layout` | Gallery layout: `masonry`, `list`, or `table`. | `masonry` |
| `view_mode` | `single` for one gallery or `type` to group files by category. | `single` |
| `filter_mode` | File-type navigation: `select`, `tabs`, or `accordion`. | `select` |
| `limit` | Maximum total number of files to display. | `100` |
| `columns` | Number of masonry columns, from 1 to 6. | `3` |
| `image_size` | WordPress image size: `thumbnail`, `medium`, `large`, or `full`. | `medium` |
| `pagination` | Enable pagination with `yes` or disable it with `no`. | `no` |
| `per_page` | Number of files displayed on each page when pagination is enabled. | `12` |
| `lazy` | Enable image lazy loading with `yes` or `no`. | `yes` |
| `show_email` | Display stored uploader email metadata where available. | `no` |
### Shortcode Generator
The plugin includes a visual shortcode generator under:
**QR Photo Upload → Shortcode Generator**
It allows administrators to select a session and configure:
- Layout.
- Display mode.
- File-type filter.
- Number of columns.
- File limit.
- Image size.
- Pagination.
- Files per page.
- Lazy loading.
- Optional uploader metadata.
The generated shortcode can then be copied into any WordPress post or page.
---
7. Session Contests
A contest can be enabled independently for each upload session.
Contest options include:
- Enable or disable the contest.
- Contest start date and time.
- Contest end date and time.
- Voting audience.
- Optional voting PIN.
- Single-file or multiple-file voting mode.
### Contest Status
A contest can have one of the following statuses:
- **Disabled**: contest voting is not enabled.
- **Scheduled**: the start date has not yet been reached.
- **Active**: voting is currently available.
- **Closed**: the contest end date has passed.
### Voting Audience
Administrators can allow voting for:
- Anyone with access to the QR code or gallery link.
- Registered and logged-in WordPress users only.
### Voting PIN
An optional PIN can be required before a vote is accepted. The voter must enter the correct PIN for the contest.
### Voting Modes
The plugin supports two contest modes:
- **Vote for one file only**: each voter can select only one file in the entire session contest.
- **Vote for multiple files**: each voter can rate multiple files, but only once per file.
### Star Ratings
Each eligible file can be rated from one to five stars.
The gallery displays voting controls only when the associated contest is active and the current visitor is eligible to vote.
### Duplicate Vote Protection
The plugin prevents multiple votes for the same file by the same voter.
For logged-in users, the WordPress user ID is used to identify the voter.
For anonymous visitors, the plugin creates a persistent browser identifier and combines it with hashed connection information. A unique database constraint also prevents duplicate file votes for the same voter key.
A visitor's MAC address is not used because normal websites and browsers cannot reliably access it.
---
8. Contest Statistics
Contest statistics are available under:
**QR Photo Upload → Contest**
For every contest-enabled session, administrators can view:
- Contest status.
- File with the highest average rating.
- Most-voted file.
- Least-voted file.
- Total votes for each file.
- Average rating for each file.
- Total rating points for each file.
Each file in the statistics table links to its WordPress attachment edit screen.
---
9. Appearance and Text Settings
The public upload page can be customized under:
**QR Photo Upload → Settings**
Available settings include:
- Form title.
- Session label.
- Uploader-name label and placeholder.
- File input label.
- Submit button text.
- Informational note text.
- Success message.
- Login-required message.
- Login button text.
- Page background color.
- Form background color.
- Main text color.
- Field border color.
- Button background and text colors.
- Success message colors.
- Error message colors.
- Note text color.
- Border radius.
- Box shadow.
The plugin outputs these settings as CSS variables on the public upload page.
---
10. Administration Menu
The plugin adds the following WordPress administration pages:
- **QR Photo Upload**: create sessions and view recent sessions.
- **All Sessions**: manage all session posts.
- **File Types**: create and manage accepted file categories and extensions.
- **Shortcode Generator**: generate gallery shortcodes.
- **Contest**: view voting statistics for contest-enabled sessions.
- **Settings**: customize public form texts and appearance.
- **License**: activate, validate, and manage the PRO license.
## 12. Security and Validation
The plugin uses WordPress security APIs and validation mechanisms, including:
- Nonces for administrative and public form actions.
- Capability checks for administration pages.
- Input sanitization.
- Output escaping.
- Server-side file validation.
- Allowed-extension and MIME checks.
- Session upload limits.
- PIN verification.
- Contest eligibility checks.
- Unique database constraints for duplicate-vote prevention.
Administrators should still keep WordPress, themes, and plugins updated and configure appropriate server-side upload limits.
---
## 13. Multilingual Support
The plugin uses the text domain:
qr-photo-upload
Translation files are stored in:
/languages
The package includes:
- A translation template (`qr-photo-upload.pot`).
- Italian translation files.
Translations can be created with tools such as Poedit or Loco Translate.
---
## 14. Installation
1. Upload the `qr-photo-upload` folder to `/wp-content/plugins/`, or install the plugin ZIP from the WordPress Plugins screen.
2. Activate **QR Photo, Video and Files Upload PRO**.
3. Open **QR Photo Upload** in the WordPress administration menu.
4. Configure file types if necessary.
5. Create a new upload session.
6. Share the generated QR code or upload URL.
7. Add a gallery shortcode to a page when uploaded files should be displayed publicly.
8. Enable the contest options in a session when ratings are required.
The contest votes table and default file types are initialized when the plugin is activated.
---
## 15. Typical Workflow
1. Create an upload session for an event.
2. Select the accepted file categories and extensions.
3. Configure login requirements, upload PIN, expiration, and file limits.
4. Add any required custom fields.
5. Save the session and distribute its QR code.
6. Visitors scan the QR code and upload files.
7. Administrators review uploaded files in WordPress.
8. Display the files using the gallery shortcode.
9. Optionally enable a contest and allow visitors to rate files.
10. Review contest results from the Contest administration page.
---
## Requirements
- WordPress 6.0 or later.
- A PHP version supported by the installed WordPress version.
- WordPress Media Library upload permissions.
- A writable WordPress uploads directory.
- JavaScript enabled for interactive administration and contest voting features.
## Version
Current plugin version: **1.1.0**
## Author
Andrea Panetta
## License
GPL v2 or later.
Features
- Create independent upload sessions for events, weddings, parties, conferences, exhibitions, schools, contests, and other activities.- Generate a unique public upload URL and QR code for every session.
Requirements
php 7 or upper, wordpress 5.0 or upper
Instructions
1. Upload the `qr-photo-upload` folder to `/wp-content/plugins/`, or install the plugin ZIP from the WordPress Plugins screen.
2. Activate **QR Photo, Video and Files Upload PRO**.
3. Open **QR Photo Upload** in the WordPress administration menu.
4. Configure file types if necessary.
5. Create a new upload session.
6. Share the generated QR code or upload URL.
7. Add a gallery shortcode to a page when uploaded files should be displayed publicly.
8. Enable the contest options in a session when ratings are required.
The contest votes table and default file types are initialized when the plugin is activated.
| Category | Plugins / WordPress / Gallery |
| First release | 13 June 2026 |
| Last update | 17 June 2026 |
| Supported CMS | WordPress 6.0, WordPress 6.1, WordPress 6.2, WordPress 6.4, WordPress 6.5, WordPress 6.6, WordPress 6.8 |
| Files included | .php, Javascript .js |
| Tags | simple, Wedding, event, secure, qr photo uploader |








