This renders Bookings/WMPL unusable for us and others. There is no realistic scenario in which we'd translate bookable classes products: classes are given in one language only. Translating them would create a giant bloat in the store (classes in other languages would appear everywhere), would make our conversion rate crash, and generate hours of customer support for confused and angry customers (classes given in French bought on the English side of the store).
By attempting to fix a small issue (no parent product can be set for translations of bookings when product is not translated), caused by the fact WPML translates bookings when not needed (if product is not translated, just do not translate the booking: there is no language dependent info in a booking), a bigger and now serious issue has been created: availabilities are just plain wrong.
Again: now, availabilities are just plain wrong.
Again: this bug was introduced in the WPML Bookings compatibility plugin by setting _booking_product_id to the id of the product of the original language when no translation of the product exists
One solution is to not translate bookings when their product is not translated.
An even better one is to not translate bookings, ever. By translating bookings, WPML has been creating db bloat and a huge potential for duplicates errors (an example being our current bug here).
Bookings do not have language specific strings: they contain dates, quantities, and references to bookable products/resources. These can be (and routinely are) translated. Filters can be used to retrieve language specific translation id of parent posts when needed, like for any other WordPress posts types.
Meanwhile, please:
The obvious, quick, and simple (just not glorious) solution is to revert to the way WPML's compatibility plugin worked for years: please just do not set _booking_product_id for every bookings' language when their product is not translated.
We had a partial fix that couldn't be integrated because it could cause side effects with other types of booking. We asked WC Bookings for a hook but didn't get an answer yet.
In the meantime, we will try to provide a patch for you.
I'll get back to you as soon as I have news about it.