Description
CheckoutGuard is a WooCommerce plugin that helps store owners recover lost sales by tracking incomplete checkouts and providing tools for follow-up. It also includes fraud prevention, courier analytics, and an automatic success-ratio blocker to protect your store from high-risk orders.
All data is stored locally in your WordPress database. No customer data leaves your server unless you explicitly use the Courier Analytics feature.
Incomplete Checkout Tracking
CheckoutGuard captures customer information and cart contents in real-time as shoppers fill in the checkout form, even if they never click “Place Order”. Data is collected via debounced AJAX calls (800ms delay) to avoid excessive requests. Tracked fields include:
- Billing name, email, phone, and full address
- Order comments
- Cart items (product name, quantity, line total) and cart total
- Customer IP address and WooCommerce session ID
Once captured, each incomplete checkout appears in the Incomplete Checkouts list where you can:
- View full details in a modal popup (customer info, cart items, timestamps)
- Recover the checkout by creating a real WooCommerce order with one click
- Mark as Hold for future follow-up, with an optional follow-up date (YYYY-MM-DD)
- Mark as Cancelled if the checkout is no longer relevant
- Re-open a cancelled checkout back to incomplete status
- Edit follow-up dates on held checkouts
Completed orders are automatically cleaned up: when a customer finishes checkout, their incomplete record is deleted.
Dashboard Overview
The main dashboard gives you a bird’s-eye view of your checkout performance with:
- Pie chart showing the distribution of incomplete, recovered, hold, and cancelled checkouts
- Count cards for each status with clickable links to the detail pages
- Value cards showing the total monetary value for incomplete, recovered, hold, and cancelled checkouts
- Date range filters: Today, Last 7 Days, Last 30 Days, or a custom date range picker
- WordPress Dashboard Widget – a compact summary widget on the main WP dashboard showing the same stats and chart
Fraud Blocker
Prevent unwanted orders by maintaining blocklists for:
- IP Addresses – block by customer IP
- Email Addresses – block by billing email
- Phone Numbers – block by billing phone
When a blocked customer attempts to checkout, WooCommerce displays an error message and the order is not processed. Each blocklist supports:
- Adding items with an optional reason
- Searching/filtering the list
- Deleting items
- Custom block message (configurable in Settings)
You can also block or unblock directly from a WooCommerce order page using the “Fraud Blocker Actions” meta box in the order sidebar, which shows the customer’s IP, email, and phone with one-click Block/Unblock buttons.
Success Ratio Blocker (Automatic)
This feature automatically blocks checkout attempts from customers with a poor delivery success history. It works by:
- Checking the customer’s phone number against courier delivery data during checkout
- If their success ratio falls at or below the configured threshold, the order is blocked
- The blocked attempt is logged with full details (cart, ratio, threshold, IP)
Configurable settings:
- Block Threshold (%) – orders are blocked if the success ratio is at or below this value (default: 20%)
- Grace Period – new customers are not blocked until they have more than this many total orders (default: 5)
- Custom Blocked Order Notice – the message shown to the customer, supports
{ratio}placeholder
All blocked attempts are logged in the Blocked Orders Log page where you can view details and delete log entries.
Courier Analytics
Check the delivery success and return ratio for any customer phone number across different courier services (Pathao, RedX, Steadfast). This feature provides:
- Standalone Courier Analytics page – enter a phone number and get a full breakdown
- WooCommerce Order List column – “Success Ratio” column added to the orders table showing a compact ratio badge per order
- Order Detail meta box – “Customer Success Ratio” sidebar box on individual order pages with a “Check Full Ratio” button
- Live ratio check on checkout – real-time feedback shown below the phone field as the customer types (triggers after 10+ digits)
- Doughnut chart visualization for the overall success rate
- Per-courier breakdown by courier service
Ratio data is cached on each order via post meta to avoid redundant API calls.
Checkout Status Management
Each incomplete checkout flows through a clear lifecycle:
- Incomplete – captured but not completed
- Recovered – converted into a WooCommerce order
- Hold – flagged for follow-up with an optional date
- Cancelled – dismissed by admin
Each status has its own dedicated list page with date range filters (Today, 7 Days, 30 Days, All Time, or Custom Range).
WooCommerce Integration
CheckoutGuard integrates deeply with WooCommerce:
- Order list column – adds “Success Ratio” column to both classic and HPOS order lists
- Order sidebar meta boxes – “Customer Success Ratio” and “Fraud Blocker Actions” boxes on every order
- HPOS compatible – works with both classic post-based orders and High-Performance Order Storage
- Checkout hooks – integrates at
woocommerce_checkout_processfor fraud blocking andwoocommerce_thankyoufor cleanup
Admin Pages
CheckoutGuard adds the following pages under its own top-level menu:
- Dashboard – overview with chart and stats
- Follow Up – checkouts marked as hold, ordered by follow-up date
- Incomplete – all incomplete checkouts
- Recovered – checkouts that were converted to orders
- Blocked Orders – log of automatically blocked checkout attempts
- Cancelled – dismissed checkouts
- Fraud Blocker – manage IP, email, and phone blocklists
- Courier Analytics – check delivery success ratios
- Settings – configuration and account management
Third-Party Services
This plugin connects to the following external services:
CheckoutGuard Headquarters (coderzonebd.com)
Used for license validation, usage tracking, and settings synchronization. The plugin sends your site domain and admin email during registration, and periodically syncs license status and usage counts.
- Service URL: https://coderzonebd.com
- Privacy Policy: https://coderzonebd.com/privacy-policy
- Terms of Service: https://coderzonebd.com/terms
Courier APIs (Pathao, RedX, Steadfast)
When the Courier Analytics feature is enabled, customer phone numbers are sent to third-party courier service APIs to retrieve delivery success statistics. This only occurs when explicitly triggered by an admin or during checkout (if the live ratio check is enabled).
Privacy Policy
CheckoutGuard stores personal data locally in your WordPress database. The following data is collected:
- Customer Details: First name, last name, email, phone, billing address (address 1, address 2, city, state, postcode, country)
- Technical Information: Customer IP address, WooCommerce session ID
- Cart Information: Product ID, name, quantity, line total for each item, and total cart value
- Tracking Status: Checkout status (incomplete/recovered/hold/cancelled), follow-up dates, admin notes, recovered order ID
- Blocked Items: IP addresses, email addresses, and phone numbers on the blocklists, with reason and the admin who added them
- Blocked Order Logs: Phone number, email, cart details, cart value, success ratio, threshold at time of block, IP address, customer name, and timestamp
This data is used exclusively within your WordPress admin area for checkout recovery and fraud prevention purposes.
Data is not transmitted to external servers except in the following cases:
* License validation and usage sync with the CheckoutGuard Headquarters API (coderzonebd.com)
* Courier delivery ratio checks when the Courier Analytics feature is enabled (phone numbers are sent to courier APIs)
GDPR Compliance:
CheckoutGuard supports the WordPress personal data export and erasure tools (Tools > Export Personal Data / Erase Personal Data). When a valid request is made, all incomplete checkout records and blocklist entries associated with the requested email address will be included in exports or deleted upon erasure.
Data retention is configurable in Settings (30 days, 90 days, 1 year, or indefinite). If the “Delete all data on uninstall” option is enabled, all plugin tables and options are permanently removed when the plugin is deleted.
A suggested privacy policy text is automatically added to your site’s Privacy Policy page (Settings > Privacy) when the plugin is active.
Screenshots

