After modifying ticket options, saving the ticket produces this fatal error:
Fatal error: eventTicketingSystem::ticketTicketsControl() [eventticketingsystem.ticketticketscontrol]: The script tried to execute a method or access a property of an incomplete object. Please ensure that the class definition "ticket" of the object you are trying to operate on was loaded _before_ unserialize() gets called or provide a __autoload() function to load the class definition in /nfs/c04/h02/mnt/80314/domains/baja.com/html/wp-content/plugins/wpeventticketing/ticketing.php on line 1617
I've debugged the issue a bit, and it's surprising. First of all, this works fine on our dev server, but on the prod server is where we're having an issue. So I assume it's something to do with the PHP setup on prod. I tried rolling PHP back to 5.2.7 (it was at 5.3.10) to no avail.
The issue is coming from the unserializing of the options for the plugin (stored with the key eventTicketingSystem). For some reason PHP is not finding the plugin's classes (ticket, ticketOption, etc) and filling in the array ($o) with type __PHP_Incomplete_Class for all of them. And when attempting to execute methods of these classes is where the error hits.
I'm reading that an autoload is usually the solution for this, I may attempt separating out the classes into separate files and adding an autoload on the eventTicketingSystem class.
Again, this is bizarre, as the callback for the Tickets page isn't until the admin_menu hook, so PHP should be reading all the definitions for the classes way before executing the callback.