Support

Home Forums Event Espresso Premium Updating Additional attendee information Attendee 1 purchases for others

Updating Additional attendee information Attendee 1 purchases for others

Posted: May 6, 2021 at 8:14 am


Omar Paloma

May 6, 2021 at 8:14 am

Related to https://eventespresso.com/topic/can-a-multi-ticket-purchaser-update-contact-information-after-purchase/

I have am testing registration options and it looks like allowing attendee 1 to copy to other attendees is the best option. We DO NOT get a tickbox for at registration but Attendee 1’s details are being copied. Perhaps I have a code snippet active somewhere. In either case, for us, this is ok.

The problem now is this. We create a WordPress user and a Paidmemberships Pro membership for each participant. We like this function because it helps us confirm with their crewleaders that that person is registered for a particular event. It also means that the participant can login to their own membership area and see which events they are registered for.

However, when we go to registrations | click “view registration details” for an attendee | and under Contact Details click “Create Contact” a new contact is created in Event espresso ONLY. No new WordPress user. No PMPro member. This means that even if we are adding a person who already exists in our system, the ticket “purchase” isn’t sync’d to the user account.

Is there a way to sync EE attendees to their WordPress accounts through the backend?


Omar Paloma

May 6, 2021 at 8:30 am

I forgot to mention we use the ee4 WP User Integration Plug-in Version 2.0.17.p and ee4 Version 4.10.11.p.

I understand there is a workaround via GIST but it seems impractical for a non-techie user.


Omar Paloma

May 8, 2021 at 11:02 am

I’ve run a few tests and I can confirm that when the additional attendee is “created” that attendee is sync’d to infusionsoft with all tags(cool); and the infusion tags are applied based on the original date of the ticket sale (I think that is very cool – but some may differ) however, no WordPress user is created. Further, if the ‘created’ user already exists, the ee4 record never updates either the user via user integration, or paid memberships pro HOWEVER infusionsoft is updated but the ‘created’ user becomes a duplicate in infusionsoft (bad).

I hope that’s clear.


Tony

  • Support Staff

May 11, 2021 at 5:49 am

Hi there,

I think it’s important to first clarify a few bits that stand out for me in your posts as it all ties together.

So, first this part:

I have am testing registration options and it looks like allowing attendee 1 to copy to other attendees is the best option. We DO NOT get a tickbox for at registration but Attendee 1’s details are being copied. Perhaps I have a code snippet active somewhere. In either case, for us, this is ok.

Whilst it might well be working ok for you, can you confirm if you have a snippet and what exactly it does for this as right now anything could be going on in the background which may (or may not) alter what needs to be done later.

The problem now is this. We create a WordPress user and a Paidmemberships Pro membership for each participant. We like this function because it helps us confirm with their crewleaders that that person is registered for a particular event. It also means that the participant can login to their own membership area and see which events they are registered for.

I assume you’ve written a snippet to do this? Event Espresso only creates a WP User account for the primary registrant, we do not create user accounts for additional registrants by default nor do we create any kind of relationship for membership plugins.

However, when we go to registrations | click “view registration details” for an attendee | and under Contact Details click “Create Contact” a new contact is created in Event espresso ONLY. No new WordPress user. No PMPro member. This means that even if we are adding a person who already exists in our system, the ticket “purchase” isn’t sync’d to the user account.

This is correct and ties into the above as EE doesn’t create user accounts for additional registrants (which is the only place you’ll see that ‘Create Contact’ button)

Also, when you say the user already exists in the system, have they previously registered onto an EE event, meaning they already has an EE_Contact? If so it now means you’ll have multiple EE_Contacts with the same details (which isn’t expected) as you’ve created a new contact and then updated the details to match an existing contact.

Is there a way to sync EE attendees to their WordPress accounts through the backend?

Not without custom coding.

I understand there is a workaround via GIST but it seems impractical for a non-techie user.

Problem is EE wasn’t designed to be used in this manor so there are going to be sections of this we simply don’t have a User Interface for, such as this.

I’ve run a few tests and I can confirm that when the additional attendee is “created” that attendee is sync’d to infusionsoft with all tags(cool); and the infusion tags are applied based on the original date of the ticket sale (I think that is very cool – but some may differ) however, no WordPress user is created.

Is this when you use the ‘Create Contact’ button in the registration admin?

Further, if the ‘created’ user already exists, the ee4 record never updates either the user via user integration

Can you add more details on what you mean here?

or paid memberships pro

