Posted: December 4, 2015 at 1:12 pm
|
Hi, Would you please provide us with a solution to the issue we’re having below, today? We are continuing to get the “nothing in your event queue” error when trying to sign up for events. Here are the details on troubleshooting so far: Thank you for your timely response.
|
Hi there, We can help with this today. Can you post a link to the event page in question? |
|
|
Sure: If you go to any event here, and register is says “Nothing In Events Queue” rather than processing the registration. ** redacted **
|
|
Can you convert this post to private if it’s not please. I have the creds in there. |
All we need is a link, credentials should never be posted to a public forum. |
|
|
Sorry about that. I am messaging on behalf of a collegue. Thought this was a private msg. Thanks for that 🙂 |
Do you happen to know how they set up the JavaScript files to get output to the page, and commented out? |
|
I can advise ruling out a plugin and theme conflict. You can rule these out one by one: |
|
|
Hi I have discovered that the error only occurs when this plugin is active: Indeed Ultimate Membership Pro I have spent some time debugging your plugin to try and narrow down where the issue is occurring. I can confirm that when processing an event ticket request the method ‘process_ticket_selections’ in EDD_Ticket_selector.module.php results in the $success var == TRUE and the method initiates a safe redirect to the checkout page on line 598. Not sure why all the checks are not catching the issue as the checkout page itself is obviously under the impression that the cart is empty even though the ‘process_ticket_selections’ method has validated the cart as NOT empty. Also please note there are no php or JS errors on the page or in console. Please advise on what conflicts you have had in the past which may cause this behaviour. Thanks |
I’d advise looking in Paid Membership Pro to see how/where it’s conflicting. |
|
|
Hi I was hoping for a more expansive answer, which is why I spent some time debugging your plugin and providing some technical detail as to where in the order process there is an error occurring. Would it be possible to provide some technical detail into how your plugin stores the order data (which class/method initiates the storage process, i’m assuming you use php sessions to store data?). If we start at the method i provided in the previous post and call that Y, what process takes place between Y and the cart page X. Any ideas on what could happen outside of your plugin which would cause the checkout page to return that there the cart is empty. When the previous action which i outlined in detail in the other post is reporting that the cart is not empty and somewhere between submitting the event sign up form and redirecting to the cart page the cart is now empty? Have you had any issues with conflicts in the past? Can you provide any history or technical detail which would help me in debugging this. Obviously i’d be happy to post any solutions or issues I may find if that would help to prevent others having this issue in the future. Thanks |
No, we do not use PHP sessions to store the cart data. When you select a ticket, a the Session ID is used as a key, but the data is temporarily stored in WP transients, which are in the options table. So you could look to see if Paid Memberships Pro is erasing transients or modifying the way that WP stores transients in any way. When you look in the wp_options table, you should be able to see some options that have a name that starts with _transient_ee_ssn_, and with each one of those there’s an option that starts with _transient_timeout_ee_ssn_. The latter has a timestamp to allow the transients to get removed after they are set to expire. |
|
|
Hi I have disabled the membership pro plugin and i am able to get to the /registration-checkout/ page without issue. I was hoping to then review the transients mentioned in your previous post but once i get to the /registration-checkout/ page and perform the following mysql query there are no results: SELECT * FROM SELECT * FROM Could you possible tell me which method or function is responsible for creating the transients and saving the event data once a user submits the event signup form. I’m having issues tracking down the section of code which actually creates the transients. Thanks |
That all happens in /core/EE_Session.core.php |
|
|
Hi So here’s the output from EE_Session->set_checkout() with and without the Membership plugin enabled. I have never come across a conflict that would prevent the creation of a transient in WordPress, bear in mind that there are no php or server log errors. Can you take a look at the objects below, there are differences between them but I have no idea of the significance. I also have to assume that as you have not mentioned it, you have not experienced other users with a similar issue of not being able to add events to the cart with another plugin enabled. If you have PLEASE let me know the details as your plugin is way too large for me to reverse engineer and debug without assistance. WITHOUT MEMBER PLUGIN: EE_Checkout Object [total_ticket_count] => 6 ) [json_response] => EE_SPCO_JSON_Response Object [_validation_rules:protected] => Array ) [next_step] => EE_SPCO_Reg_Step_Payment_Options Object [reg_form] => [current_step] => EE_SPCO_Reg_Step_Attendee_Information Object [_required_questions:EE_SPCO_Reg_Step_Attendee_Information:private] => Array [_completed:protected] => [reg_form] => [cart] => EE_Cart Object [_parent:protected] => EE_Line_Item Object [_timezone:protected] => Africa/Abidjan [OBJ_ID] => Array [LIN_code] => Array [LIN_type] => Array [LIN_unit_price] => Array [LIN_percent] => Array [LIN_quantity] => Array [LIN_ID] => Array ) [_model_relations:protected] => Array [Change_Log] => Array [Promotion] => [_fields:protected] => Array ) [_allow_persist:protected] => 1 [7ef6cfd578b209b8b5e11ff713baf80c] => EE_Line_Item Object [_parent:protected] => EE_Line_Item Object [_timezone:protected] => Africa/Abidjan [OBJ_ID] => Array [LIN_code] => Array [LIN_type] => Array [LIN_unit_price] => Array [LIN_percent] => Array [LIN_ID] => Array ) [_model_relations:protected] => Array [Change_Log] => Array [Promotion] => [_fields:protected] => Array ) [_allow_persist:protected] => 1 ) [_parent:protected] => EE_Line_Item Object [_timezone:protected] => Africa/Abidjan [OBJ_ID] => Array [LIN_code] => Array [LIN_type] => Array [LIN_percent] => Array [LIN_quantity] => Array [LIN_is_taxable] => Array [LIN_total] => Array [LIN_ID] => Array ) [_model_relations:protected] => Array [Change_Log] => Array [Promotion] => [_fields:protected] => Array ) [_allow_persist:protected] => 1 ) [_parent:protected] => EE_Line_Item Object [_timezone:protected] => Africa/Abidjan [LIN_percent] => Array [OBJ_type] => Array [LIN_ID] => Array ) [_model_relations:protected] => Array [Change_Log] => Array [Promotion] => [_fields:protected] => Array ) [_allow_persist:protected] => 1 ) [_parent:protected] => EE_Line_Item Object [_timezone:protected] => Africa/Abidjan [LIN_type] => Array [LIN_percent] => Array [OBJ_type] => Array [LIN_ID] => Array ) [_model_relations:protected] => Array [Change_Log] => Array [Promotion] => [_fields:protected] => Array ) [_allow_persist:protected] => 1 [taxes] => EE_Line_Item Object [_parent:protected] => EE_Line_Item Object [_timezone:protected] => Africa/Abidjan [LIN_type] => Array [LIN_total] => Array [LIN_ID] => Array ) [_model_relations:protected] => Array [Change_Log] => Array [Promotion] => [_fields:protected] => Array ) [_allow_persist:protected] => 1 ) [_parent:protected] => [_timezone:protected] => Africa/Abidjan [LIN_type] => Array [LIN_percent] => Array [LIN_ID] => Array [LIN_total] => Array ) [_model_relations:protected] => Array [Change_Log] => Array [Promotion] => [_fields:protected] => Array ) [_allow_persist:protected] => 1 ) [transaction] => EE_Transaction Object [TXN_total] => 2430 [_timezone:protected] => Africa/Abidjan [TXN_total] => Array ) [_model_relations:protected] => Array [Status] => [Payment_Method] => [Change_Log] => Array [Promotion_Object] => Array ) [_fields:protected] => Array [TXN_total] => 2430 ) [_allow_persist:protected] => 1 [primary_attendee_obj] => [_required_questions:EE_SPCO_Reg_Step_Attendee_Information:private] => Array [_completed:protected] => [reg_form] => [payment_options] => EE_SPCO_Reg_Step_Payment_Options Object [reg_form] => [finalize_registration] => EE_SPCO_Reg_Step_Finalize_Registration Object [reg_form] => ) [available_payment_methods] => Array ) WITH PLUGIN EE_Checkout Object [total_ticket_count] => 0 ) [json_response] => EE_SPCO_JSON_Response Object [_validation_rules:protected] => Array ) [next_step] => EE_SPCO_Reg_Step_Payment_Options Object [reg_form] => [current_step] => EE_SPCO_Reg_Step_Attendee_Information Object [_required_questions:EE_SPCO_Reg_Step_Attendee_Information:private] => Array [_completed:protected] => [reg_form] => [cart] => EE_Cart Object [_parent:protected] => EE_Line_Item Object [_timezone:protected] => Africa/Abidjan [LIN_type] => Array ) [_model_relations:protected] => Array [Change_Log] => Array [Promotion] => [_fields:protected] => Array ) [_allow_persist:protected] => 1 ) [_parent:protected] => EE_Line_Item Object [_timezone:protected] => Africa/Abidjan [LIN_type] => Array ) [_model_relations:protected] => Array [Change_Log] => Array [Promotion] => [_fields:protected] => Array ) [_allow_persist:protected] => 1 [taxes] => EE_Line_Item Object [_parent:protected] => EE_Line_Item Object [_timezone:protected] => Africa/Abidjan [LIN_type] => Array ) [_model_relations:protected] => Array [Change_Log] => Array [Promotion] => [_fields:protected] => Array ) [_allow_persist:protected] => 1 ) [_parent:protected] => [_timezone:protected] => Africa/Abidjan [LIN_type] => Array [LIN_percent] => Array [LIN_total] => Array [LIN_ID] => Array ) [_model_relations:protected] => Array [Change_Log] => Array [Promotion] => [_fields:protected] => Array ) [_allow_persist:protected] => 1 ) [transaction] => EE_Transaction Object [TXN_total] => 0 [_timezone:protected] => Africa/Abidjan ) [_model_relations:protected] => Array [Payment] => Array [Status] => [Payment_Method] => [Change_Log] => Array [Promotion_Object] => Array ) [_fields:protected] => Array [TXN_total] => 0 ) [_allow_persist:protected] => 1 [primary_attendee_obj] => [_required_questions:EE_SPCO_Reg_Step_Attendee_Information:private] => Array [_completed:protected] => [reg_form] => [payment_options] => EE_SPCO_Reg_Step_Payment_Options Object [reg_form] => [finalize_registration] => EE_SPCO_Reg_Step_Finalize_Registration Object [reg_form] => ) [available_payment_methods] => Array ) |
Whoa, please do not post long blocks like this in a forum. You can use pastebin or a github gist and post a link in the reply instead. RE:
Without member plugin: With member plugin: This means something in the member plugin has the effect of setting the number of tickets to 0. Re:
No we haven’t seen this unless caching is involved. I can recommend contacting the other plugin’s support, they may be able to help. |
|
|
Update: I’ve stepped through every stage of EED_Ticket_Selector->process_ticket_selections() debugging vars as i go. This process successfully get’s to line 607, I believe this is AFTER all validation, calls to calculate the cart totals, AND to save/update the cart. In fact on line 595 EE_Registry::instance()->CART->save_cart( FALSE ); returns 1 (i assuming this is true). The final step is the wp safe redirect to ‘/registration-checkout/#checkout’. The big question is what could happen between sucessfully processing the ticket selections and redirecting to checkout. EED_Single_Page_Checkout->_display_spco_reg_form() appears to be the method to render the checkout page. After redirect $empty_cart on line 1141 now returns true as $this->checkout->transaction->registrations( $this->checkout->reg_cache_where_params ) returns an empty array. How can the cart be empty when the previous stage before redirect confirms that the cart has been saved successfully? |
Might the ticket selections be getting deleted when your Ultimate Membership Pro plugin is activated? |
|
|
Hi Good thought, but this occurs even when i follow this procedure: 1. Enable membership plugin I just can’t figure out why a third party plugin would be able to change a variable/param or transient for your plugin without specifically targeting a global var / transient or something similar. How could another plugin go and alter the property of the object and change the total_ticket_count? |
It apparently can, and since I don’t have a copy of the other plugin, I could make some wild guesses, but that’s not going to help here. |
|
|
Unless there are global vars being used i don’t see how other functions would have scope to edit objects and arrays within classes or functions, so i don’t think that’s the issue. As for transients, to alter data stored within the options table the third party would have to get, alter, then update the record in the options table. To do this it would have to specifically target the record via its unique name, and i see your slugs are all uniquely prefixed, so it can’t be that. Would you like me to provide a link to download the plugin for you to review the process i outlined in the post (timecode December 9, 2015 at 9:32 am) Although rare; it could well be an issue other users may have in the future |
Or how about this? It could be deleting the transients prematurely. For example, if there’s a garbage collection set to run on page loads for cleaning up old transients, and the other plugin is aggressive with the way it does its match (eg, effectively ignores the prefix) it could be deleting the ee session transients on the redirect to the checkout page. |
|
|
I’ve searched the plugin code base for any reference to transients (there are none), I also can’t find any option api or custom mysql which would delete records from the options table on mass. Here is a download link for the plugin: http://we.tl/tijYI97uNU |
I loaded up the plugin and activated it on my test site and the registration process continues to work as expected. There may be some other code on your site that’s affected by the membership plugin when it’s activated, so you might re-direct your troubleshooting accordingly. |
|
The support post ‘Nothing in Event Queue (3)’ 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.