Skip to main content

Architecture

High-Level Modules

suma-security/
suma-security.php
includes/
class-plugin.php
class-lifecycle.php
modules/
woocommerce-security.php
woocommerce-security/
admin-pages.php
assets.php
checkout-gates.php
fingerprint.php
order-ip.php
session.php
shared.php
verification-ui.php
verification.php
assets/js/src/
assets/js/dist/
uninstall.php

Bootstrap and Lifecycle

suma-security.php

  • Declares plugin metadata and constants
  • Loads class-plugin.php
  • Calls suma_security_Plugin::boot()

class-plugin.php

  • Loads module orchestrator and lifecycle class
  • Registers activation and deactivation hooks
  • Loads translations on plugins_loaded

class-lifecycle.php

  • Creates required tables if functions exist
  • Adds baseline options without overwriting existing values
  • Supports multisite network activation loop

Orchestrator

woocommerce-security.php defines constants and requires module files.

Groups:

  • Settings option constants
  • Tuning constants (thresholds, TTLs)
  • Database and cookie constants
  • Module loader include chain

Frontend Assets

Fingerprint Script

assets.php enqueues checkout-velocity-fingerprint.js on checkout pages.

OTP Script

verification-ui.php enqueues checkout-verification.js and localizes:

  • ajaxUrl
  • nonce (suma_security_checkout_otp)
  • initial requiresVerification

Admin Module

admin-pages.php provides:

  • Settings registration and sanitization
  • Settings page rendering
  • Tools page with lock status tables
  • Manual unlock action with nonce checks