Title: MTS AgeVerify ID Upload for WooCommerce
Author: MD. Rakibul Islam
Published: <strong>July 21, 2026</strong>
Last modified: July 21, 2026

---

Search plugins

![](https://ps.w.org/mts-ageverify-id-upload-for-woocommerce/assets/banner-772x250.
png?rev=3617213)

![](https://ps.w.org/mts-ageverify-id-upload-for-woocommerce/assets/icon-256x256.
png?rev=3617213)

# MTS AgeVerify ID Upload for WooCommerce

 By [MD. Rakibul Islam](https://profiles.wordpress.org/rakibuldev/)

[Download](https://downloads.wordpress.org/plugin/mts-ageverify-id-upload-for-woocommerce.2.1.1.zip)

 * [Details](https://wordpress.org/plugins/mts-ageverify-id-upload-for-woocommerce/#description)
 * [Reviews](https://wordpress.org/plugins/mts-ageverify-id-upload-for-woocommerce/#reviews)
 *  [Installation](https://wordpress.org/plugins/mts-ageverify-id-upload-for-woocommerce/#installation)
 * [Development](https://wordpress.org/plugins/mts-ageverify-id-upload-for-woocommerce/#developers)

 [Support](https://wordpress.org/support/plugin/mts-ageverify-id-upload-for-woocommerce/)

## Description

**MTS AgeVerify ID Upload for WooCommerce** adds a mandatory selfie + ID upload 
field to WooCommerce product pages for age verification purposes. The plugin is 
fully compatible with **FunnelKit Cart**, CartFlows, YITH AJAX Cart, standard WooCommerce,
and all other cart plugins — both AJAX-based and standard form-submit-based.

#### Key Features

 * Selfie + ID upload field on the product page (before Add to Cart button)
 * **Universal cart compatibility** — works with FunnelKit Cart, AJAX mini-carts,
   and standard WooCommerce
 * Pre-upload via AJAX on file selection — no form-submit dependency
 * Session token system ensures file travels safely with any cart plugin
 * Server-side MIME validation (no extension spoofing)
 * Max file size enforcement (default: 10 MB)
 * Accepted formats: JPG, PNG, WEBP, PDF
 * Uploaded files stored securely in a protected directory (`.htaccess` blocked)
 * View and download files directly from the WooCommerce order admin page
 * Image thumbnail preview in admin for quick visual review
 * Uploaded file name shown in cart and order details
 * Verification status badge in admin (Pending / Approved / Rejected)
 * Order email includes uploaded file reference
 * Auto-cleanup of orphaned temp files via WP Cron (hourly)
 * Files deleted automatically on order cancellation or deletion
 * Fully translatable (Text Domain: `wc-age-verification-id-upload`)

#### How It Works

 1. Customer selects their selfie + ID image on the product page.
 2. The file is instantly pre-uploaded via AJAX to a secure folder on the server.
 3. The server returns a unique session token.
 4. When the customer clicks “Add to Cart” (via any plugin — including FunnelKit), 
    the token is sent as a hidden field.
 5. Server validates the token, retrieves the file, and attaches it to the cart item.
 6. At checkout, the file reference is saved to the order.
 7. Store admin can view, preview, and download the file from the order page.

#### Compatibility

 * ✅ FunnelKit Cart (Slide Cart)
 * ✅ CartFlows
 * ✅ YITH WooCommerce Ajax Product Filter
 * ✅ Standard WooCommerce (form submit)
 * ✅ Elementor Pro WooCommerce widgets
 * ✅ WooCommerce Blocks

## Screenshots

[⌊Upload field on the product page⌉⌊Upload field on the product page⌉[

Upload field on the product page

## Installation

 1. Upload the plugin folder to `/wp-content/plugins/` or install via **Plugins  Add
    New  Upload Plugin**.
 2. Activate the plugin from the **Plugins** menu.
 3. The upload field will automatically appear on all simple product pages above the
    Add to Cart button.

No configuration required — it works out of the box.

## FAQ

### Does this work with FunnelKit Cart / side cart?

Yes. Version 2.1.0 was specifically built to fix FunnelKit Cart compatibility. It
uses a pre-upload + session token approach so the file is transferred independently
of how the cart plugin sends the add-to-cart request.

### Can I change the maximum file size?

Yes. Edit the `WCAV_MAX_MB` constant at the top of the plugin file. Default is 10
MB.

### Where are uploaded files stored?

Files are stored in `wp-content/uploads/age-verification/` which is protected by`.
htaccess` to prevent direct browser access.

### Who can view uploaded files in the admin?

Only users with the `manage_woocommerce` capability (Shop Manager and Administrator
roles).

### Are temp files cleaned up if a customer abandons the cart?

Yes. A WordPress Cron job runs hourly and deletes any pre-uploaded temp files older
than 1 hour that were never attached to a cart item.

### Does this work for guest (non-logged-in) customers?

Yes. The plugin uses the WooCommerce session (cookie-based) which works for both
logged-in and guest users.

## Reviews

There are no reviews for this plugin.

## Contributors & Developers

“MTS AgeVerify ID Upload for WooCommerce” is open source software. The following
people have contributed to this plugin.

Contributors

 *   [ MD. Rakibul Islam ](https://profiles.wordpress.org/rakibuldev/)

[Translate “MTS AgeVerify ID Upload for WooCommerce” into your language.](https://translate.wordpress.org/projects/wp-plugins/mts-ageverify-id-upload-for-woocommerce)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/mts-ageverify-id-upload-for-woocommerce/),
check out the [SVN repository](https://plugins.svn.wordpress.org/mts-ageverify-id-upload-for-woocommerce/),
or subscribe to the [development log](https://plugins.trac.wordpress.org/log/mts-ageverify-id-upload-for-woocommerce/)
by [RSS](https://plugins.trac.wordpress.org/log/mts-ageverify-id-upload-for-woocommerce/?limit=100&mode=stop_on_copy&format=rss).

## Changelog

#### 2.1.0

 * **New:** Pre-upload AJAX system — file is uploaded on selection, not on form 
   submit.
 * **New:** Session token approach — universal compatibility with FunnelKit Cart
   and all AJAX-based cart plugins.
 * **New:** Hourly WP Cron job for orphaned temp file cleanup.
 * **Fix:** FunnelKit Cart add-to-cart completely ignoring file upload (no `$_FILES`
   in AJAX request).
 * **Fix:** Validation now correctly blocks AJAX add-to-cart if no file is pre-uploaded.
 * Improved admin UI with image thumbnail previews and status badges.

#### 1.0.0

 * Initial release. Standard WooCommerce form-submit support only.

## Meta

 *  Version **2.1.1**
 *  Last updated **1 day ago**
 *  Active installations **Fewer than 10**
 *  WordPress version ** 5.8 or higher **
 *  Tested up to **7.0.2**
 *  PHP version ** 7.4 or higher **
 * Tags
 * [age verification](https://wordpress.org/plugins/tags/age-verification/)[funnelkit](https://wordpress.org/plugins/tags/funnelkit/)
   [selfie](https://wordpress.org/plugins/tags/selfie/)[woocommerce](https://wordpress.org/plugins/tags/woocommerce/)
 *  [Advanced View](https://wordpress.org/plugins/mts-ageverify-id-upload-for-woocommerce/advanced/)

## Ratings

No reviews have been submitted yet.

[Your review](https://wordpress.org/support/plugin/mts-ageverify-id-upload-for-woocommerce/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/mts-ageverify-id-upload-for-woocommerce/reviews/)

## Contributors

 *   [ MD. Rakibul Islam ](https://profiles.wordpress.org/rakibuldev/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/mts-ageverify-id-upload-for-woocommerce/)