Following use-case:

  1. CiviCRM has many contacts, including contacts of individuals with the same primary email address (e.g. one corporate email, two individuals (contacts) working there) -> forget that there may be methods of better organizing this.
  2. Both contacts do not have a WP user account.
  3. CiviCRM WordPress Profile Sync is working
  4. One of the individuals registers with WP using THAT email
  5. Which contact does the new WP user get associated with?
  6. Testing it as best as I could the answer is: always with the lowest CiviCRM ID

I've tried to find if there's a reference to it in the plugin's PHP , or elsewhere.

Wondering if this is by default?


1 Answer 1


Given that WordPress treats email addresses as unique identifiers, this situation is necessarily going to be problematic. There are a number of ways that you can overcome the default matching (which is handled by CiviCRM's CRM_Core_BAO_UFMatch::synchronizeUFMatch() method), but the simplest is to manually alter the record in the ufMatch table such that it points to the Civi record that you want it to. You can alternatively create the WordPress users from their CiviCRM contact records by using the bulk update functionality provided when you enable CIVICRM_WP_PROFILE_SYNC_BULK in the plugin. Or perhaps you could decide not to "forget that there may be methods of better organizing this"...

  • Thanks! What I've been doing amounts to a (terrible) work-around - although it does work. The above problem arises because: Commented Oct 18, 2016 at 10:56
  • (continued) 1.) People become WP users via the WPUM plugin, 2.) that creates and syncs a contact via CiviCRM WordPress Profile Sync, 3.) these new contacts populate CiviCRM profiles that ultimately let them become members of an orgnization. 4.) Before they send off the registration form, they get the option to terminate - and by doing so delete there WP user account. 5.) No way to delete there CiviCRM contact... What I've done: creat CiviCRM groups to distinguish those completing registration vs. abort -> search for those (scheduled job) -> delete contacts found -> voila, no conflict. Commented Oct 18, 2016 at 11:04
  • If you've found a working solution, perhaps you could post it as an answer to your question? It will help others in the future! Commented Oct 18, 2016 at 13:33
  • Answer is in my comment ;) "What I've done: create CiviCRM groups [...]". Commented Oct 23, 2016 at 11:05
  • That's not what I meant - I meant click "Add Another Answer" below, add your answer there, then mark it as the solution to your original question. Commented Oct 23, 2016 at 18:28

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.