WC Anti-Fraud Pro Lite
Pre-checkout risk checks, structured logging, presets, and admin tools (modern tabbed UI).
by Muzammil Hussain · github.com/smhz101/wc-anti-fraud-pro-lite · website
Install
No release zip yet. The repository archive installs, but the folder name will carry the branch suffix and updates will not flow:
wp plugin install https://github.com/smhz101/wc-anti-fraud-pro-lite/archive/refs/heads/main.zipPre-checkout risk checks for WooCommerce.
✨ Features
- Bot & form traps: static + rotating honeypots, minimum render time.
- Device age: first-seen cookie to detect “fresh” devices.
- Velocity controls: IP/email attempt limits, temporary bans, review/unban in Bans tab.
- Context checks: user-agent, referrer, disposable email detection.
- Geo rules: allow/deny billing countries.
- Cart heuristics: low-value guest friction, flagged-SKU patterns.
- Validation Profiles: Generic, US, UK, CA, AU, EU with live preview; add custom regex for phone/postal.
- Structured JSON logs: Woo → Status → Logs (
wc-antifraud-pro-lite), PII-redacted with correlation IDs. - Gateway friction: optionally hide or hard-fail selected “card” gateways; PayPal/Wallets untouched unless added.
- Import/Export: one-click JSON backup/restore of settings.
- Maintenance tools: clear caches, reset counters, purge expired bans.
Requirements
Works with: WordPress ≥ 6.0 • WooCommerce ≥ 7.0 • PHP ≥ 8.0
📦 Installation
- Upload the folder to
/wp-content/plugins/or install the zip via Plugins → Add New. - Activate WC Anti-Fraud Pro Lite.
- Go to WooCommerce → Anti-Fraud to configure.
🚀 Quick start
- Pick a Validation Profile (e.g., Generic or your region).
- Enable velocity limits and set ban TTL.
- Choose card gateways to protect (optional).
- Save and test the checkout; inspect Woo → Status → Logs for decision details.
⚙️ Settings overview
- Profiles: choose Generic / US / UK / CA / AU / EU; preview phone/postal acceptance live.
- Custom regex: extend/override phone/postal patterns per your business needs.
- Velocity: attempts per IP/email, ban duration, and whitelist overrides.
- Gateways: list of “card” gateways to apply friction (filterable).
- Bans: view/search bans, unban, and add manual bans.
- Tools: import/export, clear transients, wipe counters.
- Logs: link to WooCommerce Logs screen with a pre-filtered source.
🧩 Developer notes
Filters & actions (selection)
- wca_validation_presets (filter): alter/add regional validation presets.
add_filter('wca_validation_presets', function($presets){
$presets['pk'] = [
'label' => 'Pakistan',
'phone' => '/^\+?92[\s-]?\d{3}[\s-]?\d{7}$/',
'postal' => '/^\d{5}$/',
];
return $presets;
});
-
Decision hooks: The plugin fires actions around pass/block events with a structured payload.
do_action( 'wca_risk_blocked', $payload );do_action( 'wca_risk_passed', $payload );do_action( 'wca_risk_flagged', $payload );
Extending gateway coverage
Gateways are filterable so you can treat additional ones as “card-like”:
add_filter('wca_card_like_gateways', fn($ids) => array_merge($ids, ['stripe_sepa','custom_cc']));
🔐 Privacy
- PII is redacted in logs by default (e.g., anonymized IP).
- The plugin uses a first-party cookie to measure "device age". You can change the cookie name and TTL via filters.
- Configure data retention (logs, bans) in Settings → Tools or via filters.
Consult your local laws (e.g., GDPR/PECR) and update your site’s privacy policy to disclose anti-fraud cookies.
Logs
See WooCommerce → Status → Logs. Choose source wc-antifraud-pro-lite.
Each log line is a compact JSON object with:
rid: request IDevent:pass,blocked,order_created,gateways_hidden, etc.- Context: redacted
ip,ua,ref, carttotal, items,uid/guest - Decision metadata:
reasons,profile, and per-check booleans inchecks.
Example (abbrev):
{
"event": "blocked",
"rid": "8fb9a2c13c1d",
"checks": { "phone_ok": false, "postal_ok": true },
"reasons": ["phone_invalid"],
"ip": "203.0.113.x"
}