Fresh Forms for Gravity
Caching is great for scenarios where your post or page content it’s not changed frequently, but if you have a form embedded to which you do changes very often or you’re using dynamic code, that doesn’t run for a cached page, or using third-party solutions relaying in dynamic live data (e.g. reCAPTCHA), using caching in these cases is going to cause issues. The same applies to certain automatic JS optimizations done by caching plugins that are known to break JS execution easily. An easy solution is to configure your caching plugin or proxy to exclude the page where the form is embedded, but you need also to remember this when you create a new page or embed a new form in an existing page… This plugin will take care of the above automatically doing the following: Flush current cache on plugin activation. This is required in order to allow the next step to run. Dynamically check if there’s a Gravity Forms for any of the supported embedding methods (see below for the list). If so, it will prevent post/page from being cached by any of the supported caching plugins, browsers and CDN/Proxies. Embedding methods supported: WordPress default editor, shortcode or Gutenberg block. Content of any post type, including pages and custom posts. ACF fields of type Text, Text Area, and WYSIWYG. Disabled by default. Avada. The following elements has been proven to work: Content Boxes, “Gravity Form”, Modal, Text Block. Other elements could work too, but not tested. Beaver Builder. It will detect Gravity Forms shortcodes added to a Text Editor module. Conversational Forms add-on. It will automatically detect any form page using the conversational_form post type (requires Conversational Forms add-on 1.3.0+). Divi. It should work with any of the default modules where you can insert a GF shortcode into the content. e.g. Call To Action, Text, Tabs… Elementor. The following widgets added to the post content are supported: Shortcode, Text. Essential Addons for Elementor Gravity Forms widget. GravityKit Gravity Forms Widget for Elementor. PowerPack for Beaver Builder Gravity Forms Styler module. Ultimate Addons for Beaver Builder Gravity Forms Styler module. Ultimate Addons for Elementor By Brainstorm Force. WooCommerce Gravity Forms Product Add-ons by Lucas Stark. WPBakery Page Builder. The following elements has been proven to work: “Gravity Form”, Text Block. Other elements could work too, but not tested. WP Tools Gravity Forms Divi Module. If you’re not using any of the above embedding methods you can still use Fresh Forms with a filter to pass the ID number of the posts where you want to run Fresh forms. You can also make Fresh Forms to add a cookie when a form is detected to use this cookie as a way to skip caching for hosts using Varnish based caching. Please see FAQ for more details. There’s no options page. Only the plugin version is saved to the database to be able to handle actions after an update when needed, no other data is stored. It should work with any caching plugin with support for DONOTCACHEPAGE constant, and proxies respecting the use Cache-Control HTTP header. Caching and Optimization plugins supported: Autoptimize Cache Enabler Comet Cache Hummingbird Kinsta Cache LiteSpeed Cache Page Optimize (Script concatenation only) Perfmatters (Delay JS exclusions only) Speed Optimizer (by SiteGround, the plugin with more name changes in the history of WordPress!) Surge W3 Total Cache WP Engine System WP Fastest Cache WP Optimize WP Rocket WP Super Cache Caching plugins NOT supported: Breeze. It doesn’t support DONOTCACHEPAGE constant or filters to skip caching. Check FAQ for a workaround. NitroPack. It doesn’t support DONOTCACHEPAGE constant or filters to skip caching. Check FAQ for a workaround. Cloudflare and other CDN/proxies: This plugin will add appropriate HTTP header to pages with a Gravity Forms form to exlude the page HTML from caching when the web host setup allows it. By default Cloudflare doesn’t cache the page HTML, it does only when you have configured it to “Cache Everything”. In this case, after activating the plugin, you need to purge cache in your Cloudflare account or wait for cache expiration to let Cloudflare know the page must be excluded from caching. Certain hosts like WP Engine and Kinsta don’t allow HTTP headers modification from WordPress side of things, therefore Cloudflare support will not work for these hosts. Other proxy services should work in a similar way, but I don’t have access to test any other proxy service. Feel to reach me if you want to provide me access to add support for your proxy service (documentation for the proxy would be required). Note for these cases (caching is done by an external service), Fresh Forms can just include the HTTP header when your web host allows it. Once the header is added, it’s up to the CDN/proxy being used to obey the header and skip caching for the page. Requirements PHP 7.0 or higher. WordPress 4.9 or higher. Gravity Forms 2.3 or higher. Only forms embedded using classic editor shortcode or Gutenberg block are supported. Usage Just install and activate. No settings required except for ACF support (see FAQ).
Top keywords
- forms17×1.95%
- caching16×1.83%
- page14×1.60%
- cache12×1.37%
- gravity12×1.37%
- gravity forms10×1.15%
- form9×1.03%
- work8×0.92%
- supported7×0.80%
- text7×0.80%
- wp7×0.80%
- proxy6×0.69%
SQLite Object Cache
A persistent object cache helps your site perform well. This one uses the widely available SQLite3 extension, and optionally the igbinary and APCu extensions to php. Many hosting services offer those extensions, and they are easy to install on a server you control. What is this about? It’s about making your site’s web server perform better. An object cache does that by reducing the workload on your MariaDB or MySQL database. This is not a page cache; these persistent objects go into a different kind of cache. These objects aren’t chunks of web pages ready for people to view in their browsers, they are data objects for use by the WordPress software. Caches are ubiquitous in computing, and WordPress has its own caching subsystem. Caches contain short-term copies of the results of expensive database lookups or computations, and allow software to use the copy rather than repeating the expensive operation. This plugin (like other object-caching plugins) extends WordPress’s caching subsystem to save those short-term copies from page view to page view. WordPress’s cache happens to be a memoization cache. Without a persistent object cache, every WordPress page view must use your MariaDB or MySQL database server to retrieve everything about your site. When a user requests a page, WordPress starts from scratch and loads everything it needs from your database server. Only then can it deliver content to your user. With a persistent object cache, WordPress immediately loads much of the information it needs. This lightens the load on your database server and delivers content to your users faster. Who should use this? If your site runs on a single web server machine, and that server provides the SQLite3 and igbinary extensions to php, this plugin will almost certainly make your site work faster. And if that server provides the APCu extension, this plugin uses it too. Some hosting providers offer redis cache servers. If your provider offers redis, it may be a good choice. You can use it via the Redis Object Cache plugin. Sites using redis have one SQL database and another non-SQL storage server: redis. Other hosting providers offer memcached, which has the Memcached Object Cache plugin. And some large multipurpose cache plugins, such as the LiteSpeed Cache, also offer object caching based on one of those cache server software packages. The cache-server approach to object caching comes into its own when you have multiple load-balanced web server machines handling your site. SQLite doesn’t work correctly in a multiple-web-server environment. But, for single-server site configurations, SQLite, possibly assisted by APCu, performs well. And the vast majority of sites are single-server. APCu APCu is an in-memory storage medium. It lets php programs, like WordPress, store data in shared memory so it’s very fast to retrieve when needed. If APCu is available on your host server, you can configure this plugin to use it. It reduces the typical cache lookup time to one-fifth or less of the SQLite lookup time, which is itself a few tens of microseconds. Performance counts, especially on busy web sites. Please look at Installation to learn how to configure this plugin to use APCu. The plugin works fast without it, and faster with it. WP-CLI: Even if APCu is in use, caching with SQLite is necessary when your web site uses WP-CLI, because WP-CLI programs do not have access to the APCu cache. This plugin writes all cached data both to APCu and to SQLite and makes sure the two are synchronized. WP-CLI You can control this plugin via WP-CLI once you activate it. Please type this command into your shell for details. wp help sqlite-object-cache Credits Thanks to Till Krüss. His Redis Object Cache plugin serves as a model for this one. And thanks to Ari Stathopoulos and Jonny Harris for reviewing this. Props to Matt Jones for finding and fixing a bug that appeared on a heavily loaded system. Thanks to Massimo Villa for testing help, and to nickchomey for a comprehensive code review. All defects are, of course, entirely the author’s responsibility. And thanks to Jetbrains for the use of their software development tools, especially PhpStorm. It’s hard to imagine how a plugin like this one could be developed without PhpStorm’s tools for exploring epic code bases like WordPress’s. How can I learn more about making my WordPress site more efficient? We offer several plugins to help with your site’s database efficiency. You can read about them here.