Thank you for your always fast response.
I'm on EM 4.302 and BP 1.51, and I was about to ask the same question. Where can I find dev version?
BTW, as I see it, this is not a very proper way to submit bugs and ask for features. Any plans for public bug tracking and even code contributions? For bugs, I would recommend a web-based tracking site, such as fogbugz.
This is what I see on the ticket_price issue, hoping that I am helping instead of distracting:
The ticket_price and some other fields (e.g. ticket_start, ticket_min) of EM_Ticket class have a uniform behavior that you probably intended: if empty(ticket_price), save to DB as NULL.
The two places where this behavior shows: EM_Ticket::save(), EM_Object::to_array(). The latter is used all over the place, affecting booking, location, category, ticket_booking, etc. So changing this behavior, even for ticket_price alone, might have unwanted consequences without thorough investigation. And all the changes are in EM code, rather than templates, which will have to be merged again at future EM updates.
So I do not want to touch it but propose the following fix:
== Proposed untested idea of future fix:
price = 0; (as default value, in declaration)
fields: add a 'allow_zero_value'=>1, to ticket_price(and possibly other similar fields), at declaration
if ( empty($this->$field['name']) && $field['null'] ) to:
if ( empty($this->$field['name']) && $field['null'] && ! $field['allow_zero_value'])
if ( !empty($this->$val['name']) || empty($val['null']) ) to:
if ( !empty($this->$val['name']) || empty($val['null']) || $field['allow_zero_value'])