We don’t have direct integrations with any membership plugins, that doesn’t mean Event Espresso can’t work with them, but updating something within EE will not update something within X/Y/Z membership plugin without custom development.

HOWEVER infusionsoft is updated but the ‘created’ user becomes a duplicate in infusionsoft (bad).

This I can investigate further as it will be something within the EE4 Infusionsoft add-on.


Omar Paloma

May 11, 2021 at 4:38 pm

Thanks Tony

can you confirm if you have a snippet and what exactly it does

I mis-spoke. I meant CSS. I had the following css install: `#spco-copy-attendee-dv {
display: none;
}`

Also, when you say the user already exists in the system, have they previously registered onto an EE event, meaning they already has an EE_Contact?

Primarily I mean they already have a wordpress user. I knew that the primary registrant could have a word press user created at registration but it wasn’t clear that additional attendees would not. May I understannd why the ability to create a user for additional attendees or at least allow that as not an option? It seems to me that if it’s possible to do this for the primary registrant it should be possible for additional attendees. Is it a technical issue or did it just not seem germane at the time?

If so it now means you’ll have multiple EE_Contacts with the same details

Honestly,, I don’t think I knew there was a difference between an EE4 user and a wordpress user (I thought EE created wordpress users… see above) Now that I know, can you tell me where I can check for the existence of an EE user?

Also, somewhere in the back of my mind I remember hearing about a snippet that stopped ee/wp from checking for the existence of a user. I cannot remember where or what the snippet was but If I installed it I would like to toggle it off. It will help me with understanding what is really happening.

Problem is EE wasn’t designed to be used in this manor so there are going to be sections of this we simply don’t have a User Interface for, such as this.

I think EE is great even though I’ve sometimes complained about functionality. I run team events. ee4 was not designed for this type of use. As such I am always running into the limits of the software as I try to shoehorn my needs into it. I genuinely understand this and I am always grateful for your assistance.

I’ve run a few tests and I can confirm that when the additional attendee is “created” that attendee is sync’d to infusionsoft with all tags(cool); and the infusion tags are applied based on the original date of the ticket sale (I think that is very cool – but some may differ) however, no WordPress user is created.

Is this when you use the ‘Create Contact’ button in the registration admin?

Yes, however I now understand that at wordpress user is neither created nor sync’d when it is an additional attendee.

Regarding infusionsoft, if an additional attendee is created using the ‘Create Contact’ button, a corresponding infusionsoft contact is created, however, if the infusionsoft contact already exists (based on email address) a new infusionsoft contact is created rather than the existing infusionsoft record being updated/sync’d. I have checked this several times.

We don’t have direct integrations with any membership plugins, that doesn’t mean Event Espresso can’t work with them, but updating something within EE will not update something within X/Y/Z membership plugin without custom development.

Thank you. As stated, I didn’t realise that ee4 and the WP User Integration Plug in
only operated on the initial registrant. I’m not sure from where the information is taken but a if a wp user (let’s call them wpu1) is also has a pmpro membership (in my system most do) and that user, wpu1, makes a purchase in ee4 that, purchase can be seen on their pmpro members page. If that wpu1 is also a submember of another user (let’s call them SM1) then SM1 can see the user status of wpu1. Since SM1 would be making the purchase, it is not critially imporantant that a record for wpu1 is created via ee, as they can get their membership and, hence WP user record via PMpro HOWEVER, it will be problematic if wpu1 has multiple records in infusionsoft.

I hope that makes it clearer. Thanks


Omar Paloma

May 12, 2021 at 12:41 am

I forgot to close my tag:

Thank you. As stated, I didn’t realise that ee4 and the WP User Integration Plug in
only operated on the initial registrant. I’m not sure from where the information is taken but a if a wp user (let’s call them wpu1) is also has a pmpro membership (in my system most do) and that user, wpu1, makes a purchase in ee4 that, purchase can be seen on their pmpro members page. If that wpu1 is also a submember of another user (let’s call them SM1) then SM1 can see the user status of wpu1. Since SM1 would be making the purchase, it is not critially imporantant that a record for wpu1 is created via ee, as they can get their membership and, hence WP user record via PMpro HOWEVER, it will be problematic if wpu1 has multiple records in infusionsoft.

I hope that makes it clearer. Thanks


Omar Paloma

May 12, 2021 at 1:28 am

If I switch to the DIVI default theme rather than my own Divi Child theme and copy attendee tickbox appears works. This tells me there is likely some css active in my child theme but cannot find it.

