{"id":368021,"date":"2026-09-30T08:38:49","date_gmt":"2026-09-30T08:38:49","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/blue-coral-popup\/"},"modified":"2026-09-30T08:38:17","modified_gmt":"2026-09-30T08:38:17","slug":"bluecoral-popup","status":"publish","type":"plugin","link":"https:\/\/tt.wordpress.org\/plugins\/bluecoral-popup\/","author":14831330,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"0.5.1","stable_tag":"0.5.1","tested":"7.1.2","requires":"6.3","requires_php":"7.4","requires_plugins":null,"header_name":"Blue Coral Popup","header_author":"Blue Coral","header_description":"Gutenberg-native modal and slide-in campaigns with targeting and local aggregate metrics.","assets_banners_color":"f6f7f7","last_updated":"2026-09-30 08:38:17","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"","rating":0,"author_block_rating":0,"active_installs":0,"downloads":40,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"0.5.1":{"tag":"0.5.1","author":"nguyenrom","date":"2026-09-30 08:38:17","revision":3720715}},"upgrade_notice":{"0.5.1":"<p>Updates the public plugin name and confirms WordPress 7.1 compatibility.<\/p>","0.5.0":"<p>Improves the popup editor and removes saved-preview URLs. Published campaigns and their existing settings continue to work normally.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3720715,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3720715,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3720715,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3720715,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["0.5.1"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3720715,"resolution":"1","location":"assets","locale":"","width":1440,"height":550},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3720715,"resolution":"2","location":"assets","locale":"","width":1440,"height":1200},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3720715,"resolution":"3","location":"assets","locale":"","width":1440,"height":1200}},"screenshots":{"1":"The popups list with campaign status and approximate aggregate metrics.","2":"Display, trigger, and appearance settings in the popup editor.","3":"Targeting, schedule, device, and referrer rules in the popup editor."}},"plugin_section":[],"plugin_tags":[148076,613,491,125475,10684],"plugin_category":[],"plugin_contributors":[195839],"plugin_business_model":[],"class_list":["post-368021","plugin","type-plugin","status-publish","hentry","plugin_tags-gutenberg","plugin_tags-modal","plugin_tags-popup","plugin_tags-slide-in","plugin_tags-targeting","plugin_contributors-nguyenrom","plugin_committers-nguyenrom"],"banners":{"banner":"https:\/\/ps.w.org\/bluecoral-popup\/assets\/banner-772x250.png?rev=3720715","banner_2x":"https:\/\/ps.w.org\/bluecoral-popup\/assets\/banner-1544x500.png?rev=3720715","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/bluecoral-popup\/assets\/icon-128x128.png?rev=3720715","icon_2x":"https:\/\/ps.w.org\/bluecoral-popup\/assets\/icon-256x256.png?rev=3720715","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/bluecoral-popup\/assets\/screenshot-1.png?rev=3720715","caption":"The popups list with campaign status and approximate aggregate metrics."},{"src":"https:\/\/ps.w.org\/bluecoral-popup\/assets\/screenshot-2.png?rev=3720715","caption":"Display, trigger, and appearance settings in the popup editor."},{"src":"https:\/\/ps.w.org\/bluecoral-popup\/assets\/screenshot-3.png?rev=3720715","caption":"Targeting, schedule, device, and referrer rules in the popup editor."}],"raw_content":"<!--section=description-->\n<p>Blue Coral Popup is a simple, practical way to publish popups from the WordPress block editor. Build the popup content with ordinary Gutenberg blocks, then set when, where, and how often it appears from the popup's document sidebar. There is no account to create and no external popup service.<\/p>\n\n<p>Features include:<\/p>\n\n<ul>\n<li>Modal and bottom-corner slide-in formats.<\/li>\n<li>Page-load delay, CSS-selector click, and scroll-depth triggers.<\/li>\n<li>Sitewide display, or targeting by home page, specific content, public post types, categories, and URL paths.<\/li>\n<li>Optional URL exclusions, start and end schedule, countries, devices, and referrer hosts.<\/li>\n<li>Frequency rules: every page load, once per browser session, or once per number of days.<\/li>\n<li>Appearance controls for width, spacing, padding, corner radius, and close-button position.<\/li>\n<li>Optional conversion goals: a supported form success inside the popup, or a click on a chosen CSS selector.<\/li>\n<li>Approximate lifetime impressions, conversions, and conversion rate for each popup.<\/li>\n<\/ul>\n\n<p>Frontend CSS and JavaScript load only when the current request has an eligible published campaign. The plugin does not send telemetry and does not depend on an external service.<\/p>\n\n<h3>Privacy<\/h3>\n\n<p>Blue Coral Popup does not contact Blue Coral or any external service, and it sends no telemetry.<\/p>\n\n<p>Impression and conversion totals are aggregate counters stored as post metadata in the local WordPress database. The public counter request contains only the popup post ID \u2014 no form values, clicked-element details, IP addresses, or visitor identifiers.<\/p>\n\n<p>Country targeting reads an available Cloudflare visitor-country request header without making a network call or storing the country. Device and referrer matching use the current request's headers and do not build a visitor profile. The frequency cookie stores the popup ID and its seen state only.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>bluecoral-popup<\/code> folder to <code>\/wp-content\/plugins\/<\/code>, or install the ZIP through <strong>Plugins &gt; Add New &gt; Upload Plugin<\/strong>.<\/li>\n<li>Activate <strong>Blue Coral Popup<\/strong> through the Plugins screen.<\/li>\n<li>Open <strong>Popups &gt; Add New<\/strong>.<\/li>\n<li>Build the popup with blocks and configure the campaign in the Popup sidebar.<\/li>\n<li>Publish the popup to run the campaign.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20it%20work%20with%20the%20wordpress%20block%20editor%3F\"><h3>Does it work with the WordPress block editor?<\/h3><\/dt>\n<dd><p>Yes, it is built for it. A popup is an ordinary block-editor document: write the content with any Gutenberg blocks and configure the campaign in the Popup tab of the document sidebar.<\/p><\/dd>\n<dt id=\"which%20popup%20formats%20and%20triggers%20are%20available%3F\"><h3>Which popup formats and triggers are available?<\/h3><\/dt>\n<dd><p>Campaigns can use a centered modal or a slide-in pinned to the bottom-left or bottom-right corner. A popup opens after a page-load delay, after a selected CSS selector is clicked, or after a scroll-depth percentage is reached.<\/p><\/dd>\n<dt id=\"how%20does%20targeting%20work%3F\"><h3>How does targeting work?<\/h3><\/dt>\n<dd><p>A campaign can run sitewide or only on chosen locations: the home page, specific content, public post types, categories, and URL paths. Advanced rules can exclude URL paths and restrict the campaign by schedule, country, device, or referrer host. Filled rule groups must all match; values inside one group match any selected value.<\/p><\/dd>\n<dt id=\"why%20does%20country%20targeting%20need%20cloudflare%3F\"><h3>Why does country targeting need Cloudflare?<\/h3><\/dt>\n<dd><p>Country rules read the Cloudflare <code>CF-IPCountry<\/code> request header that Cloudflare already attaches to requests. The plugin makes no geolocation request itself. If the header is missing or unknown, a country-restricted popup will not match.<\/p><\/dd>\n<dt id=\"how%20does%20frequency%20capping%20work%3F\"><h3>How does frequency capping work?<\/h3><\/dt>\n<dd><p>Each popup can open on every page load, once per browser session, or once per number of days (up to a year). Session and day rules use a small first-party cookie that stores only the popup's seen state.<\/p><\/dd>\n<dt id=\"what%20counts%20as%20a%20conversion%3F\"><h3>What counts as a conversion?<\/h3><\/dt>\n<dd><p>Optionally, a conversion is recorded when a form inside the popup reports success \u2014 Contact Form 7 and Fluent Forms events are recognized, and any other form can dispatch a <code>bluecoral_popup_form_success<\/code> event \u2014 or when a visitor clicks an element matching a chosen CSS selector inside the popup. Totals are approximate aggregate counters, not visitor-level analytics.<\/p><\/dd>\n<dt id=\"where%20are%20metrics%20stored%2C%20and%20is%20any%20data%20sent%20externally%3F\"><h3>Where are metrics stored, and is any data sent externally?<\/h3><\/dt>\n<dd><p>Impression and conversion totals are aggregate counters stored as post meta in your own WordPress database. The plugin sends no telemetry and contacts no external service.<\/p><\/dd>\n<dt id=\"can%20i%20run%20several%20campaigns%20at%20once%3F\"><h3>Can I run several campaigns at once?<\/h3><\/dt>\n<dd><p>Yes. Every eligible published popup is prepared for the current request, and each applies its own trigger, frequency, and conversion rules.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>0.5.1<\/h4>\n\n<ul>\n<li>Renamed the plugin to Blue Coral Popup and updated the WordPress.org metadata.<\/li>\n<\/ul>\n\n<h4>0.5.0<\/h4>\n\n<ul>\n<li>Renamed the public plugin to Blue Popup while keeping existing technical identifiers.<\/li>\n<li>Added named sidebar regions, compact color-coded notices, and a single-row Desktop, Tablet, Mobile selector.<\/li>\n<li>Removed the saved-preview feature and its frontend runtime paths.<\/li>\n<li>Added WordPress.org release documentation and replaceable screenshot samples.<\/li>\n<\/ul>","raw_excerpt":"A simple, practical popup builder for the WordPress block editor, with targeting, triggers, frequency rules, and local aggregate metrics.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/tt.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/368021","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/tt.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/tt.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/tt.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=368021"}],"author":[{"embeddable":true,"href":"https:\/\/tt.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/nguyenrom"}],"wp:attachment":[{"href":"https:\/\/tt.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=368021"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/tt.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=368021"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/tt.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=368021"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/tt.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=368021"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/tt.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=368021"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/tt.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=368021"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}