Title: WP Popup
Author: cornershop
Published: <strong>January 11, 2019</strong>
Last modified: December 3, 2025

---

Search plugins

![](https://ps.w.org/wp-pop-up/assets/banner-772x250.png?rev=2010741)

![](https://ps.w.org/wp-pop-up/assets/icon.svg?rev=2010741)

# WP Popup

 By [cornershop](https://profiles.wordpress.org/cornershop/)

[Download](https://downloads.wordpress.org/plugin/wp-pop-up.zip)

 * [Details](https://tzm.wordpress.org/plugins/wp-pop-up/#description)
 * [Reviews](https://tzm.wordpress.org/plugins/wp-pop-up/#reviews)
 *  [Installation](https://tzm.wordpress.org/plugins/wp-pop-up/#installation)
 * [Development](https://tzm.wordpress.org/plugins/wp-pop-up/#developers)

 [Support](https://wordpress.org/support/plugin/wp-pop-up/)

## Description

WP Popup is a plugin for implementing whatever you want to call them — modals, lightboxes,
overlays or popups — on your site. While it offers fine-tuned control over where
and when the lightboxes display, it was developed with the goal of being simple 
and lightweight: WP Popup won’t cause your site to take a big performance hit by
loading lots of complicated and extraneous CSS and JavaScript.

WP Popup lets you use the standard WordPress post editor to build and configure 
your popups. In addition to full WYSIWYG editing of popup content, WP Popup gives
you powerful control over what triggers the appearance of your lightbox. Triggers
can be set so popups show:

 * Immediately on page load
 * After a configurable number of seconds
 * After the page is scrolled a configurable number of pixels
 * After the page is scrolled halfway or to the bottom
 * After the user has spent a configurable number of minutes on the site
 * After the user has visited a configurable number of pages over the past 90 days
 * On page exit (Exit intent)

In addition to those sophisticated trigger controls, you also get options on each
popup for:

 * Mask background color: Choose an appropriate color and opacity to set as the 
   background of the mask that covers your site.
 * Background image: Make a richer, more visually engaging popup by using a photo
   or illustration that fills the inside of the popup.
 * Background color: Choose an appropriate color and opacity to set as the background
   of the popup.
 * Width control: Set a minimum and maximum width.
 * Height control: Set minimum and maximum values along with pixels or percentages.
 * Padding: Control the padding within your popup.
 * Border: Add a border of any color, width and radius.
 * Opacity: Adjust the opacity of the popup.
 * Where to display: Choose whether to display on your site’s homepage, on all pages,
   on all pages except the homepage, or specific pages.
 * Scheduling: Configure whether users should see the popup just once, all the time,
   or periodically based on a schedule.
 * Mobile control: Avoid hits to your SEO by suppressing your popups from appearing
   on mobile devices!
 * Cookie identifier: Easily change how browsers know about this popup so you don’t
   have to save a whole new popup after fixing a typo if you want your updated popup
   to appear again.

_Note: This plugin uses cookies, so if you’re bound by the EU or other regulations
requiring you notify users of such, be sure to do so if you’ve got WP Popup enabled._

**Interested in other plugins from Cornershop Creative? We’ve made [these things](https://cornershopcreative.com/products).**

## Installation

 1. Upload the `wp-popup` directory to your plugins directory (typically wp-content/
    plugins)
 2. Activate the plugin through the ‘Plugins’ menu in WordPress
 3. Visit WP Popup > Create New Popup to begin setting up your first popup.

## FAQ

### I am switching from your Smart Popup, will my popups still work?

Yes! Upon activating the plugin your previous popups will display in the WP Popups
menu item and will continue working as expected.

### How many popups can I create?

As many as you want, though only one will show on any given URL, unless the `wp_popup_display`
filter is used to specify a popup to display via the theme.

### What happens if more than one popup is set to appear on a given page?

To avoid annoying your site users with multiple popups, WP Popup will only display
the most recent one, unless the `wp_popup_display` filter is used to specify a popup
to display via the theme.

    ```
    // Example wp_popup_filter, show popup 1 if user is logged in, popup 2 if user is not logged in
    function theme_filter_popups( $default_display, $display, $popup_id ) {
      if ( is_user_logged_in() && 1 === $popup_id )  {
        return true;
      } elseif ( ! is_user_logged_in() && 2 === $popup_id ) {
        return true;
      }

      return null;
    }
    add_filter( 'wp_popup_display', 'theme_filter_popups', 10, 3 );
    ```

### What styling and animation options are there?

WP Popup was written to be lean & mean. It offers minimal styling out-of-the-box(
just a small close X in the upper right corner) and no animation controls, so that
it doesn’t bloat your site with unnecessary code for different themes & styles you’re
not actually using. Of course, you’re free to use the WYSIWYG and graft on your 
own custom CSS to change the appearance however you want!

### Will this work with Pagebuilder plugins?

WP Popup has been tested with the following pagebuilders: Elementor, Beaver Builder,
and WPBakery/Visual Composer. WP Popup may work with other pagebuilders but has 
not been tested for compatibility. While WP Popup may work with pagebuilder plugins,
it was not designed as a pagebuilder add-on, so we cannot guarantee 100% compatibility.

## Reviews

![](https://secure.gravatar.com/avatar/d5d85d79f79baba4f5b9a619c51000a67c90c4a228473a9b3d30773859ec200e?
s=60&d=retro&r=g)

### 󠀁[Simple yet best in class plugin](https://wordpress.org/support/topic/simple-yet-best-in-class-plugin/)󠁿

 [skylabb](https://profiles.wordpress.org/skylabb/) January 26, 2025

I was looking for a simple message popup plugin and didn’t like other marketing 
popup plugins with a host of bloated features I don’t need. This plugin does the
simple thing and does it really well. You can add any content to the popup using
Gutenberg blocks. Great features including settings for color, sizes, duration, 
scheduling, and where on the website the popup happens. Great work and thank you.

![](https://secure.gravatar.com/avatar/5e37b2a8d0d9dde8b3cba8e6464dad3e3b8efd8ced3e7bf27d2dc9f9fc12ddf7?
s=60&d=retro&r=g)

### 󠀁[Love it!](https://wordpress.org/support/topic/love-it-4170/)󠁿

 [Betty Maszlay](https://profiles.wordpress.org/papireper/) May 6, 2024

Perfect, simple to use, thank you! 🙂

![](https://secure.gravatar.com/avatar/98cc3d9bc28faaf17749dd18d698f90561152fa9b2485864ffda8737b40e6e1c?
s=60&d=retro&r=g)

### 󠀁[Worked really well](https://wordpress.org/support/topic/worked-really-well-5/)󠁿

 [mccremarc](https://profiles.wordpress.org/mccremarc/) December 5, 2023

I have installed this on our site and it does exactly what it says on the tin, a
nice and simple to use exit intent popup for free… no sign ups, i couldn’t be happier,
thank you to the team who developed this, I was searching for ages to find something
like this for free and you guys nailed it!! Top work.. thank you!

![](https://secure.gravatar.com/avatar/a894da8ab9a7ea918387516a7d6fd3fef4bf1337177eccea035f2b14df10aaf4?
s=60&d=retro&r=g)

### 󠀁[Fatal error: Uncaught Error: Call to undefined function array_key_first()](https://wordpress.org/support/topic/fatal-error-uncaught-error-call-to-undefined-function-array_key_first/)󠁿

 [Said Erraoudy](https://profiles.wordpress.org/erraoudy/) November 1, 2021 2 replies

Fatal error: Uncaught Error: Call to undefined function array_key_first() in /home/
cooknus/public_html/seo/wp-content/plugins/wp-pop-up/classes/class-wp-popup.php:
671 Stack trace: #0 /home/cooknus/public_html/seo/wp-content/plugins/wp-pop-up/classes/
class-wp-popup.php(618): WP_Popup->which_popup_to_display() #1 /home/cooknus/public_html/
seo/wp-includes/class-wp-hook.php(303): WP_Popup->post_loop(Object(WP)) #2 /home/
cooknus/public_html/seo/wp-includes/class-wp-hook.php(327): WP_Hook->apply_filters(
NULL, Array) #3 /home/cooknus/public_html/seo/wp-includes/plugin.php(518): WP_Hook-
>do_action(Array) #4 /home/cooknus/public_html/seo/wp-includes/class-wp.php(763):
do_action_ref_array(‘wp’, Array) #5 /home/cooknus/public_html/seo/wp-includes/functions.
php(1291): WP->main(”) #6 /home/cooknus/public_html/seo/wp-blog-header.php(16): 
wp() #7 /home/cooknus/public_html/seo/index.php(17): require(‘/home/cooknus/p…’)#
8 {main} thrown in /home/cooknus/public_html/seo/wp-content/plugins/wp-pop-up/classes/
class-wp-popup.php on line 671

![](https://secure.gravatar.com/avatar/1c5ae808d832ec462f6e42c16c712ca5f8a63b85a87efa8117ffead78c46befb?
s=60&d=retro&r=g)

### 󠀁[Wonderful Plugin](https://wordpress.org/support/topic/wonderful-plugin-628/)󠁿

 [wpdozero](https://profiles.wordpress.org/wpdozero/) April 26, 2021 1 reply

Very easy to set up. It seems to be the best free exit intent popup plugin available!

![](https://secure.gravatar.com/avatar/272b314e35a4d806f96a0239c2fff6221bd13d47131a63a00213ee5e6b52f8f2?
s=60&d=retro&r=g)

### 󠀁[Plugin works fine, but require jQuery](https://wordpress.org/support/topic/plugin-works-fine-but-require-jquery/)󠁿

 [Radek Mezulanik](https://profiles.wordpress.org/zedna/) March 17, 2021 1 reply

This plugins works pretty fine, but itś not compatible with websites that don’t 
use jQuery as it can have bad impact on performance. If you would re-write it to
vanilla JS, i can give it a 5

 [ Read all 6 reviews ](https://wordpress.org/support/plugin/wp-pop-up/reviews/)

## Contributors & Developers

“WP Popup” is open source software. The following people have contributed to this
plugin.

Contributors

 *   [ cornershop ](https://profiles.wordpress.org/cornershop/)
 *   [ De’Yonté W. ](https://profiles.wordpress.org/rxnlabs/)
 *   [ Danny Cabrera ](https://profiles.wordpress.org/dannycorner/)
 *   [ Ron Pasillas ](https://profiles.wordpress.org/rpasillas/)
 *   [ kenjigarland ](https://profiles.wordpress.org/kenjigarland/)
 *   [ Xavier Serrano ](https://profiles.wordpress.org/xavierserranoa/)

[Translate “WP Popup” into your language.](https://translate.wordpress.org/projects/wp-plugins/wp-pop-up)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/wp-pop-up/), check 
out the [SVN repository](https://plugins.svn.wordpress.org/wp-pop-up/), or subscribe
to the [development log](https://plugins.trac.wordpress.org/log/wp-pop-up/) by [RSS](https://plugins.trac.wordpress.org/log/wp-pop-up/?limit=100&mode=stop_on_copy&format=rss).

## Changelog

#### 1.2.7

 * Fix a PHP warning regarding `_load_textdomain_just_in_time`.

#### 1.2.6

 * Add new setting for specifying a popup’s ID attribute.
 * Avoid a potential fatal error when Beaver Builder is active and another plugin
   or theme sets the `post__not_in` query var incorrectly (a rare situation).
 * Fix a bug that could cause extra

<

p> tags to be added to popups built using the Block Editor when the ‘Disable “the_content”
filters’ setting was enabled.
 * Fix PHP deprecation warnings on servers running
PHP 8.1 and above.

#### 1.2.5

 * Fix bug that could occasionally cause certain single posts to redirect to the
   homepage on sites without Beaver Builder.

#### 1.2.4

 * Add new setting for maximizing the Z-Index value.
 * Add new Advanced settings panel and move some settings into it.
 * Fix bug “undefined” displays in the class names when the “light” Close Button
   Theme is selected.
 * Fix bug where newest popup was not displaying if there were multiples set on 
   same post.

#### 1.2.3

 * New filter, wp_popup_display, to pick which popup to show. This allows themes
   to assign multiple popups to a post and then use the new filter to determine 
   which popup to display.
 * Enable the block editor.
 * Remove the plugin sidebar from the wp-popup post types.
 * Fix bug where having Beaver Builder installed prevented popup’s content from 
   displaying.
 * Fix PHP 8 Notice with CMB2, update CMB2.

#### 1.2.2

 * Bugfix to no longer require fields that are hidden in the WP admin.
 * Accessibility improvements addressing issues with tabindex, CSS outlines, and
   aria attribute placement.
 * Removed problematic content filtering when running on a site using Elementor.
 * The behavior of the ‘Disable “the_content” filters’ checkbox has changed: when
   this box is checked in a popup’s settings, WP Popup will use its own filter hook
   on popup content, called `wp_popup_content`, instead of changing which callbacks
   are bound to `the_content`. This fixes potential PHP errors that could have occurred
   on sites using Fusion Builder, and possibly other plugins as well.
 * Added aria roles for increased a11y; fixed errant PHP notice.

#### 1.2.1

 * Update the disabling of the block editor. The hook that allowed post types to
   disable the block editor was updated in WordPress version 5.

#### 1.2.0

 * WP Popups can now be used from within posts or pages. This provides a capability
   to override certain settings and display the Popup in the post/page single view.
 * Options were added for close buttons including light/dark, X vs. “close”, and
   an option to click the overlay to close the popup.
 * Impressions and conversions from WP Popup can now be tracked in Google Analytics
   and defined in custom events.
 * Start and end dates can now be added to popups.
 * A checkbox to disable/enable third party ‘the_content’ hooks from running on 
   the WP Popups content was added. This helps with plugins that inject code into
   content, stopping the plugins from doing the same on the popup content.
 * Preview displays for WP Popup content were improved.

#### 1.1.6

 * Added the ability to use WP Popup with Beaver Builder. Edit popups with Beaver
   Builder.

#### 1.1.5

 * Fix bug undefined function get_plugin_data().

#### 1.1.4

 * Fix bug where popups would not work on Elementor pages. The popups would show
   the post content (including Elementor styles) in the popup instead of showing
   the popup’s content.

#### 1.1.3

 * Fix minor styling issue with spinning loading gif in the admin.

#### 1.1.2

 * New option: Select posts to display popups on.

#### 1.1.1

 * Update bundled version of CMB2 to version 2.6.0.
 * Fix PHP Notice regarding undefined property modal_outer_has_set_style_properties.

#### 1.1

 * Add activation functions that migrate Smart Popups to work with this plugin.

#### 1.0

 * Rename plugin from Smart Overlay to Smart Popup
 * Re-Arranged options into groups, styles for the popup inside, styles for the 
   popup outside and display options.
 * New option: Background Color for outer mask.
 * New option: Background color for inner popup.
 * New option: Max Height
 * New option: Min Height
 * New option: Padding
 * New option: Borders
 * New option: Opacity
 * Disable Gutenberg editor for popups.

#### 0.8.1

 * Bugfixes for overlay styling and file inclusion.

#### 0.8

 * Refactoring entire codebase to be object-oriented in preparation for future features;
   no other functional changes.

#### 0.7

 * Refactoring mobile check to occur on front-end rather than with wp_is_mobile()
   to get around caching issues.
 * Updating Featherlight library from 1.2.3 to 1.7.8.

#### 0.6

 * Initial public release.

## Meta

 *  Version **1.2.7**
 *  Last updated **5 ⴰⵢⵢⵓⵔⵏ ago**
 *  Active installations **900+**
 *  WordPress version ** 4.3 or higher **
 *  Tested up to **6.9.4**
 *  Language
 * [English (US)](https://wordpress.org/plugins/wp-pop-up/)
 * Tags
 * [lightbox](https://tzm.wordpress.org/plugins/tags/lightbox/)[modal window](https://tzm.wordpress.org/plugins/tags/modal-window/)
   [popup](https://tzm.wordpress.org/plugins/tags/popup/)
 *  [Advanced View](https://tzm.wordpress.org/plugins/wp-pop-up/advanced/)

## Ratings

 4.2 out of 5 stars.

 *  [  4 5-star reviews     ](https://wordpress.org/support/plugin/wp-pop-up/reviews/?filter=5)
 *  [  0 4-star reviews     ](https://wordpress.org/support/plugin/wp-pop-up/reviews/?filter=4)
 *  [  1 3-star review     ](https://wordpress.org/support/plugin/wp-pop-up/reviews/?filter=3)
 *  [  1 2-star review     ](https://wordpress.org/support/plugin/wp-pop-up/reviews/?filter=2)
 *  [  0 1-star reviews     ](https://wordpress.org/support/plugin/wp-pop-up/reviews/?filter=1)

[Your review](https://wordpress.org/support/plugin/wp-pop-up/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/wp-pop-up/reviews/)

## Contributors

 *   [ cornershop ](https://profiles.wordpress.org/cornershop/)
 *   [ De’Yonté W. ](https://profiles.wordpress.org/rxnlabs/)
 *   [ Danny Cabrera ](https://profiles.wordpress.org/dannycorner/)
 *   [ Ron Pasillas ](https://profiles.wordpress.org/rpasillas/)
 *   [ kenjigarland ](https://profiles.wordpress.org/kenjigarland/)
 *   [ Xavier Serrano ](https://profiles.wordpress.org/xavierserranoa/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/wp-pop-up/)