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.
Order Status Manager
Create and manage custom WooCommerce order statuses from a dedicated admin page. This feature allows you to:
- View status overview cards showing live order counts for every status (default and custom)
- Create custom statuses with a label, color, description, and icon from a visual picker with 30+ order-management icons
- Edit any status including default WooCommerce statuses (Pending, Processing, On Hold, etc.) — change labels, colors, and icons
- Delete any status with automatic order migration — if orders exist on a status being deleted, you are prompted to choose a target status
- Reset to defaults from Settings to restore the original 7 WooCommerce statuses if any were accidentally deleted
- Custom statuses automatically appear in the WooCommerce order status dropdown
- Toggle the feature on/off from Settings > Module Toggles
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
- Order Statuses – manage all WooCommerce order statuses with overview cards
- 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
- Enable Order Statuses – turn the custom order status manager 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.2.0
- Feature: Free/Pro feature gating system for all plan tiers
- Feature: Phone number masking for free users everywhere numbers are displayed (format: 018*******)
- Feature: Email address masking for free users everywhere emails are displayed (format: cu***@domain.com)
- Feature: Hover-based lock overlays on locked sections — content visible normally, lock icon appears on hover
- Feature: Customer Info card locked in checkout and blocked order detail modals for free users
- Feature: Action buttons (Recover, Hold, Cancel, Re-open) locked in detail modals for free users
- Feature: Follow Up, Cancelled, Recovered, and Blocked Orders tabs locked for free users — only Incomplete tab remains free
- Feature: Fraud Blocking section locked in detail modals for free users (phone and email values masked in block buttons)
- Feature: Domain, Address, and Device blocking tabs locked for free users on Fraud Blocker page
- Feature: Advanced fraud blocker settings locked (Auto-Block, Rate Limiting, Device Blocking, Risk Scoring) for free users
- Feature: Courier Analytics page fully locked for free users
- Feature: “Upgrade to Pro” popup modal with WhatsApp Community, two direct WhatsApp contact buttons, and pricing page link
- Enhancement: All upgrade prompts now open the popup modal instead of navigating directly to pricing page
- Enhancement: WhatsApp contact URLs added as plugin constants (CG_WHATSAPP_CONTACT1, CG_WHATSAPP_CONTACT2)
- Enhancement: Dark mode support for all new lock overlays and upgrade modal
1.1.6
- Feature: Custom WooCommerce Order Status Manager (create, edit, delete statuses)
- Feature: Status overview cards with live order counts per status
- Feature: Visual icon picker with 30+ order-management icons and hover tooltips
- Feature: Edit and delete default WooCommerce statuses (with order migration support)
- Feature: Reset Order Statuses button in Settings to restore WooCommerce defaults
- Feature: Order Statuses module toggle in Settings (enable/disable the feature)
- Feature: “Show in Bulk Actions” toggle per order status — control which statuses appear in the WooCommerce orders bulk action dropdown
- Enhancement: Usage limits now fail-closed — actions are blocked when license cache is unavailable instead of allowing unlimited usage
- Enhancement: HQ sync frequency upgraded from daily to every 6 hours via cron, plus inline sync on admin page loads every 4 hours
- Enhancement: License cache populated immediately on plugin activation to prevent bypass via deactivate/reactivate
- Enhancement: Usage warning banners on all CheckoutGuard admin pages when approaching or hitting plan limits
- Enhancement: Limit-hit error messages now include Upgrade and WhatsApp contact links
- Enhancement: Page-load toast notifications for at-limit usage items
- Enhancement: 15-minute sync cooldown after failed HQ connection to prevent request hammering
- Enhancement: All statuses (default + custom) managed in a unified table with Type badges
- Enhancement: Custom statuses automatically register with WordPress and appear in WooCommerce order dropdowns
- Enhancement: Slug auto-generation from label with 17-character limit for WooCommerce compatibility
- Enhancement: Order migration prompt when deleting a status that has existing orders
- Enhancement: Bulk actions dropdown now dynamically built from managed statuses instead of relying on WooCommerce’s hardcoded list
- Enhancement: “Show in Bulk Actions” defaults to disabled — admin must explicitly enable per status
- Fix: Reserved slug validation prevents creating statuses with slugs that conflict with WooCommerce internal hooks (e.g., “changed”)
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
