=== Nanflows Popup – Popup Builder, Email Opt-in & Cookie Consent ===
Contributors: spexoid
Tags: popup, popup builder, opt-in form, lead generation, cookie consent
Requires at least: 6.2
Tested up to: 7.1
Requires PHP: 7.4
Stable tag: 0.1.0
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Popup builder for WordPress: popups, slide-ins, banners and bars with email opt-in forms, targeting, triggers, 47 templates and a cookie banner.

== Description ==

Nanflows Popup is a free popup builder for WordPress. Make a popup, a slide-in, a top banner, a bottom bar or an inline box, put an email opt-in form in it, and choose who sees it, on which pages and when.

Start from one of 47 ready-made templates or from a blank canvas. Design it in the Nanflows editor, in the block editor (Gutenberg) or in Elementor. Leads are saved in your own database and can be sent on to Mailchimp, Brevo, MailPoet, FluentCRM or the Newsletter plugin.

Free, with no limit on the number of popups, views or leads.

= Popups, slide-ins, banners and bars =

* **Modal popup** in the middle of the page, with an overlay.
* **Slide-in** from a corner.
* **Top banner** and **bottom bar**, for announcements, sales and free delivery offers.
* **Inline box** inside your content: before or after the post, at WooCommerce spots on the product, cart and checkout pages, or anywhere with the `[nanflows_popup]` shortcode.
* Fade, slide and zoom animations.

= Triggers: when the popup opens =

