
Michael Docker
I just created a test event to see how bookings are handled. I created a ticket with 50 spaces, capped the booking at 50 places and selected a booking form. When I go to the event it just says ‘This event is sold out’. Please help.

Stephen Harris
Hi David,
Regarding the duplicate booking issue, the above logs suggest that the client has made multiple requests. I haven’t been able to replicate this issue. Does it happen consistently? Can you see the browser making duplicate requests in your network tab of the browser console?
The eventorganiser_pre_gateway_booking
has been deprecated since 3.0. (Apologies, this wasn’t listed in the changelog). How bookings/payments works now (in order to Strong Customer Authentication) is that the user stays on the same page for, and the browser makes a series of calls to the WordPress API.
When the booking is complete, the user can be redirected but this isn’t configurable on a per-gateway option.
However, the content of the confirmation section can be changed (see templates/eo-booking-form-confirmation.php
). The template is written in PHP but then is rendered using underscore, so you can conditionally change the content based on the booking object (e.g. its status and amount).

AK
Thank you Stephen!
Date filter is working fine again.
I’m still testing v3 at my staging and there is just one thing I just wanted to check with you before I upgrade:
When I have a browser console open while submitting a booking form and I intentionally leave out a required field or giva a wrong answer to the math question.
This brings up the expected validation error messages for the user.
However in the browser console there now is the following error:
“XHR POST /wp-json/eventorg/v1/booking HTTP/2 400 Bad Request”
When the form is filled out corrected, submission is working normal.
Is that browser console error expected/normal here or is it a bug?
Grateful for your insights on this before I upgrade!
Thanks!
Anders

Stephen Harris
Hi Madeleine,
Just to confirm – you are seeing duplicate bookings rather than just duplicate notifications?
Are you able to provide a link to the site (and a login) for me to see this? First thing to check is if its caused by duplicate requests form the browser to the API or whether something on the API is calling the booking code to run twice.
The former can be checked by looking in the network tab of your browser console.
For the latter, first add define( 'WP_DEBUG_LOG', true);
in wp-config.php
above where it says to stop editing. Then add the following line
$this->logger->error(wp_debug_backtrace_summary());
immediately before eo_insert_booking()
on line 167 of includes/booking/BookingController.php.
Then make a test booking. In your wp-content folder you should see an eventorganiserp.log
. file. In it, corresponding to the time when you made the booking you should see something like
[eventorgpro-error] 2021-03-26 00:48:42 172.19.0.1 require(‘wp-blog-header.php’), wp, WP->main, WP->parse_request, do_action_ref_array(‘parse_request’), WP_Hook->do_action, WP_Hook->apply_filters, rest_api_loaded, WP_REST_Server->serve_request, WP_REST_Server->dispatch, WP_REST_Server->respond_to_request, EventOrganiserPro\WP{closure}, EventOrganiserPro\booking\BookingController->create_booking
What logs do you see?

Madeleine Parkyn
Hi Stephen
In case this helps. When I test the booking form (using a new private browser window) only one booking is made and one confirmation email sent. The duplicates are happening when other people make bookings.
Many thanks
Madeleine

Madeleine Parkyn
Hello Stephen
I have a problem which has just started in the last few days. When someone books an event the system is making duplicate bookings and sending out 2 email confirmations. I realise that you probably need more information than this, but do you know why this is happening? Or what else do you need to know?
This is quite pressing because it is causing us a lot of trouble.
Many thanks for your help.
Madeleine

Robert Stankey
Hi Stephen,
It looks like you’ve solved my issue with the symptoms described. For those interested, in my case I had an entry form with custom fields and I only wanted those fields to be displayed in the bookings view for the events that used said entry form. This link provides more detail on what my issue was – https://wp-event-organiser.com/forums/topic/checkbox-required-option-not-working-in-attendee-questions/
Thanks!

Stephen Harris
Hi Robert,
I’ve tested this using the code from https://wp-event-organiser.com/blog/tutorial/attendee-questions/ by adding a require checkbox and it works as intended.
Looking at your code, I can see you have a $wp_query->post->post_name
condition. If that condition fails, then the fields are not added to the form. The assumption here is that $wp_query
is populated with the detail of the current event, but that is not necessarily the case (in fact, probably isn’t) when processing the booking which is done via REST API call. It will generally be true when rendering the form which is probably why you are seeing the fields ok.
Given your other post about missing data, I think what’s happening here is that when the booking is processed you’re conditional is false so the attendee fields are not added. This means the attendee data fields are neither validated (this issue) nor saved (this issue).
I appreciate that in the other issue you say you’ve used the code in the original blog post so I could be wrong.
However, if you want to target a particular event you can reliably get that event ID as the second argument to the eventorganiser_get_event_booking_form
callback:
function my_attach_attendee_questions( $form, $event_id ){
//...
}
add_action( 'eventorganiser_get_event_booking_form', 'my_attach_attendee_questions', 5, 2 );
Notice the additional 2
as the fourth argument to add_action
, and the additional $even_id
as a second argument to the callback function.

