Zest CMP integrates the Zest consent toolkit into WordPress. It provides a beautiful, accessible consent banner with Shadow DOM isolation, intelligent script blocking, cookie/storage interception, and support for 12 languages out of the box.
Key features:
document.cookie, localStorage, and sessionStorage writes, queuing them until consent is granted.By default this plugin is fully self-contained and makes no network requests of its own.
If you enable Geo / jurisdiction gating in the settings, the visitor’s browser requests geo.cookiezest.com once to look up which privacy regulations apply in the visitor’s country, so the right consent banner is shown (full banner in the EU/EEA/UK, notice in regulated US states, nothing elsewhere). The lookup sends the visitor’s IP address to the gateway at the time of the request, and the gateway returns only regulation flags — it is not a tracking service and the IP is not logged or stored by it. See the gateway’s privacy notes and terms.
This service is provided by CookieZest (FreshJuice). It is optional and off by default; the plugin works fully without it.
Plugin source: https://github.com/freshjuice-dev/zest-wordpress
Zest JavaScript library (MIT license): https://github.com/freshjuice-dev/zest
Source for the bundled Zest v2.8.0: https://github.com/freshjuice-dev/zest/tree/v2.8.0
The dist/ directory includes readable JavaScript bundles and source maps with the original source for every minified bundle, plus the Zest MIT license. Zest’s UI CSS is generated by its JavaScript source in src/ui/styles.js.
To rebuild the library, check out the v2.8.0 tag in the Zest repository, run npm ci, then npm run build (Rollup). To copy the bundles into the plugin, set ZEST_REPO to that checkout and run ./scripts/build.sh from the plugin repository. The build rejects a library version that does not match the plugin’s bundled version. dist/VERSION records the bundled library version.