Checkout Shield for WooCommerce – Stop Fake Orders, Spam Bots & Card Testing
Checkout Shield blocks the scripted checkout submissions that CAPTCHA never sees. Card testing bots don’t fill out your checkout form. They hit your store’s checkout API directly, completely skipping any reCAPTCHA or hCaptcha you’ve set up. That’s why CAPTCHA alone doesn’t stop them. Your site signs a proof into the checkout page it serves. A submission that carries that proof loaded the page; one that doesn’t, didn’t. Submissions with no valid proof are stopped before WooCommerce processes the order. What this stops, and what it does not Being straight about this is more useful than a bigger promise. It stops anything that posts to your checkout without loading the checkout page first: curl scripts, direct Store API calls, replayed form posts, and the card testing runs that work this way. This is the large majority of automated checkout abuse, and it is the part CAPTCHA misses. It does not stop a bot that drives a real browser. Something that genuinely loads your checkout page receives a genuine proof, because that is exactly what the proof records. Once loaded, that proof stays valid for the life of the shopping session, so a script can reuse it. No proof of this kind can tell the second submission from the first, since the thing being proven is identical. For that tier you want a bot mitigation service in front of the site (Cloudflare Bot Fight Mode, Sucuri) alongside this plugin. What this plugin can do is show you when it is happening: the dashboard reports payments that failed repeatedly from a single checkout visit, which is what working through stolen card numbers looks like. In Pro it can also act on it. Once a visit crosses a failure limit you set, the source IP is banned for a while so it can’t just start a fresh visit and keep going, and the ban lifts itself, so a bad guess never becomes a permanent lock-out. A determined attacker can still rotate IPs, which is why the service in front of the site stays the front line, but for the common case this turns the pattern off at the source. Why Store Owners Choose This Plugin Catches what CAPTCHA misses: blocks bots hitting your checkout API directly, without asking shoppers to prove anything Works with any caching: LiteSpeed, Cloudflare, WP Rocket and W3TC, with no conflicts Nothing to configure: no rules to write and no thresholds to tune Never blocks your customers by mistake: it only starts once it has seen a real checkout on your store work, and if your theme ever stops carrying the proof it detects that, keeps letting real shoppers through, and tells you what to fix No external services: everything runs on your server, no subscriptions Adds milliseconds: the check is local, with no third-party call to wait on Features (Free) Automatic bot blocking: no rules to configure; it arms itself once it has seen one checkout on your store work 4 protection levels: Learning, Permissive, Balanced and Strict, so you choose how aggressive you want to be One place for everything: a dedicated Checkout Shield screen with a live “what’s protected right now” overview, plus your settings and logs Dashboard overview: see blocked vs verified orders at a glance with a 7-day chart Order status tracking: know which orders were flagged, passed, or blocked IP whitelist: let trusted addresses through, supports CIDR notation API key authentication: for headless and custom checkout setups Works with all checkout types: classic, block-based, and all payment gateways HPOS compatible: works with High-Performance Order Storage WooCommerce logging: full integration with WooCommerce Status logs Pro Features Pro is about two things: stopping more, and letting you see it happen. Live attack timeline: watch scripted attempts get stopped as they arrive, with the surface, reason, masked email, and IP for each one Test your protection: one button fires the real card-testing request at your own store and shows you it hit a wall, so you never have to wonder whether it’s working Auto-ban repeat offenders: when one visit keeps failing payment past a limit you set, its IP is blocked for a while and then released on its own, so it can’t just start over Registration protection: the same no-CAPTCHA proof on your sign-up forms, plus throwaway-email blocking and per-IP rate limiting, to stop the fake accounts that come before fraud Throwaway email blocking: reject checkouts using a known disposable inbox, with a domain list the plugin keeps up to date for you 3-level logging control: turn logging off, log blocked attempts only, or log everything Recent blocks feed: the last 50 blocked attempts with email, payment method, and reason Automatic CDN/proxy detection: identifies real visitor IPs behind Cloudflare, Sucuri, or Akamai Stronger permissive mode: tighter bot detection with referrer and user-agent checks Checkout details in logs: see which email and payment method bots tried to use Customer blocklist: block repeat offenders by email, name, address, phone, IP, or postal code, all managed from the Checkout Shield screen One-click order blocking: block a customer directly from any order screen Learn more about Pro features
Top keywords
- checkout18×2.09%
- proof9×1.05%
- store6×0.70%
- blocked5×0.58%
- bot5×0.58%
- email5×0.58%
- ip5×0.58%
- order5×0.58%
- real5×0.58%
- api4×0.47%
- blocking4×0.47%
- blocks4×0.47%
F4 Simple Checkout Fields for WooCommerce
With F4 Simple Checkout Fields for WooCommerce you can simply add new fields to the WooCommerce checkout. There is no UI to manage the fields, they only can be added with a simple PHP method. That ensures that the plugin is lightweight and easy to handle, even though you need simple PHP knowledge and access to the file system to add the code (preferred your WordPress theme). Usage If you first install this plugin, it will do nothing. But it provides a method to add as many custom fields to your checkout as you need. Here’s a sample how you could add a simple text field to the billing and shipping address: add_action('init', function() { F4\WCSCF\Core\Helpers::register_field(array( 'name' => 'demo-text', 'type' => 'text', 'label' => 'Text Field' )); }); Arguments The register_field method provides a lot of arguments to customize your fields. Some of the arguments are identically to the officiel WooCommerce arguments: F4\WCSCF\Core\Helpers::register_field(array( // (array) Defines where the field should be added // billing = billing address, shipping = shipping address 'target' => array('billing', 'shipping'), // (string) The internal name for the field. Must be unique 'name' => '', // (string) The field type (text, textarea, password, select) 'type' => 'text', // (string) The field label 'label' => '', // (string) The description 'description' => '', // (string) The placeholder for the input (only text, textarea or password) 'placeholder' => '', // (boolean) Defines if the field is required or not 'required' => false, // (string) The default value 'default' => '', // (array) An array with css classes that should be added to the field 'class' => array(), // (array) An array with field options (only for field type select) // Array key => value pairs: array('value' => 'Label') 'options' => array(), // (string|array) Defines the position, where the field should be added // last = append after the last field // first = prepend before the first field // array('before' => 'fieldname') = prepend before the defined field // array('after' => 'fieldname') = append after the defined field 'position' => 'last', // 'first', 'last', array('before' => ''), array('after' => '') // (string) The delimiter that should be used in the formatted address outputs 'formatted_address_delimiter' => "\n", // (boolean) Defines if the field should be displayed after the formatted address in the order backend or not 'show_after_formatted_admin_order_address' => false, // (boolean) Defines if the field label should be prepended before the field value in formatted address 'show_formatted_address_label' => false, // (boolean) Defines if the field should be displayed in the account address forms 'show_in_address_form' => true, // (boolean) Defines if the field should be displayed in the checkout forms 'show_in_order_form' => true, // (boolean) Defines if the field should be displayed in the formatted address 'show_in_formatted_address' => true, // (boolean) Defines if the field should be displayed in the admin user form 'show_in_admin_user_form' => true, // (boolean) Defines if the field should be displayed in the admin order form 'show_in_admin_order_form' => true, // (boolean) Defines if the field should be displayed in the privacy customer data 'show_in_privacy_customer_data' => true, // (boolean) Defines if the field should be displayed in the privacy order data 'show_in_privacy_order_data' => true )); Features overview Adds custom text, textarea, password and select fields to the checkout Easy to use Lightweight and optimized 100% free! Planned features Full integration into API and REST