Jump to content

Recommended Posts

Posted

AgeWire is a powerful, fully customizable age verification module for ProcessWire, built with modern web standards and powered by Tailwind CSS. Perfect for sites requiring age gates (alcohol, tobacco, adult content, etc.).


Key Features

  • Two Verification Modes:
    • Simple Yes/No buttons
    • Date Picker with separate MM/DD/YYYY inputs (bot-resistant)
  • 13 Stunning Themes: Modern, Dark, Classic, Minimal, Gradient, Neon, Elegant, Corporate, Vibrant, Nature, Sunset, Ocean, Purple
  • 4 Smooth Animations: Fade In, Slide Up, Zoom In, Bounce In
  • International Date Formats:
    • MM/DD/YYYY (US)
    • DD/MM/YYYY (EU)
    • YYYY/MM/DD (ISO)
  • Advanced Security:
    • Secure, HttpOnly, SameSite cookies
    • Configurable lifetime (1 day to 6 months)
    • Bot protection via manual date entry
  • Smart Exclusions:
    • Skip verification on specific templates or pages
    • Admin pages auto-excluded
  • Privacy & Compliance:
    • Optional Terms & Privacy Policy checkbox
    • Custom links to your legal pages
  • Fully Responsive – Mobile-first design
  • Custom CSS support
  • Tailwind CDN integration (no build required)

Installation

  1. Download from GitHub
  2. Place AgeWire folder in /site/modules/
  3. Go to Modules > Refresh
  4. Install AgeWire


Perfect for:

  • Wineries & breweries
  • Vape & tobacco shops
  • Adult content sites
  • Age-restricted events

Feedback, bug reports, and pull requests are welcome! If you like AgeWire, please star it on GitHub!

Made with ❤️ for the ProcessWire community.

  • Like 13
  • Thanks 2
  • maximus changed the title to AgeWire — Age Verification Module for ProcessWire
Posted

AgeWire has been updated — here's what's new since the original release.

Multi-framework support

The module now supports four CSS frameworks. You pick whichever one your project already uses:

  • Vanilla CSS — fully self-contained, no dependencies, no CDN required
  • Tailwind CSS — the original experience, 13 themes and 4 animations (unchanged)
  • Bootstrap 5 — renders using native Bootstrap card, btn, form-control and alert classes
  • UIkit 3 — renders using native UIkit card, button and grid components

Each framework has an independent CDN toggle. If you already load Bootstrap or UIkit in your templates, just uncheck it and the module won't load anything extra.

Security fixes

  • CSRF token is now validated on every verification POST
  • Fixed a bug where ProcessWire would render the full page HTML after the JSON response, causing JSON.parse errors in the browser. The AJAX handler now calls ob_clean() before sending JSON to discard any buffered output
  • Strict date parsing with DateTime::createFromFormat — relative strings like "tomorrow" or "-18 years" are rejected
  • Redirect URL validated to http://, https://, or site-relative paths only
  • Custom CSS field sanitized against </style> injection
  • JS console.log output is now gated behind $config->debug — no noise in production

Admin UI

The config page is now a two-column layout. General Settings and Framework & Theme are open side by side on first load. The rest (Modal Content, Date Picker, Agreement, Exclusions) are collapsed into logical groups — much less scrolling.

PHP 8.2+

The module now requires PHP 8.2 and uses typed return types, match expressions, str_contains, str_starts_with, and unnamed catches throughout.

GitHub: https://github.com/mxmsmnv/AgeWire

Feedback and PRs welcome as always!

  • Like 1

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   1 member

×
×
  • Create New...