If I try to use the iced mocha theme a critical wordpress error occurs and the site will not load. It appears I still have access to the admin area so I was able to restore tot he divi theme without problems.

In further testing this ‘critical error occurs in all wp themes EXCEPT Divi and my Divi Child theme.

Obviously something else is going on too. For now I will stay with the default divi theme.


Tony

  • Support Staff

May 12, 2021 at 5:59 am

I mis-spoke. I meant CSS. I had the following css install: `#spco-copy-attendee-dv {
display: none;
}`

Ah, ok. So if the content entered into each field is copying automatically you must also have some JavaScript loading on the site to do that, right?

Primarily I mean they already have a wordpress user. I knew that the primary registrant could have a word press user created at registration but it wasn’t clear that additional attendees would not. May I understannd why the ability to create a user for additional attendees or at least allow that as not an option? It seems to me that if it’s possible to do this for the primary registrant it should be possible for additional attendees. Is it a technical issue or did it just not seem germane at the time?

With regards to adding options for various features, we simply can’t add options in the UI for every feature request we get for Event Espresso and the reason being is that EE would very quickly end up being a wall of options. It leads to decision paralysis and isn’t the direction we want to take with EE.

Now, having said that, it IS possible to do with the hooks we have available and we have an example of how to have a user account created for each registrant here:

https://github.com/eventespresso/ee-code-snippet-library/blob/master/addons/eea-wp-user/jf_ee_process_multi_wpuser_for_attendees.php

We chose to use the primary registrant only as that is the user EE is dealing with directly, it’s a design choice rather than a technical limitation, although there will be ore you need to take into consideration when creating multiple accounts.

Honestly,, I don’t think I knew there was a difference between an EE4 user and a wordpress user (I thought EE created wordpress users… see above) Now that I know, can you tell me where I can check for the existence of an EE user?

Just to be clear, it’s an EE_Contact, not an EE_user. I’m not trying to sound nit-picky when I say that but EE doesn’t have its own ‘Users’.

Event Espresso 4 core (ignoring the WP User integration add-on for a little) has almost nothing at all to do with WP Users, it doesn’t create WP_Users on its own as the admin (or admin type user) manages the events and visitors (logged in or not) register onto Events. When a visitor registers onto an event EE creates various objects but the important ones for this discussion are the EE_Contact and the EE_Registration.

EE_Contact – think of this as the person linked to the registration, we also refer to the EE_Contact as an EE_Attendee if that helps explain better. It’s the actual person registering so the First Name, Last Name, Email, Bio, Address Details etc are saved within that entity. Those details are unique to you and not necessarily the registration, so you are the EE_Contact.

EE_Registration – this is a registration on the event, it stores data about the specific registration you are making. For example the Event ID (EVT_ID), Ticket ID (TKT_ID) for the specific ticket this registration is for, the EE_Contact ID the registration is linked to (ATT_ID. Note this is the import part for you) its Status, Reg_Date, Group count, Reg Count.

You as a person can have multiple registrations and you as a person have not changed between those registrations, right? You are still Omar Paloma registering onto X tickets across X events etc so what EE does with registrations is link them to the EE_Contact ID (ATT_ID) with a one to many relationships (One EE_Contact can have many EE_Registrations).

You can find the EE_Contacts EE creates in Event Espresso -> Registrations -> Contact List. That’s all of the EE_Contacts that have been created on your system. Note that changing details on contacts without understanding the above fully can and will lead to unexpected results.

Also just to be clear ALL of the above has nothing to do with WP_Users at all.

Now when you add the WP_User integration into the mix, what it does is on the checkout page it uses the primary registrants contact details created when they submit the attendee info, checks for a WP_User account using the First Name, Last Name and Email address. If it finds one that matches it links the WP_User account to the EE_Contact using user meta (in short it stores the ATT_ID with the WP_User data so that EE know which user the contact is linked to).

If it does NOT find a matching WP_User account then (depending on your settings) it creates a WP_User account using the same details references above and links that new user account to the EE_Contact in the same way.

If your reading the above finding this fairly complex or hard to follow, its because EE has been designed to be as flexible as we can and this kind of setup can work with the various different Membership/member plugins etc (note again that working with is not the same thing as a full integration with each of those plugins). That’s not to say other setups can’t work, but this is the design choice we went with.

Also, somewhere in the back of my mind I remember hearing about a snippet that stopped ee/wp from checking for the existence of a user. I cannot remember where or what the snippet was but If I installed it I would like to toggle it off. It will help me with understanding what is really happening.

