Warning for wpml users (do not upgrade yet to wpml 2.3.4)

WPML fix now available. See http://icalevents.com/3880-wpml-fix-for-wpml-users/

It has come to my attention that in wpml 2.3.4, new event creation is somewhat ‘broken’ – this may be due to new code added in wpml to address previous bug in earlier versions where custom fields were not being copied initially. See previous bug: post-15871.

This problem logged at http://forum.wpml.org…20628

The events / wmpl test site at lang.anmari.com has been updated to lastest everything (wp, wpml, and events plugins) , so you can see the problem in action there (yes anyone can login).

When wpml is enabled

Basically it appears that when wpml is enabled, and one tries to save a new event, the event custom fields are overwritten with  array versions of themselves.

I wonder if it is related to this kind of problem related by Andrew Nacin.?   or maybe fetching without the ‘single’ flag (returns an array) and then updating ?   Tried to search through wpml code, but all get_post_meta’s seem to have the flag set (Aside: Hmm what would happen if one did need multiple values with same meta key ie not single??)

Weirdly enough the events plugin does in many instances check  if gets an array instead of expected value due to ics being able to have multiple values of some things.  However there is only supposed to be 1 timezone and 1 start date, so it falls over there with these wpml created array values.

Existing events okay

Maybe because their data already stored ?

Fix?

see http://icalevents.com/3880-wpml-fix-for-wpml-users/

I’ll look to see what can be done to get around this for now (as one of you has a site going live soon), however it would be better if it were resolved by wpml as there may be other consequences.   I’ll cross post over there too.

Update: struggling to come up with a fix, since fix for ‘new’ events breaks old events.  May have to wait till wpml fix and in meantime, revert to earlier wpml version – at least with that version one could workaround the issues.

 

With wpml enabled
With wpml enabled

Instead of as it should be:

Without wpml
Without wpml