Info about the cookie encoding change in BuddyPress 2.0.3

If you’re a plugin developer who uses the bp_completed_create_steps cookie, or have otherwise used it to customise your site, please read this important change notification. Otherwise, this change won’t affect you.

The bp_completed_create_steps cookie is used by the Groups component when a Group is created. It stores an array of strings representing which parts of the group creation wizard you’ve already completed. It does this so it knows what template to load for the next step in the wizard. The cookie is only used during this process, and is irrelevant afterwards.

In BuddyPress 2.0.3 (and 2.1), we’ve changed how the data in this cookie is packaged. Previously, it was serialised, but it is now stored as JSON and base64 encoded.

While this does represent a break in backwards compatibility — something we always work very hard to avoid — we have had to make the change to address a concern that the BuddyPress team discovered. We’ve searched the plugins repository for plugins that use the cookie, and only found three (very old) plugins, none of which have received any updates in a couple of years, and probably no longer work.

It’s very possible that one of the many thousands of BuddyPress sites that don’t make their code publicly available have manipulated the cookie for some advanced customisation requirement, and if you’re one of those sites, we are sorry and regret the inconvenience caused.

To help us improve this part of the plugin in the future, if you are affected, please do the following:

  1. Update your plugin to expect a JSON-encoded cookie rather than a serialized one. If you have questions on how to do so, feel free to leave them in the comments below.
  2. Get in touch with the BuddyPress team (via a comment on this post, a trac ticket, or an email) and let us know why/how you had to manipulate the cookie. With your feedback, we’ll be able to improve the Groups creation system to make it more robust and easier to customise without resorting to changing cookies.

#2-0, #2-1, #plugins