I checked your post history and found this thread:

https://eventespresso.com/topic/urgent-additional-attendee-already-exists/

So it depends where on the site you’ve added that code, but you can comment it out again to see the traffic cop in action.

Yes, however I now understand that at wordpress user is neither created nor sync’d when it is an additional attendee.

See above, you can create additional WP_Users for additional registrants on the front end, however, that’s not going to work with that button as it’s separate. Creating WP_Users when creating contacts with that button will require custom code.

Regarding infusionsoft, if an additional attendee is created using the ‘Create Contact’ button, a corresponding infusionsoft contact is created, however, if the infusionsoft contact already exists (based on email address) a new infusionsoft contact is created rather than the existing infusionsoft record being updated/sync’d. I have checked this several times.

I’ve created a ticket to investigate this, it looks like the InfusionSoft add-on isn’t taking that create contact button into account and will need a fix applied.

Thank you. As stated, I didn’t realise that ee4 and the WP User Integration Plug in
only operated on the initial registrant. I’m not sure from where the information is taken but a if a wp user (let’s call them wpu1) is also has a pmpro membership (in my system most do) and that user, wpu1, makes a purchase in ee4 that, purchase can be seen on their pmpro members page.

Is this currently? Or is that what you are looking to achieve?

On the PMP Pro members page are you using the [ESPRESSO_MY_EVENTS] shortcode?

If that wpu1 is also a submember of another user (let’s call them SM1) then SM1 can see the user status of wpu1.

With regards to Event Espresso and WP, what is a submember here?

Since SM1 would be making the purchase, it is not critially imporantant that a record for wpu1 is created via ee, as they can get their membership and, hence WP user record via PMpro

?? Sub member being an additional registrant?

Sorry but I don’t follow this.

If I switch to the DIVI default theme rather than my own Divi Child theme and copy attendee tickbox appears works. This tells me there is likely some css active in my child theme but cannot find it.

Likely style.css or Appearance -> Customize -> Additional CSS (with the child theme active).

In further testing this ‘critical error occurs in all wp themes EXCEPT Divi and my Divi Child theme.

You have code on your site that is reliant on Divi and isn’t checking if it’s available beforehand, that’s fairly normal/common. To know more you’ll need to check the error_log’s to find the full error being thrown on those requests.


Omar Paloma

May 12, 2021 at 12:56 pm

Just to be clear, it’s an EE_Contact, not an EE_user. I’m not trying to sound nit-picky when I say that but EE doesn’t have its own ‘Users’.

Not at all. This just adds clarity. I know enough to be dangerous and this kind of detail is important to avoid further confusion.

Ah, ok. So if the content entered into each field is copying automatically you must also have some JavaScript loading on the site to do that, right?

Sorry… I am not sure how it works. I only know that attendee 1 becomes the name used for all attendees if the copy user tickbox is hidden. I confess to having been less organised than I probably should have been. The logic behind ee4 and users is clear enough. I am looking at josh’s code and it looks like it will help except for one note in the code

* Q: What happens if there is already a user account matching the email address for one of the registrations? 
 * A: By default, it will not allow the registration to proceed and they will be prompted to use a different email address or log in.
 */

I have these pieces of script in a custom functions file:

//* Please do NOT include the opening php tag, except of course if you're starting with a blank file
//* Disable email match check for logged out users

add_filter( 'EED_WP_Users_SPCO__verify_user_access__perform_email_user_match_check', 'ee_wp_users_remove_email_user_match_check_logged_out' );

function ee_wp_users_remove_email_user_match_check_logged_out() {
    if ( ! is_user_logged_in() ) {
        return false;        
    } else {
        return true;
    }
}

//* Please do NOT include the opening php tag, except of course if you're starting with a blank file
//* Disable email match check for all users
add_filter( 'EED_WP_Users_SPCO__verify_user_access__perform_email_user_match_check', '__return_false' );

I am guessing this overrides the default mentioned by Josh. And I remember that exchange… I apologise for my frustration then, and now. I really don’t blame ee, you or Josh. The issue then is similar to the issue now. It’s just something that ee is not designed for and I guess I’ve gotten myself in a muddle trying to hack my way through.

EE4 is great, but what i need either a) doesn’t exist in an affordable manner or b) is really poorly designed.

Re:Infusionsoft

I have some code from a gist that is related to infusionsoft. It’s meant to add tags before checkout but maybe its interfering with the contact syncing.
I will find it all and add it here.

With regards to Event Espresso and WP, what is a submember here?