Robert Stankey
I’m creating a new booking form (ie – a registration form) for an upcoming event and need to collect information from each ticket purchased. I found information on creating Attendee Questions (https://wp-event-organiser.com/blog/tutorial/attendee-questions/) and one question requires clicking on a checkbox to accept a consent form. The checkbox is set to required but I can click the Book button to proceed without checking the box.
As an additional experiment I went back to the Booking form and added a required checkbox and that works correctly so there’s something about programmatically adding it as an Attendee Question that is a bug (or something I’m not following correctly).
Here is my code
add_action( ‘eventorganiser_get_event_booking_form’, ‘my_attach_attendee_questions’, 5 );
function my_attach_attendee_questions( $form ){
global $wp_query;
mylog($wp_query->post->post_name);
if($wp_query->post->post_name == 'signup-test') {
mylog("found signup-test");
//Define the field we want to add
$attendee_fields = array(
array(
'id' => '_competitor-consent',
'label' => 'test label',
'options' => array( 'A' => 'I agree to the consent agreement.'),
'type' => 'checkbox',
'required' => true,
),
);
//The attendee-questions element acts as a 'holder' for the elements
//we want repeated for each ticket
$attendee_questions = $form->get_element( 'attendee-questions' );
//If it doesn't exist, we'll create it
if ( ! $attendee_questions ) {
$ticketpicker = $form->get_element( 'ticketpicker' );
$position = intval( $ticketpicker->get( 'position' ) ) + 1;
$parent = $ticketpicker->get_parent();
$parent = ( $parent ? $parent->id : false );
//Create the attendee questions els
$attendee_questions = EO_Booking_Form_Element_Factory::create(array(
'id' => 'attendee-questions',
'type' => 'attendee-questions',
'elements' => $attendee_fields,
'ticket_label' => "Ticket: {{{ticketname}}}",
));
//Add the attendee questions right after the ticket picker
$form->add_element( $attendee_questions, array( 'at' => $position, 'parent' => $parent ) );
} else {
//Attendee questions field already exists, optional: over-ride with our elements
$attendee_questions->set( 'elements', $attendee_fields );
$attendee_questions->_modelElements->set( $attendee_questions->get('elements'), array( 'form' => $form ) );
}
}
}

Stephen Harris
Hi Denis,
Typically this should only happen if you have “simple booking enabled” in the booking form settings – it isn’t by default – and you only have one ticket.
If it isn’t, then I might need to look at the site to investigate further.

Denis Voelke
Hello,
I’m sorry but I don’t understand at all how to display, in the reservation form, the field allowing to choose the number of places to reserve. I have the PRO license, I have also installed “Event Organiser Booking Notification Settings”. The reservation form is displayed, but not the possibility to choose the number of places. Thanks for your help!
Denis

Jean Fraser
Hi Stephen
We are experiencing the exact same issue. Using the latest version of both the standard and pro bugin the booking form fields just reorder themselves randomly after saving.
Standard version: 3.10.2
Pro Version: 3.0.16
I was able to go through various backups to find older versions I had of the pro version and 3.0.9 works fine. The next version I have is 3.0.14 which also mixes everything up as well as 3.0.15.
Interestingly I note in the Change Log that the issue was dealt with in 3.0.10… unfortunately I don’t have a copy of this version but it seems that it worked fine for me before this.
In an attempt to troubleshoot the issue I installed a fresh copy of WordPress using just the default WordPress theme and only the Event Organiser plugins… the issue occurred with this senario.
For now we are using the older version of the pro plugin… but obviously would prefer to be using the latest version.
Many thanks

Stephen Harris
Hi Robert,
So that message appears if eo_get_schedule_last()
return a date object earlier than ‘now’.
That in turn calls eo_get_event_schedule
and uses the schedule_last
key from the return array. That gets the last start date from event meta (wp_postmetadata table). Specifically the key _eventorganiser_schedule_last_start
. So you should check the database for that key for that event.
Alternatively you could edit the eo-booking-form.php
template in event-organiser-pro/templates
to print out the date-time its returning.
My guess is that that key in the database is either been deleted or doesn’t exist. I’ve not come across this issue, but changing the event’s dates and resaving the event should update it. (Note, it’s not might not get updated if you don’t make changes to the event)

SDkat
Hello, we have taken a look at the EO pro admin front-end on your test site, and have a couple of questions prior to purchasing a license:
- Can booking fields be changed after a booking has been submitted?
Sometimes we need to alter some registration info on request (ticket
type booked, name of second person registered for event). We solely
use offline payment.
- Is it possible to add editable custom fields to
bookings that are not included with the booking form?
Specifically, we have several account and need to add which account
payment was made to offline to each booking. We would strongly
prefer using ACF for this, as ACF allows us to set a rule to only
show the field once a booking has been set to “paid”.
- The docs show how we can add more booking stati (paid, waiting list) but is it also
possible to add these to bulk actions on the booking page? These new stati would also be set up to send automatic emails.
- Is it possible to output some info on top of the booking page, like e.g. total number of tickets sold and total amount paid towards an event?
Thanks a lot for taking the time to help us out here in advance 🙂

Sven Reimertz
Version: Event Manager Pro 3.0.14
Example URL: https://sfz-region-freiburg.de/angebote/angebot/jugend-forscht/
Not logged in. When submitting the form with an existing user’s email address, there is no error message and the form doesn’t submit.
In Browser console there is an error in a javascript saying that there is a registration with this email, but this message does not appear on the page.
“code”: “invalid_bookee_email”,
“message”: “Diese E-Mail ist bereits registriert, bitte wählen Sie eine andere oder logge Sie sich mit diesem Konto ein”