If you use WooCommerce, and you have Login Guard - Bot Protection enabled, it can happen that "I'm a human" checkbox or Recaptcha doesn't display on the user login page.

Example 1: 

"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/lostpassword 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. Please see here.

In this case, in order to get the "I'm human" checkbox or Recaptcha displaying correctly, you can either:

  1. stick with the older version of Shield;
  2. upgrade to the latest and turn off login protection; or
  3. go Pro

To learn what the extra features for Shield Pro are, please read the article here.

Example 2: 

"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.