Posted: March 12, 2018 at 9:47 am
I am testing a new event that I created and after registration, no email was sent. I checked the back end and the messages where in the queue. When I selected the send email message, I received the email.
Can you provide assistance to resolve this issue as I am unable to go live with an event until this issue is resolved
It doesn’t sound there is an issue from the above.
Messages work through the queue using WP Cron, they are first added to the queue for generation, after around 5 mins you need to load a page on the site and WP Cron will execute running the first step, then repeat again 5 mins later for ‘sending’.
If you don’t want to use the message queue and just send the emails instantly you can go to:
Event Espresso -> Messages -> Settings.
Change the option for ‘Generate and send all messages:’ and set it to ‘On same request’.
EE introduced the message queue to prevent slow downs during registrations as EE needs to wait for your server to generate and send the messages before directing the user to the thank you page so I recommend testing this setup and confirm it doesn’t slow the registrations down to much.
I have waited for over 10 minutes, refreshed the page to ensure WP Cron runs and nothing happens. I actually like the email queueing solution as it offers greater reliability of delivering message over the generate and send all messages option.
Can you think of anything else which would stop the emails from being sent? I get the impression the WP Cron is not firing. Also, can the queue for generation and queue for email be faster than 5 mins
WP Cron not firing would cause the emails to not being sent. If you temporarily change the setting to “Send on same request” does the next registration get the email sent?
Yes, this is possible by means of a filter hook. So to change the wp-cron so it can every 1 minute you’d add this code to a site-specific plugin:
Please bear in mind that wp_cron depends on traffic so the trigger may not happen every minute even with the above code in place.