Linux 软件免费装
Banner图

Pay4All Age Verification - For WooCommerce & Pay4All Shop

开发者 pay4all
更新时间 2026年8月25日 00:10
PHP版本: 7.4 及以上
WordPress版本: 7.1
版权: GPL-2.0-or-later
版权网址: 版权信息

标签

age verification age gate selfie id verification woocommerece

下载

1.5.0 1.5.1 1.5.2 1.1.0 1.1.2 1.3.1 1.4.0 1.4.1 1.4.2 1.0.0 1.5.3 1.6.0 1.1.1 1.6.1

详情介绍:

Pay4All Age Verification blocks any order containing age-restricted products until the customer has submitted a 5-second video selfie and/or valid proof of identity, including the front and back of the document. The video selfie and identity document photos are captured by scanning a QR code, allowing the customer to continue the verification process on their smartphone. The plugin integrates with WooCommerce and Pay4All Shop (pay4all-form). Install it alongside either e-commerce solution, and it will only appear when a product is marked as requiring age verification. The same settings page (Pay4All AGE > Settings) manages both integrations. A merchant using both Pay4All Shop and WooCommerce therefore only needs to configure the verification process once and will benefit from consistent behaviour across both platforms. Identity document photos and/or video selfie The merchant can choose to require either verification method or both, depending on the applicable legislation. WooCommerce support Simply select the Requires age verification option on the product page to trigger QR-code age verification during checkout. The customer's age verification status can be reviewed directly from the order. Pay4All Pro provides the WooCommerce integration. Pay4All Age remains completely free when used with Pay4All Shop. How it works
  1. The merchant selects the Requires age verification option on the product edit screen.
  2. When a customer adds the product to their order form, a panel containing a QR code appears.
  3. The customer scans the QR code with their smartphone. The mobile capture page opens and allows them to take the required identity document photos or record the video selfie using their phone's camera.
  4. The form displayed on the customer's computer automatically unlocks once all required photos and/or the video selfie have been submitted.
  5. When the order is submitted, the encrypted photos and videos are stored with the order. They are only decrypted on demand by an administrator from the order edit screen.
Security WPML / Polylang Multilingual-aware : when the Requires age verification flag is set on a source product, every translation is treated as age-restricted too — even if the flag hasn't been mirrored to the translation. Available languages Français (fr_FR), Deutsch (de_DE), Italiano (it_IT), English (en_US).

安装:

  1. Upload the plugin to /wp-content/plugins/pay4all-age-verification/ or install via Plugins > Add New.
  2. Activate it from the Plugins menu.
  3. Open Pay4All AGE > Paramètres to tune what documents you require and to override the customer-facing texts if needed.
  4. On each product that requires an age check, tick the Requires age verification checkbox on the product edit screen (Pay4All Shop product).

屏幕截图:

  • Customer checkout with an age-restricted product in the cart : the KYC panel appears in the « Vérification d'âge » step with the QR code + status of each photo slot.
  • Mobile capture page (loaded from the QR) : native camera capture for ID recto / verso and selfies, live upload progress, encrypted at rest before storage.
  • Admin lightbox : merchant clicks the shield icon on the order edit screen — the encrypted photos are streamed, decrypted on-the-fly, and displayed side-by-side without being written back to disk.
  • Settings page : merchant chooses required documents (ID / selfies / both), OR / AND mode, purge delay, and can override the customer-facing texts in each activated language.

升级注意事项:

1.5.3 i18n : nouvelle chaîne traduite pour la description « Vérification d'âge requise » côté WooCommerce (requise par Pay4All Pro 2.3.3+). 1.5.2 UX : "Pay4All Shop" clickable on the host-plugin notice and the WooCommerce teaser, and a "Download Pay4All Pro" button added on the teaser. 1.5.0 i18n refactor: plugin source strings now in English (WordPress convention). Full translation packs bundled and validated for French, German and Italian. Merchant text overrides preserved. No configuration change, no manual action. 1.4.2 Readme rewrite only - no behaviour change. Safe upgrade. 1.0.0 Initial release.

常见问题:

Do I need Pay4All Shop or WooCommerce?

Yes. Pay4All Age Verification is a companion plugin — it plugs into either Pay4All Shop (free, ships the form-based checkout) or WooCommerce (via the paid Pay4All Pro add-on). On a bare WordPress install without either, the plugin stays dormant and shows an admin notice on the Plugins screen.

How are photos encrypted?

AES-256-GCM with a per-order (or per-user) subkey derived via HMAC-SHA256 from a master key. The master key is generated once and stored in wp-content/uploads/p4all-age-secure/age.key (mode 0600). Ciphertexts live in the same private folder, guarded by .htaccess, index.php and web.config so they are never web-servable — a direct URL always returns 403 / 404. See the Security section above for the full threat model.

Where is the master encryption key stored?

Outside the database, in wp-content/uploads/p4all-age-secure/age.key. This means a stolen SQL dump alone is not enough to decrypt the photos — the attacker would also need read access to that specific file. Please make sure your backup strategy either encrypts wp-content/uploads/p4all-age-secure/ or excludes it entirely from the backup archive.

What happens to the photos when an order is deleted?

They are auto-purged. Both the WooCommerce order lifecycle (woocommerce_delete_order hook) and Pay4All Shop order deletion trigger KycStorage::purge_order(), which removes every encrypted blob and the order-scoped directory. A daily cron also purges session-scoped buckets older than the configured TTL (default 24 h).

What happens if a user account is deleted?

The delete_user hook fires KycStorage::purge_user() — every stored user photo (recto / verso / selfie_1 / selfie_2) is removed together with the user record. GDPR-friendly by default.

Does the mobile capture page work on all phones?

The page uses the native <input type="file" accept="image/*" capture="…"> API — supported by Safari (iOS 6+), Chrome, Firefox, Edge on both Android and iOS. On the desktop side, the QR code is generated with a pure-JS library (no external service call) and the pairing is polled every 4 seconds via a REST endpoint scoped to the session token.

Does it work with WPML / Polylang?

Yes. When a product's Requires age verification flag is ticked on a source-language product, every translation is treated as age-restricted too — even if the flag hasn't been mirrored to the translation post. Same behaviour on WooCommerce products via Pay4All Pro.

Which languages ship out of the box?

French (fr_FR), German (de_DE), Italian (it_IT) and English (en_US). Every customer-facing string is also overridable per-language from the settings page — merchants can rewrite the KYC panel copy without touching a .po file.

Does the plugin contact any external service?

No. Photo capture, encryption, storage and admin decryption are all local — nothing leaves the site. The QR code is generated client-side ; the mobile page polls only your own WordPress REST API.

更新日志:

1.6.1 1.6.0 1.5.3 1.5.2 1.5.1 1.5.0 1.4.2 1.4.1 1.4.0 1.3.1 1.3.0 1.2.0 1.1.2 1.1.1 1.1.0 1.0.0