WooCommerce: Captcha or "I'm a human" checkbox doesn't display on the user login page
Note: The option to use Google reCAPTCHA and hCAPTCHA for login/lost password/registration forms has been deprecated. This option is replaced with the AntiBot Detection Engine and completely removed since Shield v18.5. This article is for refference use only.
If you use WooCommerce, and you have Login Guard - Bot Protection enabled, it can happen that "I'm a human" checkbox or Captcha doesn't display on the user login page.
"If I have Login Guard - Bot Protection enabled, "I'm a human" checkbox displays and works fine on the /wp-admin/ login page but on the user login /my-account/ page, user gets a message "You must check that box to say you’re not a bot" but there's no checkbox on the login form."
The reason why this happens is that you're probably running 1 of the older version of Shield. They do not support WooCommerce and other 3rd party plugins. They use custom login/registration/lost password forms and this requires some customization and testing on our end.
However, there's a support for 3rd party plugins and login systems, like WooCommerce:
- User Registration & Login Bot Protection
- 2-Factor Authentication for users and customers
If you want support for that, you can get this with Shield Pro only. The older versions of Shield had several inconsistencies with how it was handling bot protection and Recaptcha. If your checkout page is integrating a login process, and you’ve got login protection enabled, then you’ll need Shield Pro.
Note: There's also an option within Login Guard to choose the Checkout (WooCommerce) form for which bot protection measures will be deployed.
In this case, in order to get the "I'm human" checkbox or Recaptcha displaying correctly, you can either:
- stick with the older version of Shield;
- upgrade to the latest and turn off login protection; or
- go Pro
To learn what the extra features for ShieldPRO are, please follow this link here.
"I'm subscribed to Pro, but Recaptcha / "I'm a human" checkbox doesn't display on the Woocommerce login page. What could have caused this?"
This would be caused by user having a particularly custom Woocommerce theme, or custom built forms for the login page. These custom forms/theme don't fire the required WordPress/WooCommerce hooks that Shield needs to insert its code.
The only solution is to turn off Shield's login protection. Or, not to use a custom login plugin/theme or use one that supports standard WordPress login hooks.