I noticed in my testing that the ticket was not immediately emailed to the customer after ordering (via Stripe sandbox), and I started to wonder why. It would make more sense to automatically send the ticket.
It looks like the ticket email is sent when the order status changes to “Completed” which is good, but by default the order status after a ticket purchase is set to “Processing.” This means that for the ticket email to be sent to the customer, the Order status needs to be manually changed to Completed.
A little research revealed that WooCommerce will automatically set the order status to Completed when purchasing products that are both Virtual and Downloadable. Right now WooTickets sets Virtual to “yes” but Downloadable to “no.” I fixed this by changing line 397 in src/Tribe/Main.php from:
update_post_meta( $ticket->ID, '_downloadable', 'no' );
to:
update_post_meta( $ticket->ID, '_downloadable', 'yes' );
This was how I fixed it. Is there a better way? Could this be an option, or perhaps set by default? If not, I will have to change Main.php every time I update the plugin. Thoughts?
Thanks!