We recently moved barkerewing.com from their prior host to our WP Engine server and encountered a problem when their Rezgo plugin stopped working.
Rezgo is an excellent booking platform, and their Rezgo WordPress plugin allows easy embedding of their service into WordPress sites.
The symptoms
Once the site was migrated to WP Engine, the customer would:
- Select a date and time for their booking (in this case, a raft trip)
- Click Add to Order to add the booking to their cart
- Get redirected to the cart page, where they see the error: There are no items in your order.
The catch: it works perfectly when logged in.
We only saw this issue when not logged in, which is a big clue that the problem is caching-related, as logged-in users usually aren’t exposed to the same level of caching as regular users.
In short, the problem is caching.
The solution
Having used Rezgo for years, we knew we needed page caching exclusions for all pages that contain [rezgo] shortcodes. Before moving to WP Engine, we contacted support and had them add those exclusions and even verified they were working using curl.
But, alas, we still experienced the There are no items in your order issue.
Rezgo support asked us to request that WP Engine also exclude the following cookies from caching:
rezgo_cart_30020
rezgo_cart_token_30200
rezgo_promo
rezgo_refid_val
rezgo_refid_ttl
rezgo_search
As soon as the cookie caching exclusions were added, the problem went away.
Looking into WP Engine Cookies and PHP Sessions documentation, you can see their issues with cookies and why this is needed.
So, when moving a Rezgo-powered site to WP Engine, contact WP Engine support to exclude all relevant pages and cookies from the cache.