Email address already in use

Occasionally someone will try to make a purchase of a product and they'll get the message: 

The email address 'bob@example.com' is already in use.

where 'bob@example.com is a real address the customer tried to use. This happens because of a bug in older versions of Easy Digital Downloads that allowed multiple customers to be attached to the same user account.

This bug no longer exists, but if multiple customers were already attached to the same user account before the bug fix was released, their issue still exists.

The solution

The problem is resolved in EDD 2.6 and later, but if there are issues with connected accounts from previous versions you'll still see an error message alerting you about it. Here's how to fix it.

Find the WordPress user

Go to the Users section of the WordPress admin. In the top right is a search field. Put the problem email address into that field and search.

Then click on the username to edit the user. The URL will contain the ID of that user.

Find the conflicting customers

Take the user ID from the above search and go to Downloads → Customers. In the top right is a search box. Search for the user ID with a search string like this:

user:2

Replace 2 with the number you found in your own search. The results should be 2 or more customers.

Move purchase records

To resolve the conflict you must move all purchase records from one customer to the other, then delete the empty one. Pick the customer you want to delete and click the Name to edit.

On the edit page you'll find a Recent Payments box. Click View Details on each payment.

When editing a payment, you'll see a Customer Details box. Choose the other customer and press save.

Repeat this until there aren't any more purchase records. Once the Customer has no purchase records then you can click the trash can in the top right of the Customer record and delete the user.

Add the email address to the remaining user

Once the offending customer has been deleted, add the email address from that customer to the remaining customer. While editing the customer look for the Customer Emails section. Add the email address there and then that customer will be associated with both addresses.

At this point the issue should be resolved.