Support

Home Forums Event Espresso Premium Tickets can be ordered for free with page refresh

Tickets can be ordered for free with page refresh

Posted: April 16, 2015 at 7:22 am


Joël van de Pol

April 16, 2015 at 7:22 am

I’m running Event Espresso 3.1.37.1.P with Seating Chart 1.2.1-alpha. While ordering a ticket, a refresh of the confirmation page will set the total cost of the reservation to 0. When the option to skip the confirmation page is activated, a refresh of the payment page will do the same. This way, customers can easily register for events for free and their registrations appear as “payment completed” in the attendee list. This is unacceptable. Please help.


Joël van de Pol

April 16, 2015 at 7:41 am

Also, reloading the final confirmation page will result in double entries in the database.


Dean

April 17, 2015 at 2:24 am

Hi Joël,

Thanks for reporting this issue, I will raise a high priority ticket to look into it!

Regarding the double entries, I am not seeing this. Refreshing the thank you page merely resend the notification. Can you clarify the exact steps taken that will produce this please?


Joël van de Pol

April 17, 2015 at 4:11 am

I just did some testing. The double entries only occur if the confirmation page is refreshed before. This results in the total costs being set to 0, and consequent refreshing will create double entries with new registration numbers each.


Joël van de Pol

April 17, 2015 at 4:14 am

Double entries are also made when the price of a seat is set to 0.


Joël van de Pol

April 17, 2015 at 5:26 am

Another way to get free tickets is to use the back button of the browser on the confirmation page and to submit the reservation form again.


Josh

  • Support Staff

April 17, 2015 at 3:43 pm

Hi Joël,

There’s a mechanism in place to dissuade the registrants from refreshing the page. When they do that (there’s a warning not to), they are essentially re-submitting the previous page’s form. The code in place erases the prior registration along with the seating assignment. So if they refresh the page, their seating assignment is deleted from the seating chart’s seat assignment table in the database.

If you prefer to make it so if they go through and refresh the page, the seating chart assignment gets transferred to the new submission that overwrites the old submission, you can make an edit to the /includes/process-registration/add_attendees_to_db.php file starting on line 125 where it has this:

//Added for seating chart addon
if ( defined('ESPRESSO_SEATING_CHART')) {				
	$SQL = "DELETE FROM " . EVENTS_SEATING_CHART_EVENT_SEAT_TABLE . ' ';
	$SQL .= "WHERE attendee_id = %d";
	$wpdb->query($wpdb->prepare( $SQL, $v->id ));
}

You remove or comment out those lines. This will change what happens when the original registration submission is replaced, so the new registration submission will get the seating chart seat assignment.


Joël van de Pol

April 18, 2015 at 12:17 am

So the problem is that the old submission including the seating chart assignment is deleted, but the new submission doesn’t include the seating chart assignment. I commented those lines, which seems to work. Will you include the fix in the next update?


Joël van de Pol

April 20, 2015 at 4:54 am

There’s yet another issue. With every refresh, a new registration id and attendee id is assigned. The client and the admin will get multiple e-mails with different registration ids. This can get messy quickly if the customer chooses to pay via bank transfer. We need a unique reference id for each reservation, which apparently Event Espresso is not able to provide. Any solutions for this?


Josh

  • Support Staff

April 22, 2015 at 1:10 pm

Hi Joël,

You can try setting the emails to go out after payment, or add a script to the page that disables refreshing the page.

The support post ‘Tickets can be ordered for free with page refresh’ 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