* After a time delay.
* After the visitor scrolls part of the page.
* On click of any button, link or element.
* On page reload, or from a link to the page (a #hash).
* After a form on the page is sent.

= Targeting: where the popup shows =

* The entire site, the homepage or the blog page.
* All posts, pages or products, or only the ones you pick.
* Archives, search results and the 404 page.
* Logged-in or logged-out visitors.
* WooCommerce shop, product, cart and checkout pages.

= Frequency: how often =

* Every page view, once per session, once every X days or X times per day.
* Stay hidden for a number of days after the visitor closes it.
* Stop showing to visitors who already signed up.

= Email opt-in forms and leads =

* Opt-in form with email, name, phone, short text, hidden fields (UTM, page, cookie) and a consent checkbox.
* Every lead is saved in your own WordPress database, under Popups > Leads.
* Send leads to **Mailchimp**, **Brevo**, **MailPoet**, **FluentCRM** or the **Newsletter** plugin, or to your own webhook (Zapier, Make, n8n…).
* Spam protection: a honeypot and rate limiting by default, plus **Cloudflare Turnstile**, **hCaptcha** or **reCAPTCHA v3** if you want them.

= Use the form plugin you already have =

Put a form from **Contact Form 7**, **WPForms**, **Gravity Forms**, **Fluent Forms**, **Ninja Forms**, **Formidable Forms**, **Forminator**, **Elementor Pro Forms**, **WS Form**, **MC4WP: Mailchimp for WordPress** or **Jetpack Forms** in a popup. Sent forms count as conversions, and can be saved under Leads too.

= Design your popup =

* Drag-and-drop editor with columns, heading, text, image, button, opt-in form, countdown, divider, spacer, social links and close link.
* Or build the popup in the **block editor** or in **Elementor**.
* 47 templates: newsletter signup, discount, announcement, countdown sale, cookie notice, contact and WooCommerce free delivery.
* Countdown timer to a fixed date, which stays correct behind page caches.
* Google Fonts, hosted on your own site if you like.
* Works with right-to-left languages.

= Cookie consent banner =

A cookie banner with Accept all, Reject all and Customize buttons, that holds back tracking scripts until the visitor agrees, and supports Google Consent Mode v2. It can also load Google Analytics 4, Google Tag Manager, Meta Pixel or Microsoft Clarity for you from just their ID, once the visitor accepts. Set it up under Popups > Cookie consent.

= Manage and measure =

* Overview with views, conversions and conversion rate for each popup.
* Duplicate, pause, bulk actions, "save as my template", undo and redo, autosave and revisions.
* Import and export popups between sites.
* Translate popups with **WPML** or **Polylang**.
* WP-CLI commands for popups, leads, stats and the cache.
* Works with page caching: frequency and countdowns are handled in the visitor's browser, and "Clear cache" also clears supported page caches (LiteSpeed, WP Rocket, W3 Total Cache and others).

= Nanflows Popup Pro =

Everything above is free and works fully without Pro. [Nanflows Popup Pro](https://nanflows.com/products/nanflows-popup), a separate plugin, adds exit intent and many more triggers, more popup types (fullscreen, spin to win, countdown, content locker, yes/no, surveys and quizzes…), advanced targeting, A/B testing, unique WooCommerce coupons, revenue tracking and more integrations.

The template gallery and the editor list the Pro options as optional upgrades.

== Installation ==

1. In WordPress, go to Plugins > Add New, search for "Nanflows Popup" and click Install, or upload the zip under Plugins > Add New > Upload Plugin.
2. Activate the plugin. A short setup wizard asks three questions and makes your first popup.
3. Go to Popups > Templates and pick a template, or click "Create popup" to start from a blank canvas.
4. Choose the triggers and the pages, then publish.

== Frequently Asked Questions ==

= How do I create a popup in WordPress? =

Install and activate Nanflows Popup, go to Popups > Templates, pick a template, change the text and colors, choose when and where it shows, and click Publish.

= How do I add an email signup popup? =

Start from a newsletter template, or add the "Opt-in form" element to any popup. Leads are saved under Popups > Leads. To send them to Mailchimp, Brevo, MailPoet, FluentCRM or the Newsletter plugin, connect the service under Popups > Integrations and pick it in the popup's form settings.

= Can I show a popup only on some pages? =

Yes. In the popup's targeting settings, choose the homepage, the blog, all posts or pages, specific pages and posts, archives, search, the 404 page or WooCommerce pages, and whether visitors must be logged in or logged out.

= How do I stop a popup from showing on every page? =

Set the frequency to once per session, once every X days or X times per day. By default a popup also stays hidden for 7 days after a visitor closes it, and stops for visitors who already signed up.

= Can I put my Contact Form 7, WPForms or Gravity Forms form in a popup? =

Yes, and also Fluent Forms, Ninja Forms, Formidable Forms, Forminator, Elementor Pro Forms, WS Form, MC4WP and Jetpack Forms. Add the "Form or shortcode" element and pick the form. Sent forms count as conversions.

= Can I design popups in Gutenberg or Elementor? =

Yes. Each popup can be built in the Nanflows editor, in the block editor or in Elementor. Nanflows adds opt-in form and countdown blocks to the block editor.

= Does it work with WooCommerce? =

Yes. Show popups on the shop, product, cart and checkout pages, and place inline boxes at WooCommerce spots on the product page, such as a free delivery offer above the price.

= Does it have a cookie consent banner? =

Yes. Popups > Cookie consent adds a banner with Accept all, Reject all and Customize buttons, holds back tracking scripts until the visitor agrees, and supports Google Consent Mode v2.

= Does it work with page caching? =

Yes. How often a popup shows and the countdowns are handled in the visitor's browser, so they stay correct on cached pages. After a change, Popups > Settings > "Clear cache" also clears supported page caches.

= Where are leads stored? Is anything sent to other sites? =

Leads are stored in your own WordPress database. Nothing is sent anywhere until you connect a service yourself; see "External services" below.

= My change does not show on the site =

Go to Popups > Settings and click "Clear cache". It regenerates the popup CSS and clears supported page caches.

= What is removed when I delete the plugin? =

Nothing, unless you tick "Delete all popups, leads and stats when the plugin is deleted" in Popups > Settings. Then the popups, leads, stats, settings and the plugin's folders in uploads are all removed.

= Where can I get help? =

Please use the support forum on WordPress.org.

== Screenshots ==

1. A welcome offer popup and a top banner on the site.
2. The template gallery: newsletter, discount, announcement, countdown, cookie, contact and WooCommerce templates.
3. The popup editor: drag elements into the preview and style them on the right.
4. Targeting: the pages, devices and visitors a popup is shown to.
5. The summary before you publish: where, who, when and how often.
6. Leads saved in your own database, with the popup each one came from.
7. The overview: views, conversions and conversion rate per popup and per device.
8. The cookie consent banner, with Accept all, Reject all and Customize.

== External services ==

Nanflows Popup works on its own and sends nothing anywhere by default. Each service below is contacted only after a site admin turns it on and enters their own account details for it.

= Spam protection (optional) =

When a CAPTCHA provider is chosen under Popups > Settings, the provider's script is loaded on pages that show a popup form, and when a visitor sends the form, the token the script created and the visitor's IP address are sent to the provider to check that the visitor is human.

* Cloudflare Turnstile: script from challenges.cloudflare.com, checked at challenges.cloudflare.com. [Terms](https://www.cloudflare.com/website-terms/), [Privacy policy](https://www.cloudflare.com/privacypolicy/)
* hCaptcha: script from js.hcaptcha.com, checked at api.hcaptcha.com. [Terms](https://www.hcaptcha.com/terms), [Privacy policy](https://www.hcaptcha.com/privacy)
* Google reCAPTCHA v3: script from www.google.com, checked at www.google.com. [Terms](https://policies.google.com/terms), [Privacy policy](https://policies.google.com/privacy)

= Email marketing (optional) =

When a popup's form is connected to one of these services, the lead's email address, and the name and other fields the visitor filled in, are sent to that service when the form is sent. Saving the connection also asks the service for your lists, using the API key you entered.

* Mailchimp (api.mailchimp.com): [Terms](https://mailchimp.com/legal/terms/), [Privacy policy](https://mailchimp.com/legal/privacy/)
* Brevo (api.brevo.com): [Terms](https://www.brevo.com/legal/termsofuse/), [Privacy policy](https://www.brevo.com/legal/privacypolicy/)

MailPoet, FluentCRM and the Newsletter plugin run on your own site, so nothing leaves it.

= Webhook (optional) =

When you paste a webhook address under Popups > Integrations, every new lead (email, name, consent, popup, page and date) is sent as JSON to that address. Where it goes is up to you; nothing is sent until you add one.

= Tracking tags in the cookie banner (optional) =

When you enter a tag's ID under Popups > Cookie consent, the banner loads that tag's script, only for visitors who accept its category (Analytics or Marketing). The tag then sends the pages they visit, their IP address and browser details to its vendor, under your own account with that vendor. Nothing is loaded while the ID field is empty.

* Google Analytics 4 and Google Tag Manager: script from www.googletagmanager.com. [Terms](https://marketingplatform.google.com/about/analytics/terms/us/), [Privacy policy](https://policies.google.com/privacy)
* Microsoft Clarity: script from www.clarity.ms. [Terms](https://clarity.microsoft.com/terms), [Privacy policy](https://privacy.microsoft.com/privacystatement)
* Meta Pixel: script from connect.facebook.net. [Terms](https://www.facebook.com/legal/terms/businesstools), [Privacy policy](https://www.facebook.com/privacy/policy/)

= Google Fonts (optional) =

When a popup uses a Google font, the font's stylesheet comes from fonts.googleapis.com and the font files from fonts.gstatic.com, which receive the visitor's IP address. Turn on "Host Google Fonts on this site" in Popups > Settings and the fonts are downloaded once, by your server, and served from your own site instead. [Terms](https://developers.google.com/terms), [Privacy policy](https://policies.google.com/privacy)

== Source code ==

The editor and block scripts in build/ are compiled from the readable source in src/ with @wordpress/scripts. The .min.js and .min.css files in assets/ sit next to their readable versions.

== Changelog ==

= 0.1.0 =
* First release.

== Upgrade Notice ==

= 0.1.0 =
First release.
