Currently, end-users can register for the same event multiple times. We need to add logic to check whether the participant is already registered for an event when an online Registration form (Register.php) is submitted. The test for an existing registration is:
- Match on Event ID and Email Address: participant record with event_id = this event and contact_id belongs to contact with the same email address as the one entered on the form
- Match on Role: participant.role_id is the same as the one being submitted (e.g. if we find a matching participant record, but that record has role = 4 (speaker) - and this event form is configured to set role = 1 (attendee), then this is NOT a duplicate match.
- Status is not Cancelled: Status of existing participant record != 4
- Match on Test vs. Live: is_test is the same as current "mode" (e.g. if we're in preview mode, is_test = 1, else is_test = 0)
If we find a duplicate match based on above tests, return the following status message (this can be on it's own page with a back button, or displayed on the Register form page):
"Oops. It looks like you are already registered for this event. If you want to change your registration, or you feel that you've gotten this message in error, please contact the site administrator."