Paypal email does not match user's existing dap account
The only way dap can connect user accounts is if the user uses the same email Id for the signup and for purchases. If they use a different email account, then as long as the Paypal Email in their dap profile is set to match their actual paypal id, dap can connect the accounts if the user makes purchase using that paypal Id.
In the upcoming release of dap (dap 5.0), we have added intelligence to the dap-generated-button for paypal to automatically detect if the user is logged in and if yes, then use that logged-in email as the primary dap email and just add the paypal email to the 'paypal email' field in the user's dap profile.
But in all current versions of dap, if a user already has a dap account with say email - firstname.lastname@example.org and now makes a paypal purchase using paypal email (say email@example.com), then upon paypal purchase, dap will end up creating a new account using firstname.lastname@example.org. So the user will end up with 2 dap accounts even if they were logged in to dap with their email - email@example.com at the time of paypal purchase.
To prevent this issue, you can advise your users to update their 'paypal email' in their current dap profile (firstname.lastname@example.org) to match their actual paypal email. This way dap will not create new account but simply add the product to the existing account.
If the users use their paypal email id to signup for free product, then upon purchase of an actual product via paypal, dap will know how to link the free and paid products to the same user account.
If the users use a different email id to signup for free product and that does not match their actual paypal id, then the users need to update the paypal email in their dap profile after they sign for the free product.
You can also add the paypal email as a field to the dap direct signup form so when the users signup to the free product, their paypal email will be set so future purchases will be tied to same user account.
After you generate the dap signup form code, where you accept email and firstname, you can add this:
<td>Your Paypal Email :</td>
<input type="text" name="paypal_email" size="10"></td>
Please read this on how to merge accounts when a user ends up with 2 different dap accounts (one for free product and another for paid product):