When I say sub user I mean additional attendee. The additional attendee has to have a pmpro membership so even if ee4 cannot create a WP user for the additional attendee they will still have a wp user as a result of PMpro.

I need to do some checking to understand what happens if this additional_attendee_pmpro_wp_user is also an ee_contact. Does the shortcode show this additional_attendee_pmpro_wp_user is also an ee_contact the events they’ve been registered into? From what you’ve written they SHOULD see these events even if they were not the Primary registrant because ee4 matches the ee_contact and wp_contact vis att_id if they exist… right?

Boy.. I hope I understood that.

I do use the [ESPRESSO_MY_EVENTS] shortcode. That answer where the users event data is coming from 🙂


Omar Paloma

May 12, 2021 at 12:59 pm

Let me try that again 🙂

I need to do some checking to understand what happens if this additional_attendee_pmpro_wp_user is also an ee_contact.

Does the shortcode [ESPRESSO_MY_EVENTS] show this additional_attendee_pmpro_wp_user who is also an ee_contact the events they’ve been registered into? From what you’ve written they SHOULD see these events even if they were not the Primary registrant because ee4 matches the ee_contact and wp_contact via att_id, if they exist… right?


Tony

  • Support Staff

May 13, 2021 at 3:04 am

I am guessing this overrides the default mentioned by Josh.

That it does, but that specific function only changes the behaviour when not log in.

If logged in and registering it will still check for a current user, if you want to completely disable the check then just using the single line from the other snippet in that gist HERE.

And I remember that exchange… I apologise for my frustration then, and now. I really don’t blame ee, you or Josh. The issue then is similar to the issue now. It’s just something that ee is not designed for and I guess I’ve gotten myself in a muddle trying to hack my way through.

It happens 🙂

EE4 is great, but what i need either a) doesn’t exist in an affordable manner or b) is really poorly designed.

We obviously need to make our own design choices on the direction EE takes and can’t really support every use case out the box, custom development is an option but can take a lot of time/code depending on the changes needed. In terms of really poorly designed, I’d say that’s correct in that it wasn’t designed for this use case.

I remember when you opened up the original thread about this (the one linked in your opening post here), it sparked discussion internally it’s an interesting concept but with a lot of moving parts under the hood for it to work in a ‘better’ way.

Re:Infusionsoft

I have some code from a gist that is related to infusionsoft. It’s meant to add tags before checkout but maybe its interfering with the contact syncing.

Possibly, although I’m not getting the same issue, there is an issue with it, but mine is different.

When I use the ‘create contact’ button for an EE_Contact that has already been synced with IS then essentially what happens is the original IS contact is linked with that new contact on creation (done via a query to IS for First Name, Last Name and Email from the EE_Contact). There is dupe check whenever the IS add-on creates a new contact within InfusionSoft which just means that when it tries to create a contact if IS already has one it simply returns that ID rather then creating a new one and returning that new ID.

So you shouldn’t be getting duplicate contacts, although you would be updating a previous contact which should be linked to the Primary Registrant.

I need to do some checking to understand what happens if this additional_attendee_pmpro_wp_user is also an ee_contact.

Likely nothing as EE won’t know anything about additional_attendee_pmpro_wp_user unless there’s custom code for it.

Does the shortcode show this additional_attendee_pmpro_wp_user is also an ee_contact the events they’ve been registered into? From what you’ve written they SHOULD see these events even if they were not the Primary registrant because ee4 matches the ee_contact and wp_contact vis att_id if they exist… right?

Sorry but I’m not sure I follow but if the additional_attendee_pmpro_wp_user is somehow logging in as the same WP_User as the primary, then yes it will show the events.

The add-on basically does something like:

$attendee_id = get_user_option('EE_Attendee_ID', get_current_user_id());

In English, get the value saved in EE_Attendee_ID from the currently logged in users metadata and that is then used for the ATT_ID in the query. So if somehow the subuser logs in and has the same value (I can’t think of how that would be the case), then yes it’ll show up on their My Events section.

Actually, another thought. If you are asking if the registration will continue to show on the Primary Registrants ‘My Events’ section after you have changed the contact assigned it, then no, not by default it won’t. However I do have a snippet that shows all of the registrations in a group registration made by the primary registrant, as long as the primary registrants hasn’t been changed.

The support post ‘Updating Additional attendee information Attendee 1 purchases for others’ is closed to new replies.

Have a question about this support post? Create a new support post in our support forums and include a link to this existing support post so we can help you.

Event Espresso