Hi. Thanks for reaching out. So to clarify a few points, the error provided is in fact caused/triggered by the Malcare plugin, as they are requiring the user_login exist/be present when doing their database query. However, the Malcare function is being triggered by the do_login action, which this plugin triggers after account creation, and the user does not have a user_login (i.e. username) when created via your WooCommerce checkout (only email).
So in summary: User created via WooCommerce checkout (without user_login/username) -> User Register Action in this plugin is triggered -> do_login action is triggered in Malcare plugin -> Malcare throws error because user_login/username is null during DB operation.
Some potential fixes for your situation: 1. Add username field in checkout for account creation if able, or 2. Create a custom plugin that updates users without a user_login/username to have user_login set to email (using add_action(‘user_register’…), or 3. Ask Malcare developer to update their do_login action to replace username with email if user_login/username does not exist (would be a quick fix).
This is not an error with this plugin though, and it would be outside the scope of this plugin’s purpose to update a user’s username if one did not exist, and considering WooCommerce did not assign one automatically, WordPress does not require one (users can log in with just email), and Malcare did not account for this possible null value, I’d say the most reasonable solution would be option 3 above.