FunnelKit Upsell Caching Behavior
For FunnelKit (formerly WooFunnels) to work properly the offer pages must be excluded from caching.
The caching can be done by:
- Hosting: Usually managed WordPress hosting such as WP Engine, Cloudways, Kinsta, Flywheel etc, cache all pages by default.
- Caching Plugin: such as WP-Rocket, W3C Cache etc, cache pages
We tell WordPress to send no_cache headers to the browser and declare standard WordPress constants to prevent caching against the plugins that respect these constants.
In any case, you must get Upsell Offer pages excluded from caching.
Learn About the URL Structure of Upsell Offer Pages
To exclude, these pages from caching, you must understand the URL structure of a typical upsell offer page.
Here is how URL structure looks:
https://your_site_name.com/offer/offer-name/?wfocu-key=9d11ae53607915225e76cffa76aca9c5
Notice that every page has this parameter wfocu-key appended at the end.
This parameter can be used to tell your caching system to not exclude URLs that have these keys.
Using Managed WordPress Hosting? Follow these instructions
If you are using a managed WordPress host (such as WP Engine, Cloudways, Kinsta, Flywheel, etc.) you would need to generate a support ticket with them.
Here is a support ticket you should generate for your host to exclude Upsell pages from caching.
Hi,
I am trying to run post purchase upsell offers using FunnelKit.
https://funnelkit.com/woocommerce-one-click-upsells-upstroke/
I need to ensure that my Upsell pages are not cached by your hosting.
Our offer pages follow this structure: https://xyz.com/offer/*/?wfocu-key=9d11ae53607915225e76cffa76aca9c5
Each URL has GET parameter wfocu-key. You would have to excluded these pages from cache.
Thanks
Note:
- Cloudways provide a self serving way to exclude certain pages from cache
- Kinsta All the links including query strings / get parameters, automatically bypass the cache, so those links are not being cached for certain. Nginx servers usually do not cache those (with parameters) unless forced to.
- WP Engine tech support staff can exclude pages from cache. You can contact them via live chat.
- Flywheel would need a support ticket with above content and they would disable the cache for upsell offer pages.
- We will continue to update the list whenever we learn different hosts
Using Caching Plugin? Follow these instructions
We pass the command "DONOTCACHEPAGE" to tell caching plugins to exclude our offer pages.
This should work with most plugins but to be on the safer side you can exclude offer pages from caching using plugin settings.
Each plugin has its own way, here is the relevant method for each:
WP Rocket
Click on the link to exclude pages from caching.
W3C Cache
- Go to Performance > Page Cache
- Scroll to Advanced > Never cache the following pages
You then add the entries as so: /offer/
Note: By default, the slug of offer page is set to "offer" but if you change it from Miscellaneous Settings, please use the same slug.
WP Super Cache
Once WP Super Cache is activated, go to Settings > WP Super Cache and then click on the Advanced tab. In the Miscellaneous section, the options that should be checked:
Don’t cache pages with GET parameters. (?x=y at the end of a URL) - This will ensure that the offer pages work as expected.
Could not find your plugin listed above? Contact Support and we will help you set it up.
LiteSpeed Cache
Go to Settings > Cache and in Drop query string setting add wfocu*
That's it! This is all about the WordPress caching plugins and hosting compatibility.