Dashboard Overview with pie chart and stat cards (screenshot-1.png) 
Incomplete Checkouts list with action buttons (screenshot-2.png) 
Checkout detail modal popup (screenshot-3.png) 
Fraud Blocker management page (screenshot-4.png) 
Courier Analytics page with ratio results (screenshot-5.png) 
WooCommerce order list with Success Ratio column (screenshot-6.png) 
Order detail page with Success Ratio and Fraud Blocker meta boxes (screenshot-7.png) 
Settings page with module toggles and configuration (screenshot-8.png) 
WordPress Dashboard widget (screenshot-9.png)
Installation
From the WordPress Admin
- Go to Plugins > Add New in your WordPress admin
- Click Upload Plugin and select the CheckoutGuard .zip file
- Click Install Now, then Activate Plugin
Manual Installation
- Download the plugin .zip file
- Extract it to your
/wp-content/plugins/directory - Go to Plugins in your WordPress admin and activate CheckoutGuard
After Activation
- Navigate to CheckoutGuard > Settings in your admin menu
- On the Account & Usage tab, click Sync Now to sync your license
- On the Settings tab, configure the following:
General Settings:
- Data Retention Policy – how long to keep incomplete checkout records (30 days, 90 days, 1 year, or never delete)
- Exclude User Roles – select user roles whose checkouts should not be tracked (e.g., Administrator, Shop Manager)
Module Toggles:
- Enable Checkout Tracking – turn real-time checkout data capture on/off
- Enable Fraud Blocker – turn the IP/email/phone blocklist system on/off
- Enable Courier Service – turn the courier success ratio features on/off
Fraud Blocker Settings:
- Custom Block Message – the message shown to blocked customers at checkout
Success Ratio Blocker:
- Block Threshold (%) – block orders at or below this success ratio (default: 20%)
- New Customer Grace Period – number of orders before the ratio check kicks in (default: 5)
- Blocked Order Notice – the message shown when a checkout is blocked by ratio (supports
{ratio}placeholder)
Advanced Settings:
- Delete all plugin data upon uninstallation – when enabled, all database tables and options are permanently removed when you delete the plugin
FAQ
-
Does this plugin require WooCommerce?
-
Yes. CheckoutGuard is a WooCommerce extension and requires WooCommerce to be installed and active. If WooCommerce is not detected, the plugin will display an admin notice and will not load its functionality.
-
Is it compatible with HPOS (High-Performance Order Storage)?
-
Yes. CheckoutGuard supports both the classic post-based order system and the newer HPOS storage. The Success Ratio column and meta boxes work on both
edit-shop_orderandwoocommerce_page_wc-ordersscreens. -
Where is the data stored?
-
All data is stored locally in your WordPress database in custom tables prefixed with
cg_(e.g.,wp_cg_incomplete_checkouts,wp_cg_blocked_ips,wp_cg_blocked_emails,wp_cg_blocked_numbers,wp_cg_blocked_orders). -
Will it slow down my checkout page?
-
No. Checkout data is captured using debounced AJAX calls (800ms delay after the last input) to minimize server requests. The live ratio check uses a 600ms debounce. Scripts are only loaded on the checkout page and relevant admin pages.
-
Can I exclude certain user roles from tracking?
-
Yes. Go to CheckoutGuard > Settings > Settings tab > Exclude User Roles and check the roles you want to exclude (e.g., Administrator, Shop Manager).
-
What happens to incomplete records when a customer completes their order?
-
They are automatically deleted. When a customer reaches the “Thank You” page, CheckoutGuard removes their incomplete checkout record and decrements the usage count.
-
Can I customize the message shown to blocked customers?
-
Yes. There are two customizable messages in the Settings:
1. Custom Block Message – shown when a customer is blocked by IP, email, or phone
2. Blocked Order Notice – shown when blocked by the success ratio system (supports{ratio}placeholder) -
What courier services are supported?
-
The Courier Analytics feature checks delivery data from Pathao, RedX, and Steadfast courier services.
-
Does this plugin comply with GDPR?
-
Yes. CheckoutGuard integrates with the WordPress personal data export and erasure tools. A suggested privacy policy text is also provided for your Privacy Policy page. Data retention is configurable in the plugin settings.
-
Yes. A Pro version with extended limits and dedicated support is available at coderzonebd.com/pricing. The free version provides full functionality with usage limits.
-
How do I get my license activated?
-
After installation, go to CheckoutGuard > Settings and click Sync Now. If your site shows as inactive, contact support via the WhatsApp group link provided on the settings page or visit coderzonebd.com/contact.
Reviews
Contributors & Developers
“CheckoutGuard” is open source software. The following people have contributed to this plugin.
ContributorsTranslate “CheckoutGuard” into your language.
Interested in development?
Browse the code, check out the SVN repository, or subscribe to the development log by RSS.
Changelog
1.1.5
- Added proper privacy policy integration via WordPress Privacy Policy page
- Added GDPR-compliant personal data exporter and eraser hooks
- Added proper uninstall.php for clean plugin removal
- Added directory listing protection (index.php files)
- Added Text Domain header for WordPress.org compatibility
- Added Third-Party Services disclosure in readme
- Improved toast notification system for settings save feedback
- Fixed confirmation popups appearing behind detail modals (z-index)
- Fixed fraud blocker settings not persisting after page refresh
- Fixed CSS design issues across dashboard, filter bars, and stat cards
- Improved filter bar layout for checkout and blocked orders tabs
- Code quality improvements for WordPress.org plugin review compliance
1.1.0
- All internal prefixes updated from
act_tocg_ - Text domain changed from
checkoutguardtocheckoutguard - Complete UI/UX redesign with modern design system
- Dashboard cards in compact 4×2 grid layout
- WooCommerce-style table design on Courier Analytics page
- Enter key support on Courier Analytics form
- Real-time form validation with shake animation
- Critical fix: Resolved “An error occurred while fetching details” modal error
- Fixed padding and spacing issues across all admin pages
- Improved error handling and AJAX response validation
- Better keyboard navigation and accessibility
- Tested with WordPress 6.8.3 and latest WooCommerce
1.0.5
- Complete UI/UX redesign with modern design system
- Optimized dashboard widget size
- Unified design consistency across all admin pages
- Professional CSS styling with custom variables
- Improved settings page layout
- Code optimization for production
1.0.4
- Fix: Resolved WooCommerce order page breaking issue
- Fix: Corrected file loading order to prevent errors
- Improved code structure and organization
1.0.3
- Fix: Blocked order log instant deletion
- Fix: Checkout page block notices styled correctly
- Feature: Customer names in Blocked Orders Log
- Feature: Styled “Powered by” footer
- Enhancement: Robust phone number normalization
1.0.2
- Fix: Success ratio blocker grace period of 0 handling
1.0.1
- Initial Release
1.0
- Incomplete checkout tracking
- Manual order recovery
- Fraud Blocker (IP, Email, Phone)
- Dashboard Overview and detailed lists
- Courier Analytics
- Blocked Orders Log
- Admin settings for data retention and module toggles
