Require WooCommerce registration username to be email

Add the following lines of code to your functions.php file and you should be set.

add_filter( 'woocommerce_checkout_fields' , 'custom_override_checkout_fields' );
function custom_override_checkout_fields( $fields ) {

$fields['account']['account_username']['type'] = 'email';
$fields['account']['account_username']['label'] = 'Account username (email)';
return $fields;

}
What this code does is changes the type of the username field into email which by default, modern browsers would force validate the user entered data to be an email address. Then the label for the field itself should indicate that you are looking for email as the username to remove any confusion.

 

Cheers.

 

Source: https://docs.woocommerce.com/document/tutorial-customising-checkout-fields-using-actions-and-filters/