first commit

This commit is contained in:
CHIEFSOFT\ameye
2023-11-30 13:20:54 -05:00
commit e9e5c0546c
5833 changed files with 1801865 additions and 0 deletions
@@ -0,0 +1,57 @@
=== Advanced Popups ===
Tags: popup, advertising, popups, optin, marketing
Requires at least: 4.0
Tested up to: 6.0
Requires PHP: 5.4
Stable tag: 1.1.3
Contributors: codesupplyco
License: GPLv2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
== Description ==
Display high-converting newsletter popups, a cookie notice, or a notification with the light-weight yet feature-rich plugin.
== Changelog ==
= 1.1.3 =
* Improved thumbnail size.
= 1.1.2 =
* Improved plugin security.
= 1.1.1 =
* Improved functions for working with cookies.
= 1.1.0 =
* Updated styles for mobile devices.
= 1.0.9 =
* Minor improvements.
= 1.0.8 =
* Added dev filter to classes in popup.
= 1.0.7 =
* Compatibility fixes for WordPress 5.5
= 1.0.6 =
* Minor improvements.
= 1.0.5 =
* Improve thumbnail.
= 1.0.4 =
* Fixed "Limit display сache lifetime (days)".
= 1.0.3 =
* Added css variables to styles.
= 1.0.2 =
* Added compatibility with php 5.6.
= 1.0.1 =
* Add preload for font icons.
= 1.0 =
* Initial release.
@@ -0,0 +1,929 @@
<?php
/**
* The admin-specific functionality of the plugin.
*
* @link https://codesupply.co
* @since 1.0.0
*
* @package ADP
* @subpackage ADP/admin
*/
/**
* The admin-specific functionality of the plugin.
*
* Defines the plugin name, version, and two examples hooks for how to
* enqueue the admin-specific stylesheet and JavaScript.
*
* @package ADP
* @subpackage ADP/admin
*/
class ADP_Admin {
/**
* The ID of this plugin.
* @access private
* @var string $adp The ID of this plugin.
*/
private $adp;
/**
* The version of this plugin.
* @access private
* @var string $version The current version of this plugin.
*/
private $version;
/**
* Initialize the class and set its properties.
*
* @param string $adp The name of this plugin.
* @param string $version The version of this plugin.
*/
public function __construct( $adp, $version ) {
$this->adp = $adp;
$this->version = $version;
}
/**
* Register post type
*/
public function register_post_type() {
register_post_type( 'adp-popup', array(
'labels' => array(
'name' => esc_html__( 'Popups', 'coffee-guru' ),
'singular_name' => esc_html__( 'Popup', 'coffee-guru' ),
'menu_name' => esc_html__( 'Popups', 'coffee-guru' ),
'name_admin_bar' => esc_html__( 'Popup', 'coffee-guru' ),
'add_new' => esc_html__( 'Add New', 'coffee-guru' ),
'add_new_item' => esc_html__( 'Add New Popup', 'coffee-guru' ),
'new_item' => esc_html__( 'New Popup', 'coffee-guru' ),
'edit_item' => esc_html__( 'Edit Popup', 'coffee-guru' ),
'view_item' => esc_html__( 'View Popup', 'coffee-guru' ),
'all_items' => esc_html__( 'Popups', 'coffee-guru' ),
'search_items' => esc_html__( 'Search Popups', 'coffee-guru' ),
'parent_item_colon' => esc_html__( 'Parent Popups:', 'coffee-guru' ),
'not_found' => esc_html__( 'No popups found.', 'coffee-guru' ),
'not_found_in_trash' => esc_html__( 'No popups found in Trash.', 'coffee-guru' ),
),
'public' => false,
'publicly_queryable' => false,
'show_ui' => true,
'query_var' => true,
'rewrite' => true,
'capability_type' => 'post',
'has_archive' => false,
'hierarchical' => false,
'menu_position' => 55,
'show_in_menu' => true,
'menu_icon' => 'dashicons-editor-expand',
'supports' => array( 'title', 'editor', 'author', 'thumbnail' ),
'show_in_rest' => true,
'show_in_menu' => 'options-general.php',
) );
}
/**
* Addd new meta box.
*/
public function metabox_popup_register() {
add_meta_box( 'adp_popup_metabox', esc_html__( 'Popup Settings', 'advanced-popups' ), array( $this, 'metabox_popup_callback' ), array( 'adp-popup' ), 'normal', 'high', null );
}
/**
* Callback for Popup Meta Box.
*
* @param object $post Object of post.
*/
public function metabox_popup_callback( $post ) {
$popup_type = adp_get_post_meta( $post->ID, '_adp_popup_type', true, 'content' );
$popup_location = adp_get_post_meta( $post->ID, '_adp_popup_location', true, 'center' );
$popup_preview_image = adp_get_post_meta( $post->ID, '_adp_popup_preview_image', true, 'left' );
$popup_info_text = adp_get_post_meta( $post->ID, '_adp_popup_info_text', true );
$popup_info_buton_label = adp_get_post_meta( $post->ID, '_adp_popup_info_buton_label', true );
$popup_info_button_action = adp_get_post_meta( $post->ID, '_adp_popup_info_button_action', true, 'link' );
$popup_info_button_link = adp_get_post_meta( $post->ID, '_adp_popup_info_button_link', true );
$popup_limit_display = adp_get_post_meta( $post->ID, '_adp_popup_limit_display', true, 1 );
$popup_limit_lifetime = adp_get_post_meta( $post->ID, '_adp_popup_limit_lifetime', true, 30 );
$popup_show_to = adp_get_post_meta( $post->ID, '_adp_popup_show_to', true, 'both' );
$popup_rules_mode = adp_get_post_meta( $post->ID, '_adp_popup_rules_mode', true, 'all' );
$popup_rules = adp_get_post_meta( $post->ID, '_adp_popup_rules', true, array() );
$popup_open_trigger = adp_get_post_meta( $post->ID, '_adp_popup_open_trigger', true, 'delay' );
$popup_open_delay_number = adp_get_post_meta( $post->ID, '_adp_popup_open_delay_number', true, 1 );
$popup_open_scroll_position = adp_get_post_meta( $post->ID, '_adp_popup_open_scroll_position', true, 10 );
$popup_open_scroll_type = adp_get_post_meta( $post->ID, '_adp_popup_open_scroll_type', true, '%' );
$popup_open_manual_selector = adp_get_post_meta( $post->ID, '_adp_popup_open_manual_selector', true );
$popup_close_trigger = adp_get_post_meta( $post->ID, '_adp_popup_close_trigger', true, 'none' );
$popup_close_delay_number = adp_get_post_meta( $post->ID, '_adp_popup_close_delay_number', true, 30 );
$popup_close_scroll_position = adp_get_post_meta( $post->ID, '_adp_popup_close_scroll_position', true, 10 );
$popup_close_scroll_type = adp_get_post_meta( $post->ID, '_adp_popup_close_scroll_type', true, '%' );
$popup_open_animation = adp_get_post_meta( $post->ID, '_adp_popup_open_animation', true, 'popupOpenFade' );
$popup_exit_animation = adp_get_post_meta( $post->ID, '_adp_popup_exit_animation', true, 'popupExitFade' );
$popup_content_box_width = adp_get_post_meta( $post->ID, '_adp_popup_content_box_width', true, 500 );
$popup_notification_box_width = adp_get_post_meta( $post->ID, '_adp_popup_notification_box_width', true, 400 );
$popup_notification_bar_width = adp_get_post_meta( $post->ID, '_adp_popup_notification_bar_width', true, 1024 );
$popup_light_close = adp_get_post_meta( $post->ID, '_adp_popup_light_close', true, false );
$popup_display_overlay = adp_get_post_meta( $post->ID, '_adp_popup_display_overlay', true, false );
$popup_mobile_disable = adp_get_post_meta( $post->ID, '_adp_popup_mobile_disable', true );
$popup_body_scroll_disable = adp_get_post_meta( $post->ID, '_adp_popup_body_scroll_disable', true );
$popup_overlay_close = adp_get_post_meta( $post->ID, '_adp_popup_overlay_close', true );
$popup_esc_close = adp_get_post_meta( $post->ID, '_adp_popup_esc_close', true );
$popup_f4_close = adp_get_post_meta( $post->ID, '_adp_popup_f4_close', true );
// Default location for notification bar.
if ( 'notification-bar' === $popup_type ) {
if ( 'top' !== $popup_location && 'bottom' !== $popup_location ) {
$popup_location = 'bottom';
}
}
?>
<div class="adp-metabox-wrap popup-wrap">
<input type="hidden" name="adp_popup_action" value="1">
<?php wp_nonce_field( 'adp_popup_meta_nonce', 'adp_popup_meta_nonce' ); ?>
<div class="adp-metabox-tabs">
<ul class="adp-metabox-tabs-navigation">
<li><a href="#popup-tab-general"><?php esc_html_e( 'General', 'advanced-popups' ); ?></a></li>
<li><a href="#popup-tab-display"><?php esc_html_e( 'Display Rules', 'advanced-popups' ); ?></a></li>
<li><a href="#popup-tab-triggers"><?php esc_html_e( 'Triggers', 'advanced-popups' ); ?></a></li>
<li><a href="#popup-tab-style"><?php esc_html_e( 'Style', 'advanced-popups' ); ?></a></li>
<li><a href="#popup-tab-advanced"><?php esc_html_e( 'Advanced', 'advanced-popups' ); ?></a></li>
</ul>
<div class="adp-metabox-tabs-content">
<div id="popup-tab-general">
<div class="adp-metabox-field popup-field-type">
<div class="adp-metabox-label">
<label for="adp_popup_type"><?php esc_html_e( 'Type', 'advanced-popups' ); ?></label>
</div>
<div class="adp-metabox-input">
<select id="adp_popup_type" name="adp_popup_type">
<option value="content" <?php selected( $popup_type, 'content' ); ?>><?php esc_html_e( 'Content Box', 'advanced-popups' ); ?></option>
<option value="notification-box" <?php selected( $popup_type, 'notification-box' ); ?>><?php esc_html_e( 'Notification Box', 'advanced-popups' ); ?></option>
<option value="notification-bar" <?php selected( $popup_type, 'notification-bar' ); ?>><?php esc_html_e( 'Notification Bar', 'advanced-popups' ); ?></option>
</select>
</div>
</div>
<div class="adp-metabox-field popup-field-location">
<div class="adp-metabox-label">
<label for="adp_popup_location"><?php esc_html_e( 'Location', 'advanced-popups' ); ?></label>
</div>
<div class="adp-metabox-input">
<select id="adp_popup_location" name="adp_popup_location">
<option value="top" <?php selected( $popup_location, 'top' ); ?>><?php esc_html_e( 'Top', 'advanced-popups' ); ?></option>
<option value="top-left" <?php selected( $popup_location, 'top-left' ); ?>><?php esc_html_e( 'Top Left', 'advanced-popups' ); ?></option>
<option value="top-right" <?php selected( $popup_location, 'top-right' ); ?>><?php esc_html_e( 'Top Right', 'advanced-popups' ); ?></option>
<option value="bottom" <?php selected( $popup_location, 'bottom' ); ?>><?php esc_html_e( 'Bottom', 'advanced-popups' ); ?></option>
<option value="bottom-left" <?php selected( $popup_location, 'bottom-left' ); ?>><?php esc_html_e( 'Bottom Left', 'advanced-popups' ); ?></option>
<option value="bottom-right" <?php selected( $popup_location, 'bottom-right' ); ?>><?php esc_html_e( 'Bottom Right', 'advanced-popups' ); ?></option>
<option value="left" <?php selected( $popup_location, 'left' ); ?>><?php esc_html_e( 'Left', 'advanced-popups' ); ?></option>
<option value="right" <?php selected( $popup_location, 'right' ); ?>><?php esc_html_e( 'Right', 'advanced-popups' ); ?></option>
<option value="center" <?php selected( $popup_location, 'center' ); ?>><?php esc_html_e( 'Center', 'advanced-popups' ); ?></option>
</select>
</div>
</div>
<div class="adp-metabox-field popup-field-preview-image">
<div class="adp-metabox-label">
<label for="adp_popup_preview_image"><?php esc_html_e( 'Preview Image', 'advanced-popups' ); ?></label>
</div>
<div class="adp-metabox-input">
<select id="adp_popup_preview_image" name="adp_popup_preview_image">
<option value="left" <?php selected( $popup_preview_image, 'left' ); ?>><?php esc_html_e( 'Left', 'advanced-popups' ); ?></option>
<option value="right" <?php selected( $popup_preview_image, 'right' ); ?>><?php esc_html_e( 'Right', 'advanced-popups' ); ?></option>
<option value="top" <?php selected( $popup_preview_image, 'top' ); ?>><?php esc_html_e( 'Top', 'advanced-popups' ); ?></option>
<option value="bottom" <?php selected( $popup_preview_image, 'bottom' ); ?>><?php esc_html_e( 'Bottom', 'advanced-popups' ); ?></option>
<option value="none" <?php selected( $popup_preview_image, 'none' ); ?>><?php esc_html_e( 'None', 'advanced-popups' ); ?></option>
</select>
</div>
</div>
<div class="adp-metabox-field popup-field-info-text">
<div class="adp-metabox-label">
<label for="adp_popup_info_text"><?php esc_html_e( 'Notification Text', 'advanced-popups' ); ?></label>
</div>
<div class="adp-metabox-input">
<textarea type="number" id="adp_popup_info_text" name="adp_popup_info_text" row="4"><?php echo wp_kses_post( $popup_info_text ); ?></textarea>
</div>
</div>
<div class="adp-metabox-field popup-field-info-buton-label">
<div class="adp-metabox-label">
<label for="adp_popup_info_buton_label"><?php esc_html_e( 'Notification Button Label', 'advanced-popups' ); ?></label>
</div>
<div class="adp-metabox-input">
<input type="text" id="adp_popup_info_buton_label" name="adp_popup_info_buton_label" value="<?php echo esc_attr( $popup_info_buton_label ); ?>" />
</div>
</div>
<div class="adp-metabox-field popup-field-info-buton-action">
<div class="adp-metabox-label">
<label for="adp_popup_info_button_action"><?php esc_html_e( 'Notification Button Action', 'advanced-popups' ); ?></label>
</div>
<div class="adp-metabox-input">
<select id="adp_popup_info_button_action" name="adp_popup_info_button_action">
<option value="link" <?php selected( $popup_info_button_action, 'link' ); ?>><?php esc_html_e( 'Link', 'advanced-popups' ); ?></option>
<option value="accept" <?php selected( $popup_info_button_action, 'accept' ); ?>><?php esc_html_e( 'Accept', 'advanced-popups' ); ?></option>
</select>
</div>
</div>
<div class="adp-metabox-field popup-field-info-buton-link">
<div class="adp-metabox-label">
<label for="adp_popup_info_button_link"><?php esc_html_e( 'Notification Button Link', 'advanced-popups' ); ?></label>
</div>
<div class="adp-metabox-input">
<input type="text" id="adp_popup_info_button_link" name="adp_popup_info_button_link" value="<?php echo esc_attr( $popup_info_button_link ); ?>" />
</div>
</div>
<div class="adp-metabox-field popup-field-limit-display">
<div class="adp-metabox-label">
<label for="adp_popup_limit_display"><?php esc_html_e( 'Limit display', 'advanced-popups' ); ?></label>
<p class="description">
<?php esc_html_e( 'Show the popup only [n] times.', 'advanced-popups' ); ?>
</p>
</div>
<div class="adp-metabox-input">
<input class="short" type="number" id="adp_popup_limit_display" name="adp_popup_limit_display" value="<?php echo esc_attr( $popup_limit_display ); ?>" />
</div>
</div>
<div class="adp-metabox-field popup-field-limit-lifetime">
<div class="adp-metabox-label">
<label for="adp_popup_limit_lifetime"><?php esc_html_e( 'Limit display сache lifetime (days)', 'advanced-popups' ); ?></label>
</div>
<div class="adp-metabox-input">
<input class="short" type="number" id="adp_popup_limit_lifetime " name="adp_popup_limit_lifetime" value="<?php echo esc_attr( $popup_limit_lifetime ); ?>" />
</div>
</div>
<div class="adp-metabox-field">
<div class="adp-metabox-label popup-field-show-to">
<label for="adp_popup_show_to"><?php esc_html_e( 'Guests or Logged-in', 'advanced-popups' ); ?></label>
</div>
<div class="adp-metabox-input">
<select id="adp_popup_show_to" name="adp_popup_show_to">
<option value="both" <?php selected( $popup_show_to, 'both' ); ?>><?php esc_html_e( 'Show to both users and guest visitors' ); ?></option>
<option value="guest" <?php selected( $popup_show_to, 'guest' ); ?>><?php esc_html_e( 'Show only to guest visitors' ); ?></option>
<option value="user" <?php selected( $popup_show_to, 'user' ); ?>><?php esc_html_e( 'Show only to logged-in users', 'advanced-popups' ); ?></option>
</select>
</div>
</div>
</div>
<div id="popup-tab-display">
<div class="adp-metabox-field popup-field-rules-mode">
<div class="adp-metabox-label">
<label for="adp_popup_rules_mode"><?php esc_html_e( 'Show Popup', 'advanced-popups' ); ?></label>
</div>
<div class="adp-metabox-input">
<label><input type="radio" id="adp_popup_rules_mode" name="adp_popup_rules_mode" value="all" <?php checked( $popup_rules_mode, 'all' ); ?>> <?php esc_html_e( 'Entire Site', 'advanced-popups' ); ?></label>&nbsp;
<label><input type="radio" id="adp_popup_rules_mode" name="adp_popup_rules_mode" value="specific" <?php checked( $popup_rules_mode, 'specific' ); ?>> <?php esc_html_e( 'Specific Pages', 'advanced-popups' ); ?></label>&nbsp;
</div>
</div>
<div class="adp-metabox-field popup-field-rules">
<div class="popup-field-rules-list">
<?php
if ( is_array( $popup_rules ) && $popup_rules ) {
foreach ( $popup_rules as $i => $row ) {
?>
<div class="row">
<?php
foreach ( $row as $t => $tools ) {
?>
<div class="tools">
<select class="adp-popup-rules" name="adp_popup_rules[<?php echo esc_attr( $i ); ?>][<?php echo esc_attr( $t ); ?>][rule]">
<?php
$rules = ADP_Popup_Rules::instance()->get_list();
foreach ( $rules as $optgroup => $items ) {
$label = $optgroup;
$label = str_replace( 'general', esc_html__( 'General', 'advanced-popups' ), $label );
$label = str_replace( 'post_types', esc_html__( 'Posts Types', 'advanced-popups' ), $label );
$label = str_replace( 'taxonomies', esc_html__( 'Taxonomies', 'advanced-popups' ), $label );
?>
<optgroup data-group="<?php echo esc_attr( $optgroup ); ?>"
label="<?php echo esc_attr( $label ); ?>">
<?php
foreach ( $items as $key => $name ) {
?>
<option value="<?php echo esc_attr( $key ); ?>" <?php selected( $key, $tools['rule'] ); ?>>
<?php echo esc_html( $name ); ?>
</option>
<?php
}
?>
</option>
<?php
}
?>
</select>
<input type="text" class="adp-popup-url" name="adp_popup_rules[<?php echo esc_attr( $i ); ?>][<?php echo esc_attr( $t ); ?>][url]" value="<?php echo esc_attr( $tools['url'] ); ?>">
<?php
$type = ADP_Popup_Rules::instance()->get_type( $tools['rule'] );
?>
<select multiple class="adp-popup-objects" name="adp_popup_rules[<?php echo esc_attr( $i ); ?>][<?php echo esc_attr( $t ); ?>][object][]">
<?php
if ( isset( $tools['object'] ) && is_array( $tools['object'] ) ) {
foreach ( $tools['object'] as $object ) {
$name = (int) $object;
if ( 'post' === $type ) {
$name = get_the_title( $object );
}
if ( 'taxonomy' === $type ) {
$term = get_term( $object );
$name = $term->name;
}
?>
<option value="<?php echo esc_attr( $object ); ?>" selected="selected"><?php echo esc_html( $name ); ?></option>
<?php
}
}
?>
</select>
<a href="#" class="delete remove-another-rule">
<span class="dashicons dashicons-no-alt"></span>
</a>
</div>
<?php
}
?>
<div class="tools-bar">
<div class="button add-another-rule">
<?php esc_html_e( 'Add another OR rule', 'advanced-popups' ); ?>
</div>
<a href="#" class="delete remove-rule"><?php esc_html_e( 'Remove', 'advanced-popups' ); ?></a>
</div>
</div>
<?php
}
}
?>
</div>
<div class="button button-primary add-new-rule">
<?php esc_html_e( 'Add New Rule ', 'advanced-popups' ); ?>
</div>
</div>
</div>
<div id="popup-tab-triggers">
<div class="adp-metabox-field popup-field-open-trigger">
<div class="adp-metabox-label">
<label for="adp_popup_open_trigger"><?php esc_html_e( 'Trigger Open Popup', 'advanced-popups' ); ?></label>
</div>
<div class="adp-metabox-input">
<label><input type="radio" id="adp_popup_open_trigger" name="adp_popup_open_trigger" value="delay" <?php checked( $popup_open_trigger, 'delay' ); ?>> <?php esc_html_e( 'Time Delay', 'advanced-popups' ); ?></label>&nbsp;
<label><input type="radio" id="adp_popup_open_trigger" name="adp_popup_open_trigger" value="viewed" <?php checked( $popup_open_trigger, 'viewed' ); ?>> <?php esc_html_e( 'Page Viewed', 'advanced-popups' ); ?></label>&nbsp;
<label><input type="radio" id="adp_popup_open_trigger" name="adp_popup_open_trigger" value="read" <?php checked( $popup_open_trigger, 'read' ); ?>> <?php esc_html_e( 'Page Read', 'advanced-popups' ); ?></label>&nbsp;
<label><input type="radio" id="adp_popup_open_trigger" name="adp_popup_open_trigger" value="exit" <?php checked( $popup_open_trigger, 'exit' ); ?>> <?php esc_html_e( 'Exit Intent', 'advanced-popups' ); ?></label>&nbsp;
<label><input type="radio" id="adp_popup_open_trigger" name="adp_popup_open_trigger" value="scroll" <?php checked( $popup_open_trigger, 'scroll' ); ?>> <?php esc_html_e( 'Scroll Position', 'advanced-popups' ); ?></label>
<label><input type="radio" id="adp_popup_open_trigger" name="adp_popup_open_trigger" value="accept" <?php checked( $popup_open_trigger, 'accept' ); ?>> <?php esc_html_e( 'Accept Agreement', 'advanced-popups' ); ?></label>&nbsp;
<label><input type="radio" id="adp_popup_open_trigger" name="adp_popup_open_trigger" value="manual" <?php checked( $popup_open_trigger, 'manual' ); ?>> <?php esc_html_e( 'Manual Launch', 'advanced-popups' ); ?></label>&nbsp;
</div>
</div>
<div class="adp-metabox-field popup-field-open-accept-desc">
<div class="adp-metabox-label"></div>
<div class="adp-metabox-input">
<p class="description"><?php esc_html_e( 'It works for "Notification Box" and "Notification Bar". And if "Notification Button Action" is selected as "Accept", then the popup will be displayed until the user accepts the agreement.', 'advanced-popups' ); ?></p>
</div>
</div>
<div class="adp-metabox-field popup-field-open-delay-number">
<div class="adp-metabox-label">
<label for="adp_popup_open_delay_number"><?php esc_html_e( 'Time Delay', 'advanced-popups' ); ?></label>
</div>
<div class="adp-metabox-input">
<label><input class="short" type="number" id="adp_popup_open_delay_number" name="adp_popup_open_delay_number" value="<?php echo esc_attr( $popup_open_delay_number ); ?>" /> <?php esc_html_e( 'Seconds', 'advanced-popups' ); ?></label>
</div>
</div>
<div class="adp-metabox-field popup-field-open-scroll-position">
<div class="adp-metabox-label">
<label for="adp_popup_open_scroll_position"><?php esc_html_e( 'Scroll Position', 'advanced-popups' ); ?></label>
</div>
<div class="adp-metabox-input">
<label>
<input class="short" type="number" id="adp_popup_open_scroll_position" name="adp_popup_open_scroll_position" value="<?php echo esc_attr( $popup_open_scroll_position ); ?>" />
<select class="short" id="adp_popup_open_scroll_type" name="adp_popup_open_scroll_type">
<option value="px" <?php selected( $popup_open_scroll_type, 'px' ); ?>><?php esc_html_e( 'Px.', 'advanced-popups' ); ?></option>
<option value="%" <?php selected( $popup_open_scroll_type, '%' ); ?>><?php esc_html_e( '%', 'advanced-popups' ); ?></option>
</select> <?php esc_html_e( 'of screen', 'advanced-popups' ); ?>
</label>
</div>
</div>
<div class="adp-metabox-field popup-field-open-manual-selector">
<div class="adp-metabox-label">
<label for="adp_popup_open_manual_selector"><?php esc_html_e( 'CSS Selector', 'advanced-popups' ); ?></label>
</div>
<div class="adp-metabox-input">
<input type="text" id="adp_popup_open_manual_selector" name="adp_popup_open_manual_selector" value="<?php echo esc_attr( $popup_open_manual_selector ); ?>" />
</div>
</div>
<div class="adp-metabox-field popup-field-close-trigger">
<div class="adp-metabox-label">
<label for="adp_popup_close_trigger"><?php esc_html_e( 'Trigger Close Popup', 'advanced-popups' ); ?></label>
</div>
<div class="adp-metabox-input">
<label><input type="radio" id="adp_popup_close_trigger" name="adp_popup_close_trigger" value="none" <?php checked( $popup_close_trigger, 'none' ); ?>> <?php esc_html_e( 'None', 'advanced-popups' ); ?></label>&nbsp;
<label><input type="radio" id="adp_popup_close_trigger" name="adp_popup_close_trigger" value="delay" <?php checked( $popup_close_trigger, 'delay' ); ?>> <?php esc_html_e( 'Time Delay', 'advanced-popups' ); ?></label>&nbsp;
<label><input type="radio" id="adp_popup_close_trigger" name="adp_popup_close_trigger" value="scroll" <?php checked( $popup_close_trigger, 'scroll' ); ?>> <?php esc_html_e( 'Scroll Position', 'advanced-popups' ); ?></label>
</div>
</div>
<div class="adp-metabox-field popup-field-close-delay-number">
<div class="adp-metabox-label">
<label for="adp_popup_close_delay_number"><?php esc_html_e( 'Time Delay', 'advanced-popups' ); ?></label>
</div>
<div class="adp-metabox-input">
<label><input class="short" type="number" id="adp_popup_close_delay_number" name="adp_popup_close_delay_number" value="<?php echo esc_attr( $popup_close_delay_number ); ?>" /> <?php esc_html_e( 'Seconds', 'advanced-popups' ); ?></label>
</div>
</div>
<div class="adp-metabox-field popup-field-close-scroll-position">
<div class="adp-metabox-label">
<label for="adp_popup_close_scroll_position"><?php esc_html_e( 'Offset Scroll Position', 'advanced-popups' ); ?></label>
</div>
<div class="adp-metabox-input">
<label>
<input class="short" type="number" id="adp_popup_close_scroll_position" name="adp_popup_close_scroll_position" value="<?php echo esc_attr( $popup_close_scroll_position ); ?>" />
<select class="short" id="adp_popup_close_scroll_type" name="adp_popup_close_scroll_type">
<option value="px" <?php selected( $popup_close_scroll_type, 'px' ); ?>><?php esc_html_e( 'Px.', 'advanced-popups' ); ?></option>
<option value="%" <?php selected( $popup_close_scroll_type, '%' ); ?>><?php esc_html_e( '%', 'advanced-popups' ); ?></option>
</select> <?php esc_html_e( 'of screen', 'advanced-popups' ); ?>
</label>
</div>
</div>
</div>
<div id="popup-tab-style">
<div class="adp-metabox-field popup-field-open-animation">
<div class="adp-metabox-label">
<label for="adp_popup_open_animation"><?php esc_html_e( 'Open Animation', 'advanced-popups' ); ?></label>
</div>
<div class="adp-metabox-input">
<select id="adp_popup_open_animation" name="adp_popup_open_animation">
<option value="popupOpenFade" <?php selected( $popup_open_animation, 'popupOpenFade' ); ?>><?php esc_html_e( 'Fade', 'advanced-popups' ); ?></option>
<option value="popupOpenSlide" <?php selected( $popup_open_animation, 'popupOpenSlide' ); ?>><?php esc_html_e( 'Slide', 'advanced-popups' ); ?></option>
<option value="popupOpenZoom" <?php selected( $popup_open_animation, 'popupOpenZoom' ); ?>><?php esc_html_e( 'Zoom', 'advanced-popups' ); ?></option>
<option value="popupOpenSlideFade" <?php selected( $popup_open_animation, 'popupOpenSlideFade' ); ?>><?php esc_html_e( 'Slide and Fade', 'advanced-popups' ); ?></option>
</select>
</div>
</div>
<div class="adp-metabox-field popup-field-exit-animation">
<div class="adp-metabox-label">
<label for="adp_popup_exit_animation"><?php esc_html_e( 'Exit Animation', 'advanced-popups' ); ?></label>
</div>
<div class="adp-metabox-input">
<select id="adp_popup_exit_animation" name="adp_popup_exit_animation">
<option value="popupExitFade" <?php selected( $popup_exit_animation, 'popupExitFade' ); ?>><?php esc_html_e( 'Fade', 'advanced-popups' ); ?></option>
<option value="popupExitSlide" <?php selected( $popup_exit_animation, 'popupExitSlide' ); ?>><?php esc_html_e( 'Slide', 'advanced-popups' ); ?></option>
<option value="popupExitZoom" <?php selected( $popup_exit_animation, 'popupExitZoom' ); ?>><?php esc_html_e( 'Zoom', 'advanced-popups' ); ?></option>
<option value="popupExitSlideFade" <?php selected( $popup_exit_animation, 'popupExitSlideFade' ); ?>><?php esc_html_e( 'Slide and Fade', 'advanced-popups' ); ?></option>
</select>
</div>
</div>
<div class="adp-metabox-field popup-field-content-box-width">
<div class="adp-metabox-label">
<label for="adp_popup_content_box_width"><?php esc_html_e( 'Content Box Width', 'advanced-popups' ); ?></label>
</div>
<div class="adp-metabox-input">
<label>
<input class="short" type="number" id="adp_popup_content_box_width" name="adp_popup_content_box_width" value="<?php echo esc_attr( $popup_content_box_width ); ?>" /> <?php esc_html_e( 'px.', 'advanced-popups' ); ?>
</label>
</div>
</div>
<div class="adp-metabox-field popup-field-notification-box-width">
<div class="adp-metabox-label">
<label for="adp_popup_notification_box_width"><?php esc_html_e( 'Notification Box Width', 'advanced-popups' ); ?></label>
</div>
<div class="adp-metabox-input">
<label>
<input class="short" type="number" id="adp_popup_notification_box_width" name="adp_popup_notification_box_width" value="<?php echo esc_attr( $popup_notification_box_width ); ?>" /> <?php esc_html_e( 'px.', 'advanced-popups' ); ?>
</label>
</div>
</div>
<div class="adp-metabox-field popup-field-notification-bar-width">
<div class="adp-metabox-label">
<label for="adp_popup_notification_bar_width"><?php esc_html_e( 'Notification Bar Width', 'advanced-popups' ); ?></label>
</div>
<div class="adp-metabox-input">
<label>
<input class="short" type="number" id="adp_popup_notification_bar_width" name="adp_popup_notification_bar_width" value="<?php echo esc_attr( $popup_notification_bar_width ); ?>" /> <?php esc_html_e( 'px.', 'advanced-popups' ); ?>
</label>
</div>
</div>
<div class="adp-metabox-field popup-field-display-overlay">
<div class="adp-metabox-label">
<label for="adp_popup_light_close"><?php esc_html_e( 'Light Close Button', 'advanced-popups' ); ?></label>
</div>
<div class="adp-metabox-input">
<input type="checkbox" id="adp_popup_light_close" name="adp_popup_light_close" value="1" <?php checked( $popup_light_close ); ?>>
</div>
</div>
<div class="adp-metabox-field popup-field-display-overlay">
<div class="adp-metabox-label">
<label for="adp_popup_display_overlay"><?php esc_html_e( 'Display Overlay', 'advanced-popups' ); ?></label>
</div>
<div class="adp-metabox-input">
<input type="checkbox" id="adp_popup_display_overlay" name="adp_popup_display_overlay" value="1" <?php checked( $popup_display_overlay ); ?>>
</div>
</div>
</div>
<div id="popup-tab-advanced">
<div class="adp-metabox-field popup-field-mobile-disable">
<div class="adp-metabox-label">
<label for="adp_popup_mobile_disable"><?php esc_html_e( 'Mobile Disable', 'advanced-popups' ); ?></label>
</div>
<div class="adp-metabox-input">
<label><input type="checkbox" id="adp_popup_mobile_disable" name="adp_popup_mobile_disable" value="1" <?php checked( $popup_mobile_disable ); ?>> <?php esc_html_e( 'Disable popup on mobile', 'advanced-popups' ); ?></label>
</div>
</div>
<div class="adp-metabox-field popup-field-body-scroll-disable">
<div class="adp-metabox-label">
<label for="adp_popup_body_scroll_disable"><?php esc_html_e( 'Disable Scrolling', 'advanced-popups' ); ?></label>
</div>
<div class="adp-metabox-input">
<label><input type="checkbox" id="adp_popup_body_scroll_disable" name="adp_popup_body_scroll_disable" value="1" <?php checked( $popup_body_scroll_disable ); ?>> <?php esc_html_e( 'Disable scrolling on body', 'advanced-popups' ); ?></label>
</div>
</div>
<div class="adp-metabox-field popup-field-overlay-close">
<div class="adp-metabox-label">
<label for="adp_popup_overlay_close"><?php esc_html_e( 'Click Overlay to Close', 'advanced-popups' ); ?></label>
</div>
<div class="adp-metabox-input">
<label><input type="checkbox" id="adp_popup_overlay_close" name="adp_popup_overlay_close" value="1" <?php checked( $popup_overlay_close ); ?>> <?php esc_html_e( 'Checking this will cause popup to close when user clicks on overlay', 'advanced-popups' ); ?></label>
</div>
</div>
<div class="adp-metabox-field popup-field-esc-close">
<div class="adp-metabox-label">
<label for="adp_popup_esc_close"><?php esc_html_e( 'Press ESC to Close', 'advanced-popups' ); ?></label>
</div>
<div class="adp-metabox-input">
<label><input type="checkbox" id="adp_popup_esc_close" name="adp_popup_esc_close" value="1" <?php checked( $popup_esc_close ); ?>> <?php esc_html_e( 'Checking this will cause popup to close when user presses ESC key', 'advanced-popups' ); ?></label>
</div>
</div>
<div class="adp-metabox-field popup-field-f4-close">
<div class="adp-metabox-label">
<label for="adp_popup_f4_close"><?php esc_html_e( 'Press F4 to Close', 'advanced-popups' ); ?></label>
</div>
<div class="adp-metabox-input">
<label><input type="checkbox" id="adp_popup_f4_close" name="adp_popup_f4_close" value="1" <?php checked( $popup_f4_close ); ?>> <?php esc_html_e( 'Checking this will cause popup to close when user presses F4 key', 'advanced-popups' ); ?></label>
</div>
</div>
</div>
</div>
</div>
</div>
<?php
}
/**
* Save meta tags by post
*
* @param int $post_id Post ID.
* @param object $post Post Object.
*/
public function metabox_popup_save( $post_id, $post ) {
// Break if doing autosave.
if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) {
return;
}
// Break if current user can't edit this post.
if ( ! current_user_can( 'edit_post', $post_id ) ) {
return;
}
// Break if this post revision.
if ( wp_is_post_revision( $post_id ) ) {
return;
}
if ( ! isset( $_POST['adp_popup_meta_nonce'] ) || ! wp_verify_nonce( $_POST['adp_popup_meta_nonce'], 'adp_popup_meta_nonce' ) ) { // Input var ok; sanitization ok.
return;
}
if ( ! isset( $_POST['adp_popup_action'] ) || 1 !== (int) $_POST['adp_popup_action'] ) { // Input var ok; sanitization ok.
return;
}
if ( isset( $_POST['adp_popup_type'] ) ) {
$popup_type = sanitize_text_field( $_POST['adp_popup_type'] ); // Input var ok; sanitization ok.
update_post_meta( $post_id, '_adp_popup_type', $popup_type );
}
if ( isset( $_POST['adp_popup_location'] ) ) {
$popup_location = sanitize_text_field( $_POST['adp_popup_location'] ); // Input var ok; sanitization ok.
update_post_meta( $post_id, '_adp_popup_location', $popup_location );
}
if ( isset( $_POST['adp_popup_preview_image'] ) ) {
$popup_preview_image = sanitize_text_field( $_POST['adp_popup_preview_image'] ); // Input var ok; sanitization ok.
update_post_meta( $post_id, '_adp_popup_preview_image', $popup_preview_image );
}
if ( isset( $_POST['adp_popup_info_text'] ) ) {
$popup_info_text = wp_kses_post( $_POST['adp_popup_info_text'] ); // Input var ok; sanitization ok.
update_post_meta( $post_id, '_adp_popup_info_text', $popup_info_text );
}
if ( isset( $_POST['adp_popup_info_buton_label'] ) ) {
$popup_info_buton_label = sanitize_text_field( $_POST['adp_popup_info_buton_label'] ); // Input var ok; sanitization ok.
update_post_meta( $post_id, '_adp_popup_info_buton_label', $popup_info_buton_label );
}
if ( isset( $_POST['adp_popup_info_button_action'] ) ) {
$popup_info_button_action = sanitize_text_field( $_POST['adp_popup_info_button_action'] ); // Input var ok; sanitization ok.
update_post_meta( $post_id, '_adp_popup_info_button_action', $popup_info_button_action );
}
if ( isset( $_POST['adp_popup_info_button_link'] ) ) {
$popup_info_button_link = sanitize_text_field( $_POST['adp_popup_info_button_link'] ); // Input var ok; sanitization ok.
update_post_meta( $post_id, '_adp_popup_info_button_link', $popup_info_button_link );
}
if ( isset( $_POST['adp_popup_limit_display'] ) ) {
$popup_limit_display = (int) sanitize_text_field( $_POST['adp_popup_limit_display'] ); // Input var ok; sanitization ok.
update_post_meta( $post_id, '_adp_popup_limit_display', $popup_limit_display );
}
if ( isset( $_POST['adp_popup_limit_lifetime'] ) ) {
$popup_limit_lifetime = (int) sanitize_text_field( $_POST['adp_popup_limit_lifetime'] ); // Input var ok; sanitization ok.
update_post_meta( $post_id, '_adp_popup_limit_lifetime', $popup_limit_lifetime );
}
if ( isset( $_POST['adp_popup_show_to'] ) ) {
$popup_show_to = sanitize_text_field( $_POST['adp_popup_show_to'] ); // Input var ok; sanitization ok.
update_post_meta( $post_id, '_adp_popup_show_to', $popup_show_to );
}
if ( isset( $_POST['adp_popup_rules_mode'] ) ) {
$popup_rules_mode = sanitize_text_field( $_POST['adp_popup_rules_mode'] ); // Input var ok; sanitization ok.
update_post_meta( $post_id, '_adp_popup_rules_mode', $popup_rules_mode );
}
if ( isset( $_POST['adp_popup_rules'] ) ) {
$popup_rules = map_deep( $_POST['adp_popup_rules'], 'sanitize_text_field' ); // Input var ok; sanitization ok.
update_post_meta( $post_id, '_adp_popup_rules', $popup_rules );
} else {
delete_post_meta( $post_id, '_adp_popup_rules' );
}
if ( isset( $_POST['adp_popup_open_trigger'] ) ) {
$popup_open_trigger = sanitize_text_field( $_POST['adp_popup_open_trigger'] ); // Input var ok; sanitization ok.
update_post_meta( $post_id, '_adp_popup_open_trigger', $popup_open_trigger );
}
if ( isset( $_POST['adp_popup_open_delay_number'] ) ) {
$popup_open_delay_number = sanitize_text_field( $_POST['adp_popup_open_delay_number'] ); // Input var ok; sanitization ok.
update_post_meta( $post_id, '_adp_popup_open_delay_number', $popup_open_delay_number );
}
if ( isset( $_POST['adp_popup_open_scroll_position'] ) ) {
$popup_open_scroll_position = sanitize_text_field( $_POST['adp_popup_open_scroll_position'] ); // Input var ok; sanitization ok.
update_post_meta( $post_id, '_adp_popup_open_scroll_position', $popup_open_scroll_position );
}
if ( isset( $_POST['adp_popup_open_scroll_type'] ) ) {
$popup_open_scroll_type = sanitize_text_field( $_POST['adp_popup_open_scroll_type'] ); // Input var ok; sanitization ok.
update_post_meta( $post_id, '_adp_popup_open_scroll_type', $popup_open_scroll_type );
}
if ( isset( $_POST['adp_popup_open_manual_selector'] ) ) {
$popup_open_manual_selector = sanitize_text_field( $_POST['adp_popup_open_manual_selector'] ); // Input var ok; sanitization ok.
update_post_meta( $post_id, '_adp_popup_open_manual_selector', $popup_open_manual_selector );
}
if ( isset( $_POST['adp_popup_close_trigger'] ) ) {
$popup_close_trigger = sanitize_text_field( $_POST['adp_popup_close_trigger'] ); // Input var ok; sanitization ok.
update_post_meta( $post_id, '_adp_popup_close_trigger', $popup_close_trigger );
}
if ( isset( $_POST['adp_popup_close_delay_number'] ) ) {
$popup_close_delay_number = sanitize_text_field( $_POST['adp_popup_close_delay_number'] ); // Input var ok; sanitization ok.
update_post_meta( $post_id, '_adp_popup_close_delay_number', $popup_close_delay_number );
}
if ( isset( $_POST['adp_popup_close_scroll_position'] ) ) {
$popup_close_scroll_position = sanitize_text_field( $_POST['adp_popup_close_scroll_position'] ); // Input var ok; sanitization ok.
update_post_meta( $post_id, '_adp_popup_close_scroll_position', $popup_close_scroll_position );
}
if ( isset( $_POST['adp_popup_close_scroll_type'] ) ) {
$popup_close_scroll_type = sanitize_text_field( $_POST['adp_popup_close_scroll_type'] ); // Input var ok; sanitization ok.
update_post_meta( $post_id, '_adp_popup_close_scroll_type', $popup_close_scroll_type );
}
if ( isset( $_POST['adp_popup_open_animation'] ) ) {
$popup_open_animation = sanitize_text_field( $_POST['adp_popup_open_animation'] ); // Input var ok; sanitization ok.
update_post_meta( $post_id, '_adp_popup_open_animation', $popup_open_animation );
}
if ( isset( $_POST['adp_popup_exit_animation'] ) ) {
$popup_exit_animation = sanitize_text_field( $_POST['adp_popup_exit_animation'] ); // Input var ok; sanitization ok.
update_post_meta( $post_id, '_adp_popup_exit_animation', $popup_exit_animation );
}
if ( isset( $_POST['adp_popup_content_box_width'] ) ) {
$popup_content_box_width = (int) sanitize_text_field( $_POST['adp_popup_content_box_width'] ); // Input var ok; sanitization ok.
update_post_meta( $post_id, '_adp_popup_content_box_width', $popup_content_box_width );
}
if ( isset( $_POST['adp_popup_notification_box_width'] ) ) {
$popup_notification_box_width = (int) sanitize_text_field( $_POST['adp_popup_notification_box_width'] ); // Input var ok; sanitization ok.
update_post_meta( $post_id, '_adp_popup_notification_box_width', $popup_notification_box_width );
}
if ( isset( $_POST['adp_popup_notification_bar_width'] ) ) {
$popup_notification_bar_width = (int) sanitize_text_field( $_POST['adp_popup_notification_bar_width'] ); // Input var ok; sanitization ok.
update_post_meta( $post_id, '_adp_popup_notification_bar_width', $popup_notification_bar_width );
}
if ( isset( $_POST['adp_popup_light_close'] ) ) { // Input var ok; sanitization ok.
update_post_meta( $post_id, '_adp_popup_light_close', 1 );
} else {
update_post_meta( $post_id, '_adp_popup_light_close', '' );
}
if ( isset( $_POST['adp_popup_display_overlay'] ) ) { // Input var ok; sanitization ok.
update_post_meta( $post_id, '_adp_popup_display_overlay', 1 );
} else {
update_post_meta( $post_id, '_adp_popup_display_overlay', '' );
}
if ( isset( $_POST['adp_popup_mobile_disable'] ) ) { // Input var ok; sanitization ok.
update_post_meta( $post_id, '_adp_popup_mobile_disable', 1 );
} else {
update_post_meta( $post_id, '_adp_popup_mobile_disable', '' );
}
if ( isset( $_POST['adp_popup_body_scroll_disable'] ) ) { // Input var ok; sanitization ok.
update_post_meta( $post_id, '_adp_popup_body_scroll_disable', 1 );
} else {
update_post_meta( $post_id, '_adp_popup_body_scroll_disable', '' );
}
if ( isset( $_POST['adp_popup_overlay_close'] ) ) { // Input var ok; sanitization ok.
update_post_meta( $post_id, '_adp_popup_overlay_close', 1 );
} else {
update_post_meta( $post_id, '_adp_popup_overlay_close', '' );
}
if ( isset( $_POST['adp_popup_esc_close'] ) ) { // Input var ok; sanitization ok.
update_post_meta( $post_id, '_adp_popup_esc_close', 1 );
} else {
update_post_meta( $post_id, '_adp_popup_esc_close', '' );
}
if ( isset( $_POST['adp_popup_f4_close'] ) ) { // Input var ok; sanitization ok.
update_post_meta( $post_id, '_adp_popup_f4_close', 1 );
} else {
update_post_meta( $post_id, '_adp_popup_f4_close', '' );
}
}
/**
* Get objects list in rules.
*/
public function ajax_rules_objects() {
check_ajax_referer();
$search = isset( $_POST['search'] ) ? sanitize_text_field( $_POST['search'] ) : ''; // Input var ok; sanitization ok.
$group = isset( $_GET['group'] ) ? sanitize_text_field( $_GET['group'] ) : 'post_types'; // Input var ok; sanitization ok.
$rule = isset( $_GET['rule'] ) ? sanitize_text_field( $_GET['rule'] ) : 'none'; // Input var ok; sanitization ok.
$page = isset( $_GET['page'] ) ? (int) sanitize_text_field( $_GET['page'] ) : 1; // Input var ok; sanitization ok.
// Data container.
$data = array();
// Get object.
$object = ADP_Popup_Rules::instance()->get_object( $rule );
// Get posts.
if ( 'post_types' === $group ) {
$args = array(
's' => $search,
'post_status' => 'publish',
'ignore_sticky_posts' => 1,
'posts_per_page' => 10,
'post_type' => $object,
'paged' => $page,
);
$query = new WP_Query( $args );
if ( $query->have_posts() ) {
while ( $query->have_posts() ) {
$query->the_post();
$data['items'][ $query->post->ID ] = $query->post->post_title;
}
}
if ( $page < (int) $query->max_num_pages ) {
$data['pagination'] = true;
} else {
$data['pagination'] = false;
}
}
// Get terms.
if ( 'taxonomies' === $group ) {
$terms = get_terms( $object, array(
'hide_empty' => false,
) );
if ( $terms && ! is_wp_error( $terms ) ) {
foreach ( $terms as $term ) {
$data['items'][ $term->term_id ] = $term->name;
}
}
$data['pagination'] = false;
}
wp_send_json( $data );
}
/**
* Register the stylesheets and JavaScript for the admin area.
*
* @param string $page Current page.
*/
public function admin_enqueue_scripts( $page ) {
global $post_type;
if ( 'adp-popup' !== $post_type ) {
return;
}
if ( in_array( $page, array( 'post.php', 'post-new.php' ), true ) ) {
// Select2.
wp_enqueue_style( 'select2', plugin_dir_url( __FILE__ ) . 'css/select2.min.css' );
wp_enqueue_script( 'select2', plugin_dir_url( __FILE__ ) . 'js/select2.full.min.js', array( 'jquery' ) );
wp_enqueue_script( 'jquery-ui-sortable' );
wp_enqueue_script( 'jquery-ui-tabs' );
// Scripts.
wp_enqueue_script( $this->adp, plugin_dir_url( __FILE__ ) . 'js/advanced-popups-admin.js', array( 'jquery', 'jquery-ui-tabs', 'jquery-ui-sortable', 'select2' ), $this->version, false );
wp_localize_script( $this->adp, 'adp_popup_data', array(
'ajaxurl' => admin_url( 'admin-ajax.php' ),
'nonce' => wp_create_nonce(),
'label_general' => esc_html__( 'General', 'advanced-popups' ),
'label_post_types' => esc_html__( 'Posts Types', 'advanced-popups' ),
'label_taxonomies' => esc_html__( 'Taxonomies', 'advanced-popups' ),
'btn_label_another' => esc_html__( 'Add another OR rule', 'advanced-popups' ),
'btn_delete' => esc_html__( 'Remove', 'advanced-popups' ),
'select2_placeholder' => esc_html__( 'Find items...', 'advanced-popups' ),
'select2_errorLoading' => esc_html__( 'The results could not be loaded.', 'advanced-popups' ),
'select2_loadingMore' => esc_html__( 'Loading more results...', 'advanced-popups' ),
'select2_noResults' => esc_html__( 'Nothing not found', 'advanced-popups' ),
'select2_searching' => esc_html__( 'Searching...', 'advanced-popups' ),
'select2_removeAllItems' => esc_html__( 'Remove all items', 'advanced-popups' ),
'rules_list' => wp_json_encode( ADP_Popup_Rules::instance()->get_list() ),
) );
// Styles.
wp_enqueue_style( $this->adp, adp_style( plugin_dir_url( __FILE__ ) . 'css/advanced-popups-admin.css' ), array(), $this->version, 'all' );
}
}
}
@@ -0,0 +1,500 @@
/**
* All of the CSS for your admin-facing functionality should be
* included in this file.
*/
/*--------------------------------------------------------------*/
#adp_popup_metabox .inside {
margin: 0;
padding: 0;
}
#adp_popup_metabox .hidden {
display: none;
}
/* Basic -------------------------------------------------------------- */
.adp-metabox-wrap .adp-metabox-tabs {
background: none;
border: none;
display: flex;
margin: 0;
padding: 0;
border-radius: 0;
}
.adp-metabox-wrap .adp-metabox-tabs > .adp-metabox-tabs-navigation {
display: flex;
flex-direction: column;
border: none;
border-left: 1px solid #eee;
background: #FAFAFA;
flex: 0 0 200px;
margin: 0;
padding: 0;
}
.adp-metabox-wrap .adp-metabox-tabs > .adp-metabox-tabs-navigation:before {
display: none;
}
.adp-metabox-wrap .adp-metabox-tabs > .adp-metabox-tabs-navigation li {
display: block;
background: transparent;
border: none;
margin: 0;
padding: 0;
float: none;
outline: none;
box-shadow: none;
border-radius: 0;
}
.adp-metabox-wrap .adp-metabox-tabs > .adp-metabox-tabs-navigation li a {
border: none;
border-bottom: 1px solid #eee;
position: relative;
display: block;
font-size: 0.8125rem;
line-height: 1.25rem;
padding: 0.625rem;
text-decoration: none;
outline: none;
box-shadow: none;
color: #0073aa;
float: none;
cursor: pointer;
}
.adp-metabox-wrap .adp-metabox-tabs > .adp-metabox-tabs-navigation li a:hover {
color: #00a0d2;
}
.adp-metabox-wrap .adp-metabox-tabs > .adp-metabox-tabs-navigation li.ui-tabs-active {
margin: 0;
padding: 0;
}
.adp-metabox-wrap .adp-metabox-tabs > .adp-metabox-tabs-navigation li.ui-tabs-active a {
background-color: #eee;
color: #555;
cursor: pointer;
}
.adp-metabox-wrap .adp-metabox-tabs > .adp-metabox-tabs-content {
flex-grow: 1;
}
.adp-metabox-wrap .adp-metabox-tabs > .adp-metabox-tabs-content .ui-tabs-panel {
padding: 0;
border-radius: 0;
}
@media screen and (max-width: 768px) {
.adp-metabox-wrap .adp-metabox-tabs {
flex-direction: column;
}
.adp-metabox-wrap .adp-metabox-tabs > .adp-metabox-tabs-navigation {
flex: 0 0 100%;
}
}
.adp-metabox-wrap .adp-metabox-field {
display: flex;
position: relative;
flex-direction: column;
}
.adp-metabox-wrap .adp-metabox-field:last-child {
border-bottom: none;
}
.adp-metabox-wrap .adp-metabox-field .adp-metabox-label {
position: relative;
flex: 0 0 100%;
float: none;
margin: 0;
padding: 1rem 1rem 0.5rem;
box-sizing: border-box;
}
.adp-metabox-wrap .adp-metabox-field .adp-metabox-label label {
display: block;
font-size: 14px;
line-height: 1.4em;
margin: 0 0 3px;
}
.adp-metabox-wrap .adp-metabox-field .adp-metabox-input {
position: relative;
flex: 0 0 100%;
margin: 0;
padding: 1rem 1rem 0.5rem;
box-sizing: border-box;
}
.adp-metabox-wrap .adp-metabox-field .adp-metabox-input input[type="number"],
.adp-metabox-wrap .adp-metabox-field .adp-metabox-input input[type="text"],
.adp-metabox-wrap .adp-metabox-field .adp-metabox-input select,
.adp-metabox-wrap .adp-metabox-field .adp-metabox-input textarea {
width: 100%;
}
.adp-metabox-wrap .adp-metabox-field .adp-metabox-input input[type="number"].short,
.adp-metabox-wrap .adp-metabox-field .adp-metabox-input input[type="text"].short,
.adp-metabox-wrap .adp-metabox-field .adp-metabox-input select.short,
.adp-metabox-wrap .adp-metabox-field .adp-metabox-input textarea.short {
max-width: 100px;
}
@media (min-width: 1200px) {
.adp-metabox-wrap .adp-metabox-field {
flex-direction: row;
}
.adp-metabox-wrap .adp-metabox-field .adp-metabox-label {
flex: 0 0 20%;
padding: 1rem 1.25rem;
}
.adp-metabox-wrap .adp-metabox-field .adp-metabox-input {
flex: 0 0 80%;
padding: 1rem 1.25rem;
}
}
.adp-metabox-wrap .adp-metabox-switcher {
display: flex;
position: absolute;
top: -2rem;
left: 1rem;
}
.adp-metabox-wrap .adp-metabox-switcher .adp-metabox-switch {
border: 2px solid #555d66;
box-sizing: border-box;
color: #fff;
cursor: pointer;
display: flex;
height: 1.75rem;
height: 18px;
padding: 0;
position: relative;
vertical-align: middle;
width: 36px;
margin-left: 0.5rem;
border-radius: 9px;
}
.adp-metabox-wrap .adp-metabox-switcher .adp-metabox-switch .adp-metabox-switch-on {
position: absolute;
top: 2px;
right: 2px;
width: 10px;
height: 10px;
z-index: 1;
background: #6C7781;
border-radius: 50%;
transition: all 0s ease 0.25s;
}
.adp-metabox-wrap .adp-metabox-switcher .adp-metabox-switch .adp-metabox-switch-off {
border: 2px solid #6c7781;
display: block;
position: absolute;
top: 3px;
left: 3px;
width: 7px;
height: 7px;
z-index: 1;
border-radius: 50%;
}
.adp-metabox-wrap .adp-metabox-switcher .adp-metabox-switch .adp-metabox-switch-slider {
position: absolute;
top: 2px;
right: 2px;
width: 10px;
height: 10px;
z-index: 1;
background: #6C7781;
border-radius: 50%;
transition: all 0.25s ease;
}
.adp-metabox-wrap .adp-metabox-switcher .adp-metabox-checkbox {
position: absolute;
top: 0;
right: 0;
width: 100%;
height: 100%;
opacity: 0;
z-index: 2;
}
.adp-metabox-wrap .adp-metabox-switcher .adp-metabox-checkbox:checked + .adp-metabox-switch {
border-color: #11A0D2;
background: #11A0D2;
}
.adp-metabox-wrap .adp-metabox-switcher .adp-metabox-checkbox:checked + .adp-metabox-switch .adp-metabox-switch-on {
top: 4px;
right: 6px;
width: 2px;
height: 6px;
background: #FFFFFF;
transition: none;
}
.adp-metabox-wrap .adp-metabox-switcher .adp-metabox-checkbox:checked + .adp-metabox-switch .adp-metabox-switch-slider {
background: #FFFFFF;
top: 2px;
right: calc(50% + 4px);
}
.adp-metabox-wrap .adp-metabox-repeater {
width: 100%;
}
.adp-metabox-wrap .adp-metabox-repeater > table {
width: 100%;
border: none;
border-collapse: collapse;
}
.adp-metabox-wrap .adp-metabox-repeater > table tr {
background: #FFFFFF;
width: 100%;
}
.adp-metabox-wrap .adp-metabox-repeater > table tr th {
text-align: right;
}
.adp-metabox-wrap .adp-metabox-repeater > table tr th,
.adp-metabox-wrap .adp-metabox-repeater > table tr td {
border: none;
vertical-align: top;
}
.adp-metabox-wrap .adp-metabox-repeater > table tr.ui-sortable-helper {
display: table;
}
.adp-metabox-wrap .adp-metabox-repeater > table tr.ui-sortable-placeholder {
background: #F9F9F9;
}
.adp-metabox-wrap .adp-metabox-repeater > table tr.ui-state-highlight td {
background: #F9F9F9;
border: 1px dashed #D8D8D8;
}
.adp-metabox-wrap .adp-metabox-repeater .btn-add-row {
margin: 1rem 1.25rem;
}
.adp-metabox-wrap .adp-metabox-repeater .row-content input, .adp-metabox-wrap .adp-metabox-repeater .row-content textarea {
width: 100%;
}
.adp-metabox-wrap .adp-metabox-repeater .row-content input[type="number"] {
max-width: 100px;
}
.adp-metabox-wrap .adp-metabox-repeater .row-content p {
width: 100%;
}
.adp-metabox-wrap .adp-metabox-repeater .row-topbar {
position: relative;
border-bottom: 1px solid #EFEFEF;
padding: 1rem 1.25rem;
zoom: 1;
cursor: move;
}
.adp-metabox-wrap .adp-metabox-repeater .row-topbar .handlediv {
display: block !important;
background-position: 6px 5px;
visibility: hidden;
width: 27px;
height: 26px;
}
.adp-metabox-wrap .adp-metabox-repeater .row-topbar .handlediv:before {
content: "\f142";
cursor: pointer;
display: inline-block;
font: 400 20px/1 Dashicons;
line-height: .5;
padding: 8px 10px;
position: relative;
left: 12px;
top: 0;
}
.adp-metabox-wrap .adp-metabox-repeater .row-topbar.closed .handlediv:before {
content: "\f140";
}
.adp-metabox-wrap .adp-metabox-repeater .row-topbar .delete {
color: red;
font-weight: 400;
line-height: 26px;
text-decoration: none;
position: relative;
visibility: hidden;
float: left;
}
.adp-metabox-wrap .adp-metabox-repeater .row-topbar .signature {
display: inline-block;
padding-left: 100px;
line-height: 26px;
font-weight: 700;
}
.adp-metabox-wrap .adp-metabox-repeater .row-topbar .signature span {
opacity: 0.5;
}
.adp-metabox-wrap .adp-metabox-repeater .row-topbar:hover .handlediv,
.adp-metabox-wrap .adp-metabox-repeater .row-topbar:hover .delete {
visibility: visible;
}
.adp-metabox-wrap .adp-metabox-repeater .row-fields {
border-bottom: 1px solid #EFEFEF;
background-color: #FDFDFD;
}
.adp-metabox-wrap .adp-metabox-repeater .row-body {
padding: 1rem 1.25rem;
}
/* Popup -------------------------------------------------------------- */
.adp-metabox-wrap .popup-field-info-text,
.adp-metabox-wrap .popup-field-info-buton-label,
.adp-metabox-wrap .popup-field-info-buton-action,
.adp-metabox-wrap .popup-field-info-buton-link {
display: none;
}
.adp-metabox-wrap .popup-field-rules {
flex-direction: column;
}
.adp-metabox-wrap .popup-field-rules input[type="text"],
.adp-metabox-wrap .popup-field-rules select {
width: 100%;
box-sizing: border-box;
}
.adp-metabox-wrap .popup-field-rules .delete {
display: inline-block;
color: red;
font-weight: 400;
line-height: 26px;
margin-right: 1rem;
}
.adp-metabox-wrap .popup-field-rules .add-new-rule {
margin-right: 1rem;
margin-bottom: 1rem;
margin-left: auto;
}
.adp-metabox-wrap .popup-field-rules-list:not(:empty) {
margin-bottom: 2rem;
}
.adp-metabox-wrap .popup-field-rules-list .row {
border-top: 1px dashed #EEEEEE;
margin-top: 1.5rem;
padding-right: 1.25rem;
padding-left: 1.25rem;
padding-top: 1.5rem;
}
.adp-metabox-wrap .popup-field-rules-list .row:first-child {
border-top: none;
margin-top: 0;
padding-top: 0;
}
.adp-metabox-wrap .popup-field-rules-list .tools {
position: relative;
border-right: 2px solid #555D66;
background: #FAFAFA;
margin-top: 1rem;
padding: 1rem;
padding-left: 3rem;
}
.adp-metabox-wrap .popup-field-rules-list .tools:first-child {
margin-top: 0;
}
.adp-metabox-wrap .popup-field-rules-list .tools-bar {
display: flex;
justify-content: flex-start;
align-items: center;
margin-top: 1rem;
}
.adp-metabox-wrap .popup-field-rules-list .remove-another-rule {
position: absolute;
justify-content: center;
align-items: center;
top: 1rem;
left: 1rem;
margin: 0;
font-size: 1rem;
color: #555d66;
text-decoration: none;
}
.adp-metabox-wrap .popup-field-rules-list .remove-another-rule:hover {
color: #000000;
}
.adp-metabox-wrap .popup-field-rules-list input[type="text"],
.adp-metabox-wrap .popup-field-rules-list .select2 {
width: 100%;
margin-top: 1rem;
}
.adp-metabox-wrap .popup-field-rules-list .select2-selection {
border: 1px solid #ddd;
box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.07);
border-radius: 0;
min-height: 30px;
height: 30px;
}
.adp-metabox-wrap .popup-field-rules-list .select2-selection__choice {
background: #FAFAFA;
border-color: #CDCDCD;
}
.adp-metabox-wrap .adp-popup-objects.hidden + .select2 {
display: none;
}
.popup-block-easy .editor-post-title {
margin-bottom: 2rem;
}
.popup-block-easy .edit-post-header-toolbar {
visibility: hidden;
}
.popup-block-easy .editor-post-text-editor,
.popup-block-easy .block-editor-block-list__layout {
display: none;
}
.popup-block-easy .adp-metabox-wrap .popup-field-info-text,
.popup-block-easy .adp-metabox-wrap .popup-field-info-buton-label,
.popup-block-easy .adp-metabox-wrap .popup-field-info-buton-action,
.popup-block-easy .adp-metabox-wrap .popup-field-info-buton-link {
display: flex;
}
@@ -0,0 +1,500 @@
/**
* All of the CSS for your admin-facing functionality should be
* included in this file.
*/
/*--------------------------------------------------------------*/
#adp_popup_metabox .inside {
margin: 0;
padding: 0;
}
#adp_popup_metabox .hidden {
display: none;
}
/* Basic -------------------------------------------------------------- */
.adp-metabox-wrap .adp-metabox-tabs {
background: none;
border: none;
display: flex;
margin: 0;
padding: 0;
border-radius: 0;
}
.adp-metabox-wrap .adp-metabox-tabs > .adp-metabox-tabs-navigation {
display: flex;
flex-direction: column;
border: none;
border-right: 1px solid #eee;
background: #FAFAFA;
flex: 0 0 200px;
margin: 0;
padding: 0;
}
.adp-metabox-wrap .adp-metabox-tabs > .adp-metabox-tabs-navigation:before {
display: none;
}
.adp-metabox-wrap .adp-metabox-tabs > .adp-metabox-tabs-navigation li {
display: block;
background: transparent;
border: none;
margin: 0;
padding: 0;
float: none;
outline: none;
box-shadow: none;
border-radius: 0;
}
.adp-metabox-wrap .adp-metabox-tabs > .adp-metabox-tabs-navigation li a {
border: none;
border-bottom: 1px solid #eee;
position: relative;
display: block;
font-size: 0.8125rem;
line-height: 1.25rem;
padding: 0.625rem;
text-decoration: none;
outline: none;
box-shadow: none;
color: #0073aa;
float: none;
cursor: pointer;
}
.adp-metabox-wrap .adp-metabox-tabs > .adp-metabox-tabs-navigation li a:hover {
color: #00a0d2;
}
.adp-metabox-wrap .adp-metabox-tabs > .adp-metabox-tabs-navigation li.ui-tabs-active {
margin: 0;
padding: 0;
}
.adp-metabox-wrap .adp-metabox-tabs > .adp-metabox-tabs-navigation li.ui-tabs-active a {
background-color: #eee;
color: #555;
cursor: pointer;
}
.adp-metabox-wrap .adp-metabox-tabs > .adp-metabox-tabs-content {
flex-grow: 1;
}
.adp-metabox-wrap .adp-metabox-tabs > .adp-metabox-tabs-content .ui-tabs-panel {
padding: 0;
border-radius: 0;
}
@media screen and (max-width: 768px) {
.adp-metabox-wrap .adp-metabox-tabs {
flex-direction: column;
}
.adp-metabox-wrap .adp-metabox-tabs > .adp-metabox-tabs-navigation {
flex: 0 0 100%;
}
}
.adp-metabox-wrap .adp-metabox-field {
display: flex;
position: relative;
flex-direction: column;
}
.adp-metabox-wrap .adp-metabox-field:last-child {
border-bottom: none;
}
.adp-metabox-wrap .adp-metabox-field .adp-metabox-label {
position: relative;
flex: 0 0 100%;
float: none;
margin: 0;
padding: 1rem 1rem 0.5rem;
box-sizing: border-box;
}
.adp-metabox-wrap .adp-metabox-field .adp-metabox-label label {
display: block;
font-size: 14px;
line-height: 1.4em;
margin: 0 0 3px;
}
.adp-metabox-wrap .adp-metabox-field .adp-metabox-input {
position: relative;
flex: 0 0 100%;
margin: 0;
padding: 1rem 1rem 0.5rem;
box-sizing: border-box;
}
.adp-metabox-wrap .adp-metabox-field .adp-metabox-input input[type="number"],
.adp-metabox-wrap .adp-metabox-field .adp-metabox-input input[type="text"],
.adp-metabox-wrap .adp-metabox-field .adp-metabox-input select,
.adp-metabox-wrap .adp-metabox-field .adp-metabox-input textarea {
width: 100%;
}
.adp-metabox-wrap .adp-metabox-field .adp-metabox-input input[type="number"].short,
.adp-metabox-wrap .adp-metabox-field .adp-metabox-input input[type="text"].short,
.adp-metabox-wrap .adp-metabox-field .adp-metabox-input select.short,
.adp-metabox-wrap .adp-metabox-field .adp-metabox-input textarea.short {
max-width: 100px;
}
@media (min-width: 1200px) {
.adp-metabox-wrap .adp-metabox-field {
flex-direction: row;
}
.adp-metabox-wrap .adp-metabox-field .adp-metabox-label {
flex: 0 0 20%;
padding: 1rem 1.25rem;
}
.adp-metabox-wrap .adp-metabox-field .adp-metabox-input {
flex: 0 0 80%;
padding: 1rem 1.25rem;
}
}
.adp-metabox-wrap .adp-metabox-switcher {
display: flex;
position: absolute;
top: -2rem;
right: 1rem;
}
.adp-metabox-wrap .adp-metabox-switcher .adp-metabox-switch {
border: 2px solid #555d66;
box-sizing: border-box;
color: #fff;
cursor: pointer;
display: flex;
height: 1.75rem;
height: 18px;
padding: 0;
position: relative;
vertical-align: middle;
width: 36px;
margin-right: 0.5rem;
border-radius: 9px;
}
.adp-metabox-wrap .adp-metabox-switcher .adp-metabox-switch .adp-metabox-switch-on {
position: absolute;
top: 2px;
left: 2px;
width: 10px;
height: 10px;
z-index: 1;
background: #6C7781;
border-radius: 50%;
transition: all 0s ease 0.25s;
}
.adp-metabox-wrap .adp-metabox-switcher .adp-metabox-switch .adp-metabox-switch-off {
border: 2px solid #6c7781;
display: block;
position: absolute;
top: 3px;
right: 3px;
width: 7px;
height: 7px;
z-index: 1;
border-radius: 50%;
}
.adp-metabox-wrap .adp-metabox-switcher .adp-metabox-switch .adp-metabox-switch-slider {
position: absolute;
top: 2px;
left: 2px;
width: 10px;
height: 10px;
z-index: 1;
background: #6C7781;
border-radius: 50%;
transition: all 0.25s ease;
}
.adp-metabox-wrap .adp-metabox-switcher .adp-metabox-checkbox {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
opacity: 0;
z-index: 2;
}
.adp-metabox-wrap .adp-metabox-switcher .adp-metabox-checkbox:checked + .adp-metabox-switch {
border-color: #11A0D2;
background: #11A0D2;
}
.adp-metabox-wrap .adp-metabox-switcher .adp-metabox-checkbox:checked + .adp-metabox-switch .adp-metabox-switch-on {
top: 4px;
left: 6px;
width: 2px;
height: 6px;
background: #FFFFFF;
transition: none;
}
.adp-metabox-wrap .adp-metabox-switcher .adp-metabox-checkbox:checked + .adp-metabox-switch .adp-metabox-switch-slider {
background: #FFFFFF;
top: 2px;
left: calc(50% + 4px);
}
.adp-metabox-wrap .adp-metabox-repeater {
width: 100%;
}
.adp-metabox-wrap .adp-metabox-repeater > table {
width: 100%;
border: none;
border-collapse: collapse;
}
.adp-metabox-wrap .adp-metabox-repeater > table tr {
background: #FFFFFF;
width: 100%;
}
.adp-metabox-wrap .adp-metabox-repeater > table tr th {
text-align: left;
}
.adp-metabox-wrap .adp-metabox-repeater > table tr th,
.adp-metabox-wrap .adp-metabox-repeater > table tr td {
border: none;
vertical-align: top;
}
.adp-metabox-wrap .adp-metabox-repeater > table tr.ui-sortable-helper {
display: table;
}
.adp-metabox-wrap .adp-metabox-repeater > table tr.ui-sortable-placeholder {
background: #F9F9F9;
}
.adp-metabox-wrap .adp-metabox-repeater > table tr.ui-state-highlight td {
background: #F9F9F9;
border: 1px dashed #D8D8D8;
}
.adp-metabox-wrap .adp-metabox-repeater .btn-add-row {
margin: 1rem 1.25rem;
}
.adp-metabox-wrap .adp-metabox-repeater .row-content input, .adp-metabox-wrap .adp-metabox-repeater .row-content textarea {
width: 100%;
}
.adp-metabox-wrap .adp-metabox-repeater .row-content input[type="number"] {
max-width: 100px;
}
.adp-metabox-wrap .adp-metabox-repeater .row-content p {
width: 100%;
}
.adp-metabox-wrap .adp-metabox-repeater .row-topbar {
position: relative;
border-bottom: 1px solid #EFEFEF;
padding: 1rem 1.25rem;
zoom: 1;
cursor: move;
}
.adp-metabox-wrap .adp-metabox-repeater .row-topbar .handlediv {
display: block !important;
background-position: 6px 5px;
visibility: hidden;
width: 27px;
height: 26px;
}
.adp-metabox-wrap .adp-metabox-repeater .row-topbar .handlediv:before {
content: "\f142";
cursor: pointer;
display: inline-block;
font: 400 20px/1 Dashicons;
line-height: .5;
padding: 8px 10px;
position: relative;
right: 12px;
top: 0;
}
.adp-metabox-wrap .adp-metabox-repeater .row-topbar.closed .handlediv:before {
content: "\f140";
}
.adp-metabox-wrap .adp-metabox-repeater .row-topbar .delete {
color: red;
font-weight: 400;
line-height: 26px;
text-decoration: none;
position: relative;
visibility: hidden;
float: right;
}
.adp-metabox-wrap .adp-metabox-repeater .row-topbar .signature {
display: inline-block;
padding-right: 100px;
line-height: 26px;
font-weight: 700;
}
.adp-metabox-wrap .adp-metabox-repeater .row-topbar .signature span {
opacity: 0.5;
}
.adp-metabox-wrap .adp-metabox-repeater .row-topbar:hover .handlediv,
.adp-metabox-wrap .adp-metabox-repeater .row-topbar:hover .delete {
visibility: visible;
}
.adp-metabox-wrap .adp-metabox-repeater .row-fields {
border-bottom: 1px solid #EFEFEF;
background-color: #FDFDFD;
}
.adp-metabox-wrap .adp-metabox-repeater .row-body {
padding: 1rem 1.25rem;
}
/* Popup -------------------------------------------------------------- */
.adp-metabox-wrap .popup-field-info-text,
.adp-metabox-wrap .popup-field-info-buton-label,
.adp-metabox-wrap .popup-field-info-buton-action,
.adp-metabox-wrap .popup-field-info-buton-link {
display: none;
}
.adp-metabox-wrap .popup-field-rules {
flex-direction: column;
}
.adp-metabox-wrap .popup-field-rules input[type="text"],
.adp-metabox-wrap .popup-field-rules select {
width: 100%;
box-sizing: border-box;
}
.adp-metabox-wrap .popup-field-rules .delete {
display: inline-block;
color: red;
font-weight: 400;
line-height: 26px;
margin-left: 1rem;
}
.adp-metabox-wrap .popup-field-rules .add-new-rule {
margin-left: 1rem;
margin-bottom: 1rem;
margin-right: auto;
}
.adp-metabox-wrap .popup-field-rules-list:not(:empty) {
margin-bottom: 2rem;
}
.adp-metabox-wrap .popup-field-rules-list .row {
border-top: 1px dashed #EEEEEE;
margin-top: 1.5rem;
padding-left: 1.25rem;
padding-right: 1.25rem;
padding-top: 1.5rem;
}
.adp-metabox-wrap .popup-field-rules-list .row:first-child {
border-top: none;
margin-top: 0;
padding-top: 0;
}
.adp-metabox-wrap .popup-field-rules-list .tools {
position: relative;
border-left: 2px solid #555D66;
background: #FAFAFA;
margin-top: 1rem;
padding: 1rem;
padding-right: 3rem;
}
.adp-metabox-wrap .popup-field-rules-list .tools:first-child {
margin-top: 0;
}
.adp-metabox-wrap .popup-field-rules-list .tools-bar {
display: flex;
justify-content: flex-start;
align-items: center;
margin-top: 1rem;
}
.adp-metabox-wrap .popup-field-rules-list .remove-another-rule {
position: absolute;
justify-content: center;
align-items: center;
top: 1rem;
right: 1rem;
margin: 0;
font-size: 1rem;
color: #555d66;
text-decoration: none;
}
.adp-metabox-wrap .popup-field-rules-list .remove-another-rule:hover {
color: #000000;
}
.adp-metabox-wrap .popup-field-rules-list input[type="text"],
.adp-metabox-wrap .popup-field-rules-list .select2 {
width: 100%;
margin-top: 1rem;
}
.adp-metabox-wrap .popup-field-rules-list .select2-selection {
border: 1px solid #ddd;
box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.07);
border-radius: 0;
min-height: 30px;
height: 30px;
}
.adp-metabox-wrap .popup-field-rules-list .select2-selection__choice {
background: #FAFAFA;
border-color: #CDCDCD;
}
.adp-metabox-wrap .adp-popup-objects.hidden + .select2 {
display: none;
}
.popup-block-easy .editor-post-title {
margin-bottom: 2rem;
}
.popup-block-easy .edit-post-header-toolbar {
visibility: hidden;
}
.popup-block-easy .editor-post-text-editor,
.popup-block-easy .block-editor-block-list__layout {
display: none;
}
.popup-block-easy .adp-metabox-wrap .popup-field-info-text,
.popup-block-easy .adp-metabox-wrap .popup-field-info-buton-label,
.popup-block-easy .adp-metabox-wrap .popup-field-info-buton-action,
.popup-block-easy .adp-metabox-wrap .popup-field-info-buton-link {
display: flex;
}
File diff suppressed because one or more lines are too long
@@ -0,0 +1 @@
<?php // Silence is golden
@@ -0,0 +1,662 @@
"use strict";
/* Basic -------------------------------------------------------------- */
(function($) {
var adpMetabox = {};
( function() {
var $this;
adpMetabox = {
/*
* Initialize
*/
init: function( e ) {
$this = adpMetabox;
// Variables.
$this.wrap = $( '.adp-metabox-wrap' );
// Init.
$this.metaboxInit( e );
// Init events.
$this.events( e );
},
/*
* Events
*/
events: function( e ) {
// Custom Events
$this.wrap.on( 'click change keyup keydown', '.adp-metabox-repeater .attribute-name', $this.setSignature );
$this.wrap.on( 'click', '.adp-metabox-repeater .row-topbar', $this.toggleItems );
$this.wrap.on( 'click', '.adp-metabox-repeater .btn-remove-row', $this.removeRepeaterRow );
$this.wrap.on( 'click', '.adp-metabox-repeater .btn-add-row', $this.addRepeaterRow );
},
/*
* Init metabox elements
*/
metaboxInit: function( e ) {
// Add tabs for Meta Box (UI)
$this.wrap.find( '.adp-metabox-tabs' ).tabs();
// Repeater sortable
$this.wrap.find( '.adp-metabox-repeater tbody' ).sortable( {
items: 'tr',
placeholder: 'ui-state-highlight',
handle: '.row-topbar, .row-handle',
start: function( e, ui ) {
ui.placeholder.height( ui.item.height() );
},
} );
},
/*
* Toggle items
*/
toggleItems: function() {
if ( $( this ).hasClass( 'closed' ) ) {
$( this ).removeClass( 'closed' );
$( this ).siblings( '.row-fields' ).slideDown();
} else {
$( this ).addClass( 'closed' );
$( this ).siblings( '.row-fields' ).slideUp();
}
},
/*
* Set signature
*/
setSignature: function() {
var label = '<span>' + $( this ).data( 'label' ) + '</span>';
var value = $( this ).val() ? $( this ).val() : label;
$( this ).parents( '.row-content' ).find( '.signature' ).html( value );
},
/*
* Add repeater row
*/
addRepeaterRow: function() {
var repeater = $( this ).siblings( '.adp-metabox-repeater-table' )
// Get html row.
var html = repeater.find( 'tbody tr.hidden' ).html();
// Add new row.
repeater.find( 'tbody' ).append( '<tr class="row">' + html + '</tr>' );
// Visible all input and textarea.
repeater.find( 'tr' ).not( '.hidden' ).find( 'input, textarea' ).removeAttr( 'disabled' );
return false;
},
/*
* Remove repeater row
*/
removeRepeaterRow: function() {
$( this ).parents( '.row' ).remove();
return false;
}
};
} )();
// Initialize.
$( function() {
adpMetabox.init();
});
})(jQuery);
/* Popup -------------------------------------------------------------- */
(function($) {
var adpPopup = {};
( function() {
var $this;
adpPopup = {
/*
* Initialize
*/
init: function( e ) {
$this = adpPopup;
// Variables.
$this.wrap = $( '.popup-wrap' );
// Init.
$this.popupInit( e );
// Init events.
$this.events( e );
},
/*
* Events
*/
events: function( e ) {
// Custom Events
$this.wrap.on( 'change', 'select[name="adp_popup_type"]', $this.actionType );
$this.wrap.on( 'change', 'select[name="adp_popup_info_button_action"]', $this.actionInfoAct );
$this.wrap.on( 'change click', 'input[name="adp_popup_open_trigger"]', $this.actionOpenTrigger );
$this.wrap.on( 'change click', 'input[name="adp_popup_close_trigger"]', $this.actionCloseTrigger );
$this.wrap.on( 'change click', 'input[name="adp_popup_rules_mode"]', $this.actionRulesMode );
$this.wrap.on( 'click', '.add-new-rule', $this.addNewRule );
$this.wrap.on( 'click', '.add-another-rule', $this.addAnotherRule );
$this.wrap.on( 'click', '.remove-rule', $this.removeRule );
$this.wrap.on( 'click', '.remove-another-rule', $this.removeAnotherRule );
$this.wrap.on( 'change', '.adp-popup-rules', $this.actionPopupRules );
},
/*
* Init popup elements
*/
popupInit: function( e ) {
$this.actionType( 'select[name="adp_popup_type"]' );
$this.actionInfoAct( 'select[name="adp_popup_info_button_action"]' );
$this.actionOpenTrigger( 'input[name="adp_popup_open_trigger"]:checked' );
$this.actionCloseTrigger( 'input[name="adp_popup_close_trigger"]:checked' );
$this.actionRulesMode( 'input[name="adp_popup_rules_mode"]:checked' );
$this.actionPopupRules( '.adp-popup-rules' );
},
/*
* Action popup type
*/
actionType: function( e ) {
let val = $( typeof e === 'string' ? e : this ).val();
// Set editor easy and hide overlay close.
if ( 'content' !== val ) {
$( '.popup-field-overlay-close' ).addClass( 'hidden' );
$( '.block-editor' ).addClass( 'popup-block-easy' );
$( '.editor-post-featured-image' ).parents( '.components-panel__body' ).hide();
} else {
$( '.popup-field-overlay-close' ).removeClass( 'hidden' );
$( '.block-editor' ).removeClass( 'popup-block-easy' );
$( '.editor-post-featured-image' ).parents( '.components-panel__body' ).show();
}
// Hide preview image and content width.
if ( 'content' !== val ) {
$( '.popup-field-preview-image' ).addClass( 'hidden' );
$( '.popup-field-content-box-width' ).addClass( 'hidden' );
} else {
$( '.popup-field-preview-image' ).removeClass( 'hidden' );
$( '.popup-field-content-box-width' ).removeClass( 'hidden' );
}
// Hide notification box width.
if ( 'notification-box' !== val ) {
$( '.popup-field-notification-box-width' ).addClass( 'hidden' );
} else {
$( '.popup-field-notification-box-width' ).removeClass( 'hidden' );
}
// Hide notification bar width.
if ( 'notification-bar' !== val ) {
$( '.popup-field-notification-bar-width' ).addClass( 'hidden' );
} else {
$( '.popup-field-notification-bar-width' ).removeClass( 'hidden' );
}
// Hide location.
if ( 'content' !== val && 'notification-box' !== val ) {
$( 'select[name="adp_popup_location"] option[value="top-left"]' ).addClass( 'hidden' );
$( 'select[name="adp_popup_location"] option[value="top-right"]' ).addClass( 'hidden' );
$( 'select[name="adp_popup_location"] option[value="bottom-left"]' ).addClass( 'hidden' );
$( 'select[name="adp_popup_location"] option[value="bottom-right"]' ).addClass( 'hidden' );
$( 'select[name="adp_popup_location"] option[value="left"]' ).addClass( 'hidden' );
$( 'select[name="adp_popup_location"] option[value="right"]' ).addClass( 'hidden' );
$( 'select[name="adp_popup_location"] option[value="center"]' ).addClass( 'hidden' );
let location = $( 'select[name="adp_popup_location"]' ).val();
if ( 'top' !== location && 'bottom' !== location ) {
$( 'select[name="adp_popup_location"] option[value="bottom"]' ).prop( 'selected', true );
}
} else {
$( 'select[name="adp_popup_location"] option[value="top-left"]' ).removeClass( 'hidden' );
$( 'select[name="adp_popup_location"] option[value="top-right"]' ).removeClass( 'hidden' );
$( 'select[name="adp_popup_location"] option[value="bottom-left"]' ).removeClass( 'hidden' );
$( 'select[name="adp_popup_location"] option[value="bottom-right"]' ).removeClass( 'hidden' );
$( 'select[name="adp_popup_location"] option[value="left"]' ).removeClass( 'hidden' );
$( 'select[name="adp_popup_location"] option[value="right"]' ).removeClass( 'hidden' );
$( 'select[name="adp_popup_location"] option[value="center"]' ).removeClass( 'hidden' );
}
},
/*
* Action info button act.
*/
actionInfoAct: function( e ) {
let val = $( typeof e === 'string' ? e : this ).val();
if ( 'link' !== val ) {
$( '.popup-field-info-buton-link' ).addClass( 'hidden' );
} else {
$( '.popup-field-info-buton-link' ).removeClass( 'hidden' );
}
},
/*
* Action open trigger.
*/
actionOpenTrigger: function( e ) {
let val = $( typeof e === 'string' ? e : this ).val();
if ( 'delay' !== val ) {
$( '.popup-field-open-delay-number' ).addClass( 'hidden' );
} else {
$( '.popup-field-open-delay-number' ).removeClass( 'hidden' );
}
if ( 'scroll' !== val ) {
$( '.popup-field-open-scroll-position' ).addClass( 'hidden' );
} else {
$( '.popup-field-open-scroll-position' ).removeClass( 'hidden' );
}
if ( 'accept' !== val ) {
$( '.popup-field-open-accept-desc' ).addClass( 'hidden' );
} else {
$( '.popup-field-open-accept-desc' ).removeClass( 'hidden' );
}
if ( 'manual' !== val ) {
$( '.popup-field-open-manual-selector' ).addClass( 'hidden' );
$( '.popup-field-limit-display' ).removeClass( 'hidden' );
$( '.popup-field-limit-lifetime' ).removeClass( 'hidden' );
} else {
$( '.popup-field-limit-display' ).addClass( 'hidden' );
$( '.popup-field-limit-lifetime' ).addClass( 'hidden' );
$( '.popup-field-open-manual-selector' ).removeClass( 'hidden' );
}
},
/*
* Action close trigger.
*/
actionCloseTrigger: function( e ) {
let val = $( typeof e === 'string' ? e : this ).val();
if ( 'delay' !== val ) {
$( '.popup-field-close-delay-number' ).addClass( 'hidden' );
} else {
$( '.popup-field-close-delay-number' ).removeClass( 'hidden' );
}
if ( 'scroll' !== val ) {
$( '.popup-field-close-scroll-position' ).addClass( 'hidden' );
} else {
$( '.popup-field-close-scroll-position' ).removeClass( 'hidden' );
}
},
/*
* Action rules mode.
*/
actionRulesMode: function( e ) {
let val = $( typeof e === 'string' ? e : this ).val();
if ( 'specific' !== val ) {
$( '.popup-field-rules' ).addClass( 'hidden' );
} else {
$( '.popup-field-rules' ).removeClass( 'hidden' );
}
},
/*
* Build select rules.
*/
buildSelectRules: function() {
var list = JSON.parse( adp_popup_data.rules_list );
var output = '<select class="adp-popup-rules">';
for ( var optgroup in list ) {
let label = optgroup;
label = label.replace( 'general', adp_popup_data.label_general );
label = label.replace( 'post_types', adp_popup_data.label_post_types );
label = label.replace( 'taxonomies', adp_popup_data.label_taxonomies );
output += '<optgroup data-group="' + optgroup + '" label="' + label + '">';
for ( var event in list[ optgroup ] ) {
output += '<option value="' + event + '">';
// Name of option.
output += list[ optgroup ][ event ];
output += '</option>';
}
output += '</optgroup>';
}
output += '</select>';
return output;
},
/*
* Build input url.
*/
buildInputUrl: function() {
var output = '<input type="text" class="adp-popup-url">';
return output;
},
/*
* Build select objects.
*/
buildSelectObjects: function() {
var output = '<select multiple class="adp-popup-objects"></select>';
return output;
},
/*
* Build row rules.
*/
buildRowRules: function() {
var output = '<div class="row">';
// Add new tools.
output += $this.buildToolsRules();
output += '<div class="tools-bar">';
// Add button another OR rule.
output += '<div class="button add-another-rule">';
output += adp_popup_data.btn_label_another;
output += '</div>';
output += '<a href="#" class="delete remove-rule">';
output += adp_popup_data.btn_delete;
output += '</a>';
output += '</div>';
// Close.
output += '</div>';
return output;
},
/*
* Build tools rules.
*/
buildToolsRules: function() {
var output = '<div class="tools">';
output += $this.buildSelectRules();
output += $this.buildInputUrl();
output += $this.buildSelectObjects();
output += '<a href="#" class="delete remove-another-rule">';
output += '<span class="dashicons dashicons-no-alt"></span>'
output += '</a>';
output += '</div>';
return output;
},
/*
* Add new rule.
*/
addNewRule: function() {
var row = $this.buildRowRules();
$( row ).appendTo( '.popup-field-rules-list' );
$this.setIndexRules();
$this.popupInit();
},
/*
* Add anothe rule.
*/
addAnotherRule: function() {
var tools = $this.buildToolsRules();
$( this ).parents( '.tools-bar' ).before( tools );
$this.setIndexRules();
$this.popupInit();
},
/*
* Remove new rule.
*/
removeRule: function() {
let list = $( this ).parents( '.popup-field-rules-list' );
$( this ).parents( '.row' ).remove();
if ( ! $( list ).find( '.row' ).length ) {
$( list ).html('');
}
$this.setIndexRules();
},
/*
* Remove anothe rule.
*/
removeAnotherRule: function() {
let list = $( this ).parents( '.popup-field-rules-list' );
let row = $( this ).parents( '.row' );
if ( $( row ).find('.tools').length <= 1 ) {
$( this ).parents( '.row' ).remove();
if ( ! $( list ).find( '.row' ).length ) {
$( list ).html('');
}
} else {
$( this ).parents( '.tools' ).remove();
}
$this.setIndexRules();
},
/*
* Set index rules.
*/
setIndexRules: function() {
$( '.popup-field-rules-list .row' ).each(function(i, row) {
$( row ).find( '.tools' ).each(function(t, tools) {
// Select rules.
$( tools ).find( '.adp-popup-rules' ).each(function(j, select) {
$( select ).attr( 'name', 'adp_popup_rules[' + i + '][' + t + '][rule]' );
});
// Input url.
$( tools ).find( '.adp-popup-url' ).each(function(j, input) {
$( input ).attr( 'name', 'adp_popup_rules[' + i + '][' + t + '][url]' );
});
// Input objects.
$( tools ).find( '.adp-popup-objects' ).each(function(j, select) {
$( select ).attr( 'name', 'adp_popup_rules[' + i + '][' + t + '][object][]'.replace( 'index', i ) );
});
});
});
},
/*
* Action poopup rules.
*/
actionPopupRules: function( e ) {
let el = $( typeof e === 'string' ? e : this );
// Action.
if ( typeof e !== 'string' ) {
let select = $( el ).siblings( '.adp-popup-objects' );
let group = $( el ).find('option:selected').parents('optgroup').data( 'group' );
if ( 'general' === group ) {
$( el ).siblings( '.adp-popup-objects' ).addClass( 'hidden' );
} else {
$( el ).siblings( '.adp-popup-objects' ).removeClass( 'hidden' );
}
if ( 'url' !== $( el ).val() ) {
$( el ).siblings( '.adp-popup-url' ).addClass( 'hidden' );
} else {
$( el ).siblings( '.adp-popup-url' ).removeClass( 'hidden' );
}
// Reset options.
$( select ).html( '' );
// Init Select2.
$this.setObjectsSelect2( select );
// Init.
} else {
$( el ).each(function(i, rule) {
let select = $( rule ).siblings( '.adp-popup-objects' );
let group = $( rule ).find('option:selected').parents('optgroup').data( 'group' );
if ( 'general' === group ) {
$( rule ).siblings( '.adp-popup-objects' ).addClass( 'hidden' );
} else {
$( rule ).siblings( '.adp-popup-objects' ).removeClass( 'hidden' );
}
if ( 'url' !== $( rule ).val() ) {
$( rule ).siblings( '.adp-popup-url' ).addClass( 'hidden' );
} else {
$( rule ).siblings( '.adp-popup-url' ).removeClass( 'hidden' );
}
// Init Select2.
$this.setObjectsSelect2( select );
});
}
},
/*
* Set objects Select2.
*/
setObjectsSelect2: function( el ) {
var rules = $( el ).siblings('.adp-popup-rules');
var group = $( rules ).find('option:selected').parents('optgroup').data( 'group' );
var rule = $( rules ).find('option:selected').val();
$( el ).select2( {
placeholder: adp_popup_data.select2_placeholder,
minimumInputLength: 0,
language: {
errorLoading: function() {
return adp_popup_data.select2_errorLoading;
},
loadingMore: function() {
return adp_popup_data.select2_loadingMore;
},
noResults: function() {
return adp_popup_data.select2_noResults;
},
searching: function() {
return adp_popup_data.select2_searching;
},
removeAllItems: function() {
return adp_popup_data.select2_removeAllItems;
}
},
delay: 250,
multiple: true,
width: '100%',
ajax: {
url: adp_popup_data.ajaxurl,
dataType: 'json',
quietMillis: 100,
data: function (params) {
var query = {
group: group,
rule: rule,
search: params.term,
page: params.page || 1,
_wpnonce: adp_popup_data.nonce,
action: 'adp_popup_rules_objects',
}
return query;
},
processResults: function( data, params, params2 ) {
var options = [];
if ( data && typeof data.items !== 'undefined' ) {
$.each( data.items, function( index, text ) {
options.push( { id: index, text: text } );
});
}
return {
results: options,
pagination: {
more: data.pagination,
}
};
},
cache: true
},
} );
}
};
} )();
// Initialize.
$( function() {
adpPopup.init();
});
})(jQuery);
File diff suppressed because one or more lines are too long
@@ -0,0 +1,65 @@
<?php
/**
* Plugin Name: Advanced Popups
* Description: Display high-converting newsletter popups, a cookie notice, or a notification with the light-weight yet feature-rich plugin.
* Version: 1.1.3
* Author: Code Supply Co.
* Author URI: https://codesupply.co
* License: GPL-2.0+
* License URI: http://www.gnu.org/licenses/gpl-2.0.txt
* Text Domain: advanced-popups
* Domain Path: /languages
*
* @link https://codesupply.co
* @package ADP
*/
// If this file is called directly, abort.
if ( ! defined( 'WPINC' ) ) {
die;
}
/**
* Variables
*/
define( 'ADP_URL', plugin_dir_url( __FILE__ ) );
define( 'ADP_PATH', plugin_dir_path( __FILE__ ) );
/**
* Plugin Activation.
*/
function adp_activation() {
do_action( 'adp_activation' );
}
register_activation_hook( __FILE__, 'adp_activation' );
/**
* Plugin Deactivation.
*/
function adp_deactivation() {
do_action( 'adp_deactivation' );
}
register_deactivation_hook( __FILE__, 'adp_deactivation' );
/**
* The core plugin class that is used to define internationalization,
* admin-specific hooks, and public-facing site hooks.
*/
require plugin_dir_path( __FILE__ ) . 'includes/class-advanced-popups.php';
/**
* Begins execution of the plugin.
*
* Since everything within the plugin is registered via hooks,
* then kicking off the plugin from this point in the file does
* not affect the page life cycle.
*
* @since 1.0.0
*/
function adp_init() {
$plugin = new ADP();
$plugin->run();
}
adp_init();
@@ -0,0 +1,11 @@
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
<svg xmlns="http://www.w3.org/2000/svg">
<metadata>Generated by IcoMoon</metadata>
<defs>
<font id="advanced-popups-icons" horiz-adv-x="1024">
<font-face units-per-em="1024" ascent="960" descent="-64" />
<missing-glyph horiz-adv-x="1024" />
<glyph unicode="&#x20;" horiz-adv-x="512" d="" />
<glyph unicode="&#xe913;" glyph-name="x" d="M571.733 426.667l226.133 226.133c17.067 17.067 17.067 42.667 0 59.733s-42.667 17.067-59.733 0l-226.133-226.133-226.133 226.133c-17.067 17.067-42.667 17.067-59.733 0s-17.067-42.667 0-59.733l226.133-226.133-226.133-226.133c-17.067-17.067-17.067-42.667 0-59.733 8.533-8.533 17.067-12.8 29.867-12.8s21.333 4.267 29.867 12.8l226.133 226.133 226.133-226.133c8.533-8.533 21.333-12.8 29.867-12.8s21.333 4.267 29.867 12.8c17.067 17.067 17.067 42.667 0 59.733l-226.133 226.133z" />
</font></defs></svg>

After

Width:  |  Height:  |  Size: 965 B

@@ -0,0 +1 @@
{"IcoMoonType":"selection","icons":[{"icon":{"paths":["M571.733 512l226.133-226.133c17.067-17.067 17.067-42.667 0-59.733s-42.667-17.067-59.733 0l-226.133 226.133-226.133-226.133c-17.067-17.067-42.667-17.067-59.733 0s-17.067 42.667 0 59.733l226.133 226.133-226.133 226.133c-17.067 17.067-17.067 42.667 0 59.733 8.533 8.533 17.067 12.8 29.867 12.8s21.333-4.267 29.867-12.8l226.133-226.133 226.133 226.133c8.533 8.533 21.333 12.8 29.867 12.8s21.333-4.267 29.867-12.8c17.067-17.067 17.067-42.667 0-59.733l-226.133-226.133z"],"attrs":[{}],"isMulticolor":false,"isMulticolor2":false,"tags":["x"],"grid":24},"attrs":[{}],"properties":{"order":1,"id":4,"prevSize":24,"code":59667,"name":"x"},"setIdx":0,"setId":1,"iconIdx":0}],"height":1024,"metadata":{"name":"advanced-popups-icons"},"preferences":{"showGlyphs":true,"showQuickUse":true,"showQuickUse2":true,"showSVGs":true,"fontPref":{"prefix":"adp-icon-","metadata":{"fontFamily":"advanced-popups-icons","majorVersion":1,"minorVersion":0},"metrics":{"emSize":1024,"baseline":6.25,"whitespace":50},"embed":false,"ie7":false,"noie8":true,"showSelector":false,"autoHost":true,"showVersion":false,"showMetadata":false,"showMetrics":false,"cssVars":true,"cssVarsFormat":"scss"},"imagePref":{"prefix":"adp-icon-","png":true,"useClassSelector":true,"color":0,"bgColor":16777215,"classSelector":".advanced-popups-icon","name":"icomoon"},"historySize":100,"showCodes":true,"gridSize":16,"quickUsageToken":{"UntitledProject":"Y2UyMTZhNmEzZGVlN2Q0M2QxNTk5MmQxMTJhZmI4YzgjMSMxNTI5NDk5NDEyIyMj"}}}
@@ -0,0 +1,35 @@
<?php
/**
* Define the internationalization functionality
*
* Loads and defines the internationalization files for this plugin
* so that it is ready for translation.
*
* @link https://codesupply.co
* @since 1.0.0
*
* @package ADP
* @subpackage ADP/includes
*/
/**
* Define the internationalization functionality.
*
* Loads and defines the internationalization files for this plugin
* so that it is ready for translation.
*
* @package ADP
* @subpackage ADP/includes
*/
class ADP_i18n {
/**
* Load the plugin text domain for translation.
*/
public function load_plugin_textdomain() {
load_plugin_textdomain( 'advanced-popups', false, dirname( dirname( plugin_basename( __FILE__ ) ) ) . '/languages/' );
}
}
@@ -0,0 +1,115 @@
<?php
/**
* Register all actions and filters for the plugin
*
* @link https://codesupply.co
* @since 1.0.0
*
* @package ADP
* @subpackage ADP/includes
*/
/**
* Register all actions and filters for the plugin.
*
* Maintain a list of all hooks that are registered throughout
* the plugin, and register them with the WordPress API. Call the
* run function to execute the list of actions and filters.
*
* @package ADP
* @subpackage ADP/includes
*/
class ADP_Loader {
/**
* The array of actions registered with WordPress.
*
* @access protected
* @var array $actions The actions registered with WordPress to fire when the plugin loads.
*/
protected $actions;
/**
* The array of filters registered with WordPress.
*
* @access protected
* @var array $filters The filters registered with WordPress to fire when the plugin loads.
*/
protected $filters;
/**
* Initialize the collections used to maintain the actions and filters.
*/
public function __construct() {
$this->actions = array();
$this->filters = array();
}
/**
* Add a new action to the collection to be registered with WordPress.
* @param string $hook The name of the WordPress action that is being registered.
* @param object $component A reference to the instance of the object on which the action is defined.
* @param string $callback The name of the function definition on the $component.
* @param int $priority Optional. The priority at which the function should be fired. Default is 10.
* @param int $accepted_args Optional. The number of arguments that should be passed to the $callback. Default is 1.
*/
public function add_action( $hook, $component, $callback, $priority = 10, $accepted_args = 1 ) {
$this->actions = $this->add( $this->actions, $hook, $component, $callback, $priority, $accepted_args );
}
/**
* Add a new filter to the collection to be registered with WordPress.
*
* @param string $hook The name of the WordPress filter that is being registered.
* @param object $component A reference to the instance of the object on which the filter is defined.
* @param string $callback The name of the function definition on the $component.
* @param int $priority Optional. The priority at which the function should be fired. Default is 10.
* @param int $accepted_args Optional. The number of arguments that should be passed to the $callback. Default is 1.
*/
public function add_filter( $hook, $component, $callback, $priority = 10, $accepted_args = 1 ) {
$this->filters = $this->add( $this->filters, $hook, $component, $callback, $priority, $accepted_args );
}
/**
* A utility function that is used to register the actions and hooks into a single
* collection.
* @access private
* @param array $hooks The collection of hooks that is being registered (that is, actions or filters).
* @param string $hook The name of the WordPress filter that is being registered.
* @param object $component A reference to the instance of the object on which the filter is defined.
* @param string $callback The name of the function definition on the $component.
* @param int $priority The priority at which the function should be fired.
* @param int $accepted_args The number of arguments that should be passed to the $callback.
* @return array The collection of actions and filters registered with WordPress.
*/
private function add( $hooks, $hook, $component, $callback, $priority, $accepted_args ) {
$hooks[] = array(
'hook' => $hook,
'component' => $component,
'callback' => $callback,
'priority' => $priority,
'accepted_args' => $accepted_args,
);
return $hooks;
}
/**
* Register the filters and actions with WordPress.
*/
public function run() {
foreach ( $this->filters as $hook ) {
add_filter( $hook['hook'], array( $hook['component'], $hook['callback'] ), $hook['priority'], $hook['accepted_args'] );
}
foreach ( $this->actions as $hook ) {
add_action( $hook['hook'], array( $hook['component'], $hook['callback'] ), $hook['priority'], $hook['accepted_args'] );
}
}
}
@@ -0,0 +1,251 @@
<?php
/**
* Class Advanced Popups Rules.
*
* @link https://codesupply.co
* @since 1.0.0
*
* @package ADP
* @subpackage ADP/includes
*/
/**
* Class Rules
*/
class ADP_Popup_Rules {
/**
* The instance.
*
* @var mixed $instance The instance.
*/
public static $instance;
/**
* The rules.
*
* @var array $instance The rules.
*/
public $rules;
/**
* The rule sort order.
*
* @var array $rule_sort_order The rule sort order.
*/
public $rule_sort_order = array();
/**
* Init.
*/
public static function init() {
self::instance();
}
/**
* Return instance.
*/
public static function instance() {
if ( ! isset( self::$instance ) ) {
self::$instance = new self();
}
return self::$instance;
}
/**
* Get List rules
*/
public function get_list() {
$list = array(
'general' => array(),
'post_types' => array(),
'taxonomies' => array(),
);
$types = array();
// General.
$list['general'] = array(
'none' => esc_html__( 'None', 'advanced-popups' ),
'is_front_page' => esc_html__( 'Front Page', 'advanced-popups' ),
'is_home' => esc_html__( 'Home Page', 'advanced-popups' ),
'is_archive' => esc_html__( 'Archive Page', 'advanced-popups' ),
'is_author' => esc_html__( 'Author Page', 'advanced-popups' ),
'is_search' => esc_html__( 'Search Result Page', 'advanced-popups' ),
'is_404' => esc_html__( '404 Error Page', 'advanced-popups' ),
'url' => esc_html__( 'URL (slug)', 'advanced-popups' ),
);
// Post types.
$post_types = get_post_types( array(
'public' => true,
), 'objects' );
foreach ( $post_types as $name => $post_type ) {
if ( 'adp-popup' === $name ) {
continue;
}
if ( 'attachment' === $name ) {
continue;
}
$types[] = $name;
$list['post_types'][ 'post_type_' . $name ] = $post_type->labels->name;
}
// Taxonomies.
foreach ( $types as $name ) {
$post_type = get_post_type_object( $name );
$taxonomies = get_object_taxonomies( $name, 'object' );
foreach ( $taxonomies as $tax_name => $taxonomy ) {
$list['taxonomies'][ 'taxonomy_' . $tax_name ] = esc_html__( 'Taxonomy of ', 'advanced-popups' ) . $post_type->labels->name . ': ' . $taxonomy->labels->name;
}
}
return $list;
}
/**
* Get type from rule value
*
* @param string $val The value.
*/
public function get_type( $val ) {
if ( 'url' === $val ) {
return 'url';
}
if ( 0 === strpos( $val, 'is_' ) ) {
return 'is';
}
if ( 0 === strpos( $val, 'post_type' ) ) {
return 'post';
}
if ( 0 === strpos( $val, 'taxonomy' ) ) {
return 'taxonomy';
}
}
/**
* Get object from rule value
*
* @param string $val The value.
*/
public function get_object( $val ) {
$val = str_replace( array( 'post_type', 'taxonomy' ), '', $val );
return ltrim( $val, '_' );
}
/**
* Checking all the rules on the front end
*
* @param string $rules The rules.
*/
public function is_check( $rules ) {
if ( ! $rules ) {
return true;
}
$check = array();
foreach ( $rules as $i => $row ) {
$check[ $i ] = true;
foreach ( $row as $t => $tools ) {
if ( ! isset( $tools['rule'] ) ) {
continue;
}
if ( 'none' === $tools['rule'] ) {
continue;
}
$rule = $tools['rule'];
// Get type from rule value.
$type_rule = self::instance()->get_type( $rule );
// Get type object from rule value.
$type_object = self::instance()->get_object( $rule );
$check_or = true;
// Check rules.
switch ( $type_rule ) {
case 'url':
if ( isset( $tools['url'] ) && $tools['url'] ) {
$object_uri = ltrim( rtrim( $tools['url'], '/' ), '/' );
$current_uri = ltrim( rtrim( $_SERVER['REQUEST_URI'], '/' ), '/' );
if ( $object_uri !== $current_uri ) {
$check_or = false;
}
}
break;
case 'is':
if ( ! function_exists( $rule ) || ! call_user_func( $rule ) ) {
$check_or = false;
}
break;
case 'post':
if ( ! is_singular( $type_object ) ) {
$check_or = false;
}
$post_id = get_the_ID();
if ( isset( $tools['object'] ) && is_array( $tools['object'] ) ) {
foreach ( $tools['object'] as $object ) {
$check_or = (int) $post_id === (int) $object ? true : false;
}
}
break;
case 'taxonomy':
if ( ! is_tax( $type_object ) ) {
$check_or = false;
}
$term_id = get_queried_object_id();
if ( isset( $tools['object'] ) && is_array( $tools['object'] ) ) {
foreach ( $tools['object'] as $object ) {
$check_or = (int) $term_id === (int) $object ? true : false;
}
}
break;
}
$check[ $i ] = $check_or;
if ( $check_or ) {
break;
}
}
}
$is_check = true;
foreach ( $check as $item ) {
if ( ! $item ) {
$is_check = false;
break;
}
}
return $is_check;
}
}
@@ -0,0 +1,210 @@
<?php
/**
* The file that defines the core plugin class
*
* A class definition that includes attributes and functions used across both the
* public-facing side of the site and the admin area.
*
* @link https://codesupply.co
* @since 1.0.0
*
* @package ADP
* @subpackage ADP/includes
*/
/**
* The core plugin class.
*
* This is used to define internationalization, admin-specific hooks, and
* public-facing site hooks.
*
* Also maintains the unique identifier of this plugin as well as the current
* version of the plugin.
*
* @since 1.0.0
* @package ADP
* @subpackage ADP/includes
*/
class ADP {
/**
* The loader that's responsible for maintaining and registering all hooks that power
* the plugin.
*
* @access protected
* @var ADP_Loader $loader Maintains and registers all hooks for the plugin.
*/
protected $loader;
/**
* The unique identifier of this plugin.
*
* @access protected
* @var string $adp The string used to uniquely identify this plugin.
*/
protected $adp;
/**
* The current version of the plugin.
*
* @access protected
* @var string $version The current version of the plugin.
*/
protected $version;
/**
* Define the core functionality of the plugin.
*
* Set the plugin name and the plugin version that can be used throughout the plugin.
* Load the dependencies, define the locale, and set the hooks for the admin area and
* the public-facing side of the site.
*/
public function __construct() {
if ( ! function_exists( 'get_plugin_data' ) ) {
require_once ABSPATH . 'wp-admin/includes/plugin.php';
}
// Get plugin data.
$plugin_data = get_plugin_data( ADP_PATH . '/advanced-popups.php' );
$this->version = $plugin_data['Version'];
$this->adp = 'advanced-popups';
$this->load_dependencies();
$this->set_locale();
$this->define_admin_hooks();
$this->define_public_hooks();
}
/**
* Load the required dependencies for this plugin.
*
* Include the following files that make up the plugin:
*
* - ADP_Loader. Orchestrates the hooks of the plugin.
* - ADP_i18n. Defines internationalization functionality.
* - ADP_Admin. Defines all hooks for the admin area.
* - ADP_Public. Defines all hooks for the public side of the site.
*
* Create an instance of the loader which will be used to register the hooks
* with WordPress.
*
* @access private
*/
private function load_dependencies() {
require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/helpers-advanced-popups.php';
require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-advanced-popups-rules.php';
/**
* The class responsible for orchestrating the actions and filters of the
* core plugin.
*/
require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-advanced-popups-loader.php';
/**
* The class responsible for defining internationalization functionality
* of the plugin.
*/
require_once plugin_dir_path( dirname( __FILE__ ) ) . 'includes/class-advanced-popups-i18n.php';
/**
* The class responsible for defining all actions that occur in the admin area.
*/
require_once plugin_dir_path( dirname( __FILE__ ) ) . 'admin/class-advanced-popups-admin.php';
/**
* The class responsible for defining all actions that occur in the public-facing
* side of the site.
*/
require_once plugin_dir_path( dirname( __FILE__ ) ) . 'public/class-advanced-popups-public.php';
$this->loader = new ADP_Loader();
}
/**
* Define the locale for this plugin for internationalization.
*
* Uses the ADP_i18n class in order to set the domain and to register the hook
* with WordPress.
*
* @access private
*/
private function set_locale() {
$plugin_i18n = new ADP_i18n();
$this->loader->add_action( 'plugins_loaded', $plugin_i18n, 'load_plugin_textdomain' );
}
/**
* Register all of the hooks related to the admin area functionality
* of the plugin.
*
* @access private
*/
private function define_admin_hooks() {
$plugin_admin = new ADP_Admin( $this->get_adp(), $this->get_version() );
$this->loader->add_action( 'init', $plugin_admin, 'register_post_type' );
$this->loader->add_action( 'add_meta_boxes', $plugin_admin, 'metabox_popup_register' );
$this->loader->add_action( 'save_post', $plugin_admin, 'metabox_popup_save', 10, 2 );
$this->loader->add_action( 'wp_ajax_nopriv_adp_popup_rules_objects', $plugin_admin, 'ajax_rules_objects' );
$this->loader->add_action( 'wp_ajax_adp_popup_rules_objects', $plugin_admin, 'ajax_rules_objects' );
$this->loader->add_action( 'admin_enqueue_scripts', $plugin_admin, 'admin_enqueue_scripts' );
}
/**
* Register all of the hooks related to the public-facing functionality
* of the plugin.
*
* @access private
*/
private function define_public_hooks() {
$plugin_public = new ADP_Public( $this->get_adp(), $this->get_version() );
$this->loader->add_action( 'wp_head', $plugin_public, 'wp_head' );
$this->loader->add_action( 'wp_footer', $plugin_public, 'wp_footer' );
$this->loader->add_action( 'wp_enqueue_scripts', $plugin_public, 'wp_enqueue_scripts' );
}
/**
* Run the loader to execute all of the hooks with WordPress.
*/
public function run() {
$this->loader->run();
}
/**
* The name of the plugin used to uniquely identify it within the context of
* WordPress and to define internationalization functionality.
*
* @return string The name of the plugin.
*/
public function get_adp() {
return $this->adp;
}
/**
* The reference to the class that orchestrates the hooks with the plugin.
*
* @return ADP_Loader Orchestrates the hooks of the plugin.
*/
public function get_loader() {
return $this->loader;
}
/**
* Retrieve the version number of the plugin.
*
* @return string The version number of the plugin.
*/
public function get_version() {
return $this->version;
}
}
@@ -0,0 +1,87 @@
<?php
/**
* Helpers Advanced Popups
*
* @package ADP
* @subpackage ADP/includes
*/
/**
* Processing path of style.
*
* @param string $path URL to the stylesheet.
*/
function adp_style( $path ) {
// Check RTL.
if ( is_rtl() ) {
return $path;
}
// Check Dev.
$dev = ADP_PATH . 'public/css/advanced-popups-public-dev.css';
if ( file_exists( $dev ) ) {
return str_replace( '.css', '-dev.css', $path );
}
return $path;
}
/**
* Retrieves a post meta field for the given post ID.
*
* @param int $post_id Post ID.
* @param string $key Optional. The meta key to retrieve. By default, returns
* data for all keys. Default empty.
* @param bool $single Optional. If true, returns only the first value for the specified meta key.
* This parameter has no effect if $key is not specified. Default false.
* @param mixed $default Default value.
* @return mixed Will be an array if $single is false. Will be value of the meta
* field if $single is true.
*/
function adp_get_post_meta( $post_id, $key = '', $single = false, $default = null ) {
if ( ! metadata_exists( 'post', $post_id, $key ) && $default ) {
return $default;
}
return get_metadata( 'post', $post_id, $key, $single );
}
/**
* Checks whether a popup should be displayed or not
*
* @param int $popup_id The popup Id.
*/
function adp_is_popup_visible( $popup_id ) {
$visible = true;
// Verify rules.
$popup_rules_mode = adp_get_post_meta( $popup_id, '_adp_popup_rules_mode', true, 'all' );
if ( true === $visible && 'specific' === $popup_rules_mode ) {
$popup_rules = adp_get_post_meta( $popup_id, '_adp_popup_rules', true, array() );
$visible = ADP_Popup_Rules::instance()->is_check( $popup_rules );
}
// Has user seen this popup before?
$popup_limit_display = adp_get_post_meta( $popup_id, '_adp_popup_limit_display', true, 1 );
if ( true === $visible && $popup_limit_display && isset( $_COOKIE[ "adp-popup-{$popup_id}" ] ) && $_COOKIE[ "adp-popup-{$popup_id}" ] >= $popup_limit_display ) {
$visible = false;
}
// Guests or Logged-in.
if ( true === $visible ) {
$popup_show_to = adp_get_post_meta( $popup_id, '_adp_popup_show_to', true, 'both' );
$visible = ! ( ( 'guest' === $popup_show_to && is_user_logged_in() ) || ( 'user' === $popup_show_to && ! is_user_logged_in() ) );
}
// Apply a final filter to determine visibility.
$visible = apply_filters( 'advanced_popups_is_popup_visible', $visible, $popup_id );
return $visible;
}
@@ -0,0 +1 @@
<?php // Silence is golden
@@ -0,0 +1 @@
<?php // Silence is golden
@@ -0,0 +1,389 @@
# Copyright (C) 2021 advanced-popups
# This file is distributed under the same license as the advanced-popups package.
msgid ""
msgstr ""
"Project-Id-Version: advanced-popups\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language-Team: Code Supply Co. <hello@codesupply.co>\n"
"Last-Translator: Code Supply Co. <hello@codesupply.co>\n"
"Report-Msgid-Bugs-To: https://codesupply.co/contact/\n"
"X-Poedit-Basepath: ..\n"
"X-Poedit-KeywordsList: __;_e;_ex:1,2c;_n:1,2;_n_noop:1,2;_nx:1,2,4c;_nx_noop:1,2,3c;_x:1,2c;esc_attr__;esc_attr_e;esc_attr_x:1,2c;esc_html__;esc_html_e;esc_html_x:1,2c\n"
"X-Poedit-SearchPath-0: .\n"
"X-Poedit-SearchPathExcluded-0: *.js\n"
"X-Poedit-SourceCharset: UTF-8\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: admin/class-advanced-popups-admin.php:93
msgid "Popup Settings"
msgstr ""
#: admin/class-advanced-popups-admin.php:151, admin/class-advanced-popups-admin.php:299, admin/class-advanced-popups-admin.php:911
msgid "General"
msgstr ""
#: admin/class-advanced-popups-admin.php:152
msgid "Display Rules"
msgstr ""
#: admin/class-advanced-popups-admin.php:153
msgid "Triggers"
msgstr ""
#: admin/class-advanced-popups-admin.php:154
msgid "Style"
msgstr ""
#: admin/class-advanced-popups-admin.php:155
msgid "Advanced"
msgstr ""
#: admin/class-advanced-popups-admin.php:161
msgid "Type"
msgstr ""
#: admin/class-advanced-popups-admin.php:165
msgid "Content Box"
msgstr ""
#: admin/class-advanced-popups-admin.php:166
msgid "Notification Box"
msgstr ""
#: admin/class-advanced-popups-admin.php:167
msgid "Notification Bar"
msgstr ""
#: admin/class-advanced-popups-admin.php:173
msgid "Location"
msgstr ""
#: admin/class-advanced-popups-admin.php:177, admin/class-advanced-popups-admin.php:197
msgid "Top"
msgstr ""
#: admin/class-advanced-popups-admin.php:178
msgid "Top Left"
msgstr ""
#: admin/class-advanced-popups-admin.php:179
msgid "Top Right"
msgstr ""
#: admin/class-advanced-popups-admin.php:180, admin/class-advanced-popups-admin.php:198
msgid "Bottom"
msgstr ""
#: admin/class-advanced-popups-admin.php:181
msgid "Bottom Left"
msgstr ""
#: admin/class-advanced-popups-admin.php:182
msgid "Bottom Right"
msgstr ""
#: admin/class-advanced-popups-admin.php:183, admin/class-advanced-popups-admin.php:195
msgid "Left"
msgstr ""
#: admin/class-advanced-popups-admin.php:184, admin/class-advanced-popups-admin.php:196
msgid "Right"
msgstr ""
#: admin/class-advanced-popups-admin.php:185
msgid "Center"
msgstr ""
#: admin/class-advanced-popups-admin.php:191
msgid "Preview Image"
msgstr ""
#: admin/class-advanced-popups-admin.php:199, admin/class-advanced-popups-admin.php:432, includes/class-advanced-popups-rules.php:70
msgid "None"
msgstr ""
#: admin/class-advanced-popups-admin.php:205
msgid "Notification Text"
msgstr ""
#: admin/class-advanced-popups-admin.php:213
msgid "Notification Button Label"
msgstr ""
#: admin/class-advanced-popups-admin.php:221
msgid "Notification Button Action"
msgstr ""
#: admin/class-advanced-popups-admin.php:225
msgid "Link"
msgstr ""
#: admin/class-advanced-popups-admin.php:226
msgid "Accept"
msgstr ""
#: admin/class-advanced-popups-admin.php:232
msgid "Notification Button Link"
msgstr ""
#: admin/class-advanced-popups-admin.php:240
msgid "Limit display"
msgstr ""
#: admin/class-advanced-popups-admin.php:242
msgid "Show the popup only [n] times."
msgstr ""
#: admin/class-advanced-popups-admin.php:251
msgid "Limit display сache lifetime (days)"
msgstr ""
#: admin/class-advanced-popups-admin.php:260
msgid "Guests or Logged-in"
msgstr ""
#: admin/class-advanced-popups-admin.php:266
msgid "Show only to logged-in users"
msgstr ""
#: admin/class-advanced-popups-admin.php:274
msgid "Show Popup"
msgstr ""
#: admin/class-advanced-popups-admin.php:277
msgid "Entire Site"
msgstr ""
#: admin/class-advanced-popups-admin.php:278
msgid "Specific Pages"
msgstr ""
#: admin/class-advanced-popups-admin.php:300, admin/class-advanced-popups-admin.php:912
msgid "Posts Types"
msgstr ""
#: admin/class-advanced-popups-admin.php:301, admin/class-advanced-popups-admin.php:913
msgid "Taxonomies"
msgstr ""
#: admin/class-advanced-popups-admin.php:358, admin/class-advanced-popups-admin.php:914
msgid "Add another OR rule"
msgstr ""
#: admin/class-advanced-popups-admin.php:361, admin/class-advanced-popups-admin.php:915
msgid "Remove"
msgstr ""
#: admin/class-advanced-popups-admin.php:371
msgid "Add New Rule "
msgstr ""
#: admin/class-advanced-popups-admin.php:378
msgid "Trigger Open Popup"
msgstr ""
#: admin/class-advanced-popups-admin.php:381, admin/class-advanced-popups-admin.php:398, admin/class-advanced-popups-admin.php:433, admin/class-advanced-popups-admin.php:439
msgid "Time Delay"
msgstr ""
#: admin/class-advanced-popups-admin.php:382
msgid "Page Viewed"
msgstr ""
#: admin/class-advanced-popups-admin.php:383
msgid "Page Read"
msgstr ""
#: admin/class-advanced-popups-admin.php:384
msgid "Exit Intent"
msgstr ""
#: admin/class-advanced-popups-admin.php:385, admin/class-advanced-popups-admin.php:406, admin/class-advanced-popups-admin.php:434
msgid "Scroll Position"
msgstr ""
#: admin/class-advanced-popups-admin.php:386
msgid "Accept Agreement"
msgstr ""
#: admin/class-advanced-popups-admin.php:387
msgid "Manual Launch"
msgstr ""
#: admin/class-advanced-popups-admin.php:393
msgid "It works for \"Notification Box\" and \"Notification Bar\". And if \"Notification Button Action\" is selected as \"Accept\", then the popup will be displayed until the user accepts the agreement."
msgstr ""
#: admin/class-advanced-popups-admin.php:401, admin/class-advanced-popups-admin.php:442
msgid "Seconds"
msgstr ""
#: admin/class-advanced-popups-admin.php:413, admin/class-advanced-popups-admin.php:454
msgid "Px."
msgstr ""
#: admin/class-advanced-popups-admin.php:414, admin/class-advanced-popups-admin.php:455
msgid "%"
msgstr ""
#: admin/class-advanced-popups-admin.php:415, admin/class-advanced-popups-admin.php:456
msgid "of screen"
msgstr ""
#: admin/class-advanced-popups-admin.php:421
msgid "CSS Selector"
msgstr ""
#: admin/class-advanced-popups-admin.php:429
msgid "Trigger Close Popup"
msgstr ""
#: admin/class-advanced-popups-admin.php:447
msgid "Offset Scroll Position"
msgstr ""
#: admin/class-advanced-popups-admin.php:464
msgid "Open Animation"
msgstr ""
#: admin/class-advanced-popups-admin.php:468, admin/class-advanced-popups-admin.php:481
msgid "Fade"
msgstr ""
#: admin/class-advanced-popups-admin.php:469, admin/class-advanced-popups-admin.php:482
msgid "Slide"
msgstr ""
#: admin/class-advanced-popups-admin.php:470, admin/class-advanced-popups-admin.php:483
msgid "Zoom"
msgstr ""
#: admin/class-advanced-popups-admin.php:471, admin/class-advanced-popups-admin.php:484
msgid "Slide and Fade"
msgstr ""
#: admin/class-advanced-popups-admin.php:477
msgid "Exit Animation"
msgstr ""
#: admin/class-advanced-popups-admin.php:490
msgid "Content Box Width"
msgstr ""
#: admin/class-advanced-popups-admin.php:494, admin/class-advanced-popups-admin.php:504, admin/class-advanced-popups-admin.php:514
msgid "px."
msgstr ""
#: admin/class-advanced-popups-admin.php:500
msgid "Notification Box Width"
msgstr ""
#: admin/class-advanced-popups-admin.php:510
msgid "Notification Bar Width"
msgstr ""
#: admin/class-advanced-popups-admin.php:520
msgid "Light Close Button"
msgstr ""
#: admin/class-advanced-popups-admin.php:528
msgid "Display Overlay"
msgstr ""
#: admin/class-advanced-popups-admin.php:538
msgid "Mobile Disable"
msgstr ""
#: admin/class-advanced-popups-admin.php:541
msgid "Disable popup on mobile"
msgstr ""
#: admin/class-advanced-popups-admin.php:546
msgid "Disable Scrolling"
msgstr ""
#: admin/class-advanced-popups-admin.php:549
msgid "Disable scrolling on body"
msgstr ""
#: admin/class-advanced-popups-admin.php:554
msgid "Click Overlay to Close"
msgstr ""
#: admin/class-advanced-popups-admin.php:557
msgid "Checking this will cause popup to close when user clicks on overlay"
msgstr ""
#: admin/class-advanced-popups-admin.php:562
msgid "Press ESC to Close"
msgstr ""
#: admin/class-advanced-popups-admin.php:565
msgid "Checking this will cause popup to close when user presses ESC key"
msgstr ""
#: admin/class-advanced-popups-admin.php:570
msgid "Press F4 to Close"
msgstr ""
#: admin/class-advanced-popups-admin.php:573
msgid "Checking this will cause popup to close when user presses F4 key"
msgstr ""
#: admin/class-advanced-popups-admin.php:916
msgid "Find items..."
msgstr ""
#: admin/class-advanced-popups-admin.php:917
msgid "The results could not be loaded."
msgstr ""
#: admin/class-advanced-popups-admin.php:918
msgid "Loading more results..."
msgstr ""
#: admin/class-advanced-popups-admin.php:919
msgid "Nothing not found"
msgstr ""
#: admin/class-advanced-popups-admin.php:920
msgid "Searching..."
msgstr ""
#: admin/class-advanced-popups-admin.php:921
msgid "Remove all items"
msgstr ""
#: includes/class-advanced-popups-rules.php:71
msgid "Front Page"
msgstr ""
#: includes/class-advanced-popups-rules.php:72
msgid "Home Page"
msgstr ""
#: includes/class-advanced-popups-rules.php:73
msgid "Archive Page"
msgstr ""
#: includes/class-advanced-popups-rules.php:74
msgid "Author Page"
msgstr ""
#: includes/class-advanced-popups-rules.php:75
msgid "Search Result Page"
msgstr ""
#: includes/class-advanced-popups-rules.php:76
msgid "404 Error Page"
msgstr ""
#: includes/class-advanced-popups-rules.php:77
msgid "URL (slug)"
msgstr ""
#: includes/class-advanced-popups-rules.php:108
msgid "Taxonomy of "
msgstr ""
@@ -0,0 +1,271 @@
<?php
/**
* The public-facing functionality of the plugin.
*
* @link https://codesupply.co
* @since 1.0.0
*
* @package ADP
* @subpackage ADP/public
*/
/**
* The public-facing functionality of the plugin.
*
* Defines the plugin name, version, and two examples hooks for how to
* enqueue the public-facing stylesheet and JavaScript.
*
* @package ADP
* @subpackage ADP/public
*/
class ADP_Public {
/**
* The ID of this plugin.
* @access private
* @var string $adp The ID of this plugin.
*/
private $adp;
/**
* The version of this plugin.
* @access private
* @var string $version The current version of this plugin.
*/
private $version;
/**
* Initialize the class and set its properties.
*
* @param string $adp The name of the plugin.
* @param string $version The version of this plugin.
*/
public function __construct( $adp, $version ) {
$this->adp = $adp;
$this->version = $version;
}
/**
* Initialize
*/
public function wp_footer() {
$query = new WP_Query();
// Get all popups.
$popups = $query->query( array(
'post_status' => 'publish',
'post_type' => 'adp-popup',
'posts_per_page' => -1,
) );
// Looop popups.
foreach ( $popups as $popup ) {
$popup_type = adp_get_post_meta( $popup->ID, '_adp_popup_type', true, 'content' );
$popup_location = adp_get_post_meta( $popup->ID, '_adp_popup_location', true, 'center' );
$popup_preview_image = adp_get_post_meta( $popup->ID, '_adp_popup_preview_image', true, 'left' );
$popup_info_text = adp_get_post_meta( $popup->ID, '_adp_popup_info_text', true );
$popup_info_buton_label = adp_get_post_meta( $popup->ID, '_adp_popup_info_buton_label', true );
$popup_info_button_action = adp_get_post_meta( $popup->ID, '_adp_popup_info_button_action', true, 'link' );
$popup_info_button_link = adp_get_post_meta( $popup->ID, '_adp_popup_info_button_link', true );
$popup_limit_display = adp_get_post_meta( $popup->ID, '_adp_popup_limit_display', true, 1 );
$popup_limit_lifetime = adp_get_post_meta( $popup->ID, '_adp_popup_limit_lifetime', true, 30 );
$popup_open_trigger = adp_get_post_meta( $popup->ID, '_adp_popup_open_trigger', true, 'delay' );
$popup_open_delay_number = adp_get_post_meta( $popup->ID, '_adp_popup_open_delay_number', true, 1 );
$popup_open_scroll_position = adp_get_post_meta( $popup->ID, '_adp_popup_open_scroll_position', true, 10 );
$popup_open_scroll_type = adp_get_post_meta( $popup->ID, '_adp_popup_open_scroll_type', true, '%' );
$popup_open_manual_selector = adp_get_post_meta( $popup->ID, '_adp_popup_open_manual_selector', true );
$popup_close_trigger = adp_get_post_meta( $popup->ID, '_adp_popup_close_trigger', true, 'none' );
$popup_close_delay_number = adp_get_post_meta( $popup->ID, '_adp_popup_close_delay_number', true, 30 );
$popup_close_scroll_position = adp_get_post_meta( $popup->ID, '_adp_popup_close_scroll_position', true, 10 );
$popup_close_scroll_type = adp_get_post_meta( $popup->ID, '_adp_popup_close_scroll_type', true, '%' );
$popup_open_animation = adp_get_post_meta( $popup->ID, '_adp_popup_open_animation', true, 'popupOpenFade' );
$popup_exit_animation = adp_get_post_meta( $popup->ID, '_adp_popup_exit_animation', true, 'popupExitFade' );
$popup_content_box_width = adp_get_post_meta( $popup->ID, '_adp_popup_content_box_width', true, 500 );
$popup_notification_box_width = adp_get_post_meta( $popup->ID, '_adp_popup_notification_box_width', true, 400 );
$popup_notification_bar_width = adp_get_post_meta( $popup->ID, '_adp_popup_notification_bar_width', true, 1024 );
$popup_light_close = adp_get_post_meta( $popup->ID, '_adp_popup_light_close', true, false );
$popup_display_overlay = adp_get_post_meta( $popup->ID, '_adp_popup_display_overlay', true, false );
$popup_mobile_disable = adp_get_post_meta( $popup->ID, '_adp_popup_mobile_disable', true );
$popup_body_scroll_disable = adp_get_post_meta( $popup->ID, '_adp_popup_body_scroll_disable', true );
$popup_overlay_close = adp_get_post_meta( $popup->ID, '_adp_popup_overlay_close', true );
$popup_esc_close = adp_get_post_meta( $popup->ID, '_adp_popup_esc_close', true );
$popup_f4_close = adp_get_post_meta( $popup->ID, '_adp_popup_f4_close', true );
// Check show popup.
if ( ! adp_is_popup_visible( $popup->ID ) ) {
continue;
}
$has_post_thumbnail = has_post_thumbnail( $popup->ID ) && 'none' !== $popup_preview_image;
// Default location for notification bar.
if ( 'notification-bar' === $popup_type ) {
if ( 'top' !== $popup_location && 'bottom' !== $popup_location ) {
$popup_location = 'bottom';
}
}
// Set popup width.
if ( 'content' === $popup_type ) {
$popup_width = $popup_content_box_width . 'px';
if ( $has_post_thumbnail ) {
$popup_width = ( $popup_content_box_width * 2 ) . 'px';
}
} elseif ( 'notification-box' === $popup_type ) {
$popup_width = $popup_notification_box_width . 'px';
} else {
$popup_width = '100%';
}
// Set Popup CSS.
$popup_style = sprintf( 'width:%s;', $popup_width );
// Set Outer CSS.
$outer_style = sprintf( 'max-width:%s;', '100%' );
if ( 'notification-bar' === $popup_type ) {
$outer_style = sprintf( 'max-width:%s;', $popup_notification_bar_width . 'px' );
}
// Popup clasess.
$class = 'adp-popup';
$class .= ' adp-popup-type-' . esc_attr( $popup_type );
$class .= ' adp-popup-location-' . esc_attr( $popup_location );
$class .= ' adp-preview-image-' . esc_attr( $popup_preview_image );
$class .= ' adp-preview-image-' . esc_attr( $has_post_thumbnail ? 'yes' : 'no' );
// Filter clasess.
$class = apply_filters( 'adp_popup_clasess', $class, $popup->ID, $popup_type, $popup_location );
?>
<div class="<?php echo esc_attr( $class ); ?>"
data-limit-display="<?php echo esc_attr( $popup_limit_display ); ?>"
data-limit-lifetime="<?php echo esc_attr( $popup_limit_lifetime ); ?>"
data-open-trigger="<?php echo esc_attr( $popup_open_trigger ); ?>"
data-open-delay-number="<?php echo esc_attr( $popup_open_delay_number ); ?>"
data-open-scroll-position="<?php echo esc_attr( $popup_open_scroll_position ); ?>"
data-open-scroll-type="<?php echo esc_attr( $popup_open_scroll_type ); ?>"
data-open-manual-selector="<?php echo esc_attr( $popup_open_manual_selector ); ?>"
data-close-trigger="<?php echo esc_attr( $popup_close_trigger ); ?>"
data-close-delay-number="<?php echo esc_attr( $popup_close_delay_number ); ?>"
data-close-scroll-position="<?php echo esc_attr( $popup_close_scroll_position ); ?>"
data-close-scroll-type="<?php echo esc_attr( $popup_close_scroll_type ); ?>"
data-open-animation="<?php echo esc_attr( $popup_open_animation ); ?>"
data-exit-animation="<?php echo esc_attr( $popup_exit_animation ); ?>"
data-light-close="<?php echo esc_attr( $popup_light_close ? 'true' : 'false' ); ?>"
data-overlay="<?php echo esc_attr( $popup_display_overlay ? 'true' : 'false' ); ?>"
data-mobile-disable="<?php echo esc_attr( $popup_mobile_disable ? 'true' : 'false' ); ?>"
data-body-scroll-disable="<?php echo esc_attr( $popup_body_scroll_disable ? 'true' : 'false' ); ?>"
data-overlay-close="<?php echo esc_attr( $popup_overlay_close ? 'true' : 'false' ); ?>"
data-esc-close="<?php echo esc_attr( $popup_esc_close ? 'true' : 'false' ); ?>"
data-f4-close="<?php echo esc_attr( $popup_f4_close ? 'true' : 'false' ); ?>"
data-id="<?php echo esc_attr( $popup->ID ); ?>"
style="<?php echo esc_attr( $popup_style ); ?>">
<div class="adp-popup-wrap">
<div class="adp-popup-container">
<!-- Content -->
<?php if ( 'content' === $popup_type ) { ?>
<div class="adp-popup-outer" style="<?php echo esc_attr( $outer_style ); ?>">
<?php if ( $has_post_thumbnail ) { ?>
<div class="adp-popup-thumbnail">
<?php echo get_the_post_thumbnail( $popup->ID, 'large', array( 'class' => 'adp-lazyload-disabled' ) ); ?>
</div>
<?php } ?>
<div class="adp-popup-content">
<div class="adp-popup-inner">
<?php
$content = do_blocks( $popup->post_content );
echo do_shortcode( $content ); // XSS.
?>
</div>
<button type="button" class="adp-popup-close"></button>
</div>
</div>
<?php } ?>
<!-- Info -->
<?php if ( 'notification-box' === $popup_type || 'notification-bar' === $popup_type ) { ?>
<div class="adp-popup-outer" style="<?php echo esc_attr( $outer_style ); ?>">
<?php if ( $popup_info_text ) { ?>
<div class="adp-popup-text">
<?php echo wp_kses( $popup_info_text, 'post' ); ?>
</div>
<?php } ?>
<?php if ( $popup_info_buton_label ) { ?>
<?php if ( 'accept' === $popup_info_button_action ) { ?>
<button class="adp-button adp-popup-button adp-popup-accept">
<?php echo wp_kses( $popup_info_buton_label, 'post' ); ?>
</button>
<?php } ?>
<?php if ( 'link' === $popup_info_button_action ) { ?>
<a class="adp-button adp-popup-button" target="_blank" href="<?php echo esc_attr( $popup_info_button_link ); ?>">
<?php echo wp_kses( $popup_info_buton_label, 'post' ); ?>
</a>
<?php } ?>
<?php } ?>
<button type="button" class="adp-popup-close"></button>
</div>
<?php } ?>
</div>
</div>
</div>
<?php if ( $popup_display_overlay ) { ?>
<div class="adp-popup-overlay"></div>
<?php } ?>
<?php
// Integration css of powerkit blocks.
if ( function_exists( 'cnvs_gutenberg' ) ) {
// Parse blocks.
$blocks = parse_blocks( $popup->post_content );
$blocks_css = cnvs_gutenberg()->parse_blocks_css( $blocks );
if ( $blocks_css ) {
echo sprintf( '<style>%s</style>', $blocks_css ); // XSS.
}
}
}
}
/**
* Fire the wp_head action.
*/
public function wp_head() {
?>
<link rel="preload" href="<?php echo esc_url( ADP_URL . 'fonts/advanced-popups-icons.woff' ); ?>" as="font" type="font/woff" crossorigin>
<?php
}
/**
* Register the stylesheets for the public-facing side of the site.
*/
public function wp_enqueue_scripts() {
// Scripts.
wp_enqueue_script( $this->adp, plugin_dir_url( __FILE__ ) . 'js/advanced-popups-public.js', array( 'jquery' ), $this->version, false );
// Styles.
wp_enqueue_style( $this->adp, adp_style( plugin_dir_url( __FILE__ ) . 'css/advanced-popups-public.css' ), array(), $this->version, 'all' );
// Add RTL support.
wp_style_add_data( $this->adp, 'rtl', 'replace' );
}
}
@@ -0,0 +1,626 @@
/**
* All of the CSS for your public-facing functionality should be
* included in this file.
*/
@font-face {
font-family: 'advanced-popups-icons';
src: url("../../fonts/advanced-popups-icons.woff") format("woff"), url("../../fonts/advanced-popups-icons.ttf") format("truetype"), url("../../fonts/advanced-popups-icons.svg") format("svg");
font-weight: normal;
font-style: normal;
font-display: swap;
}
[class^="adp-icon-"],
[class*=" adp-icon-"] {
font-family: 'advanced-popups-icons' !important;
font-style: normal;
font-weight: normal;
font-variant: normal;
text-transform: none;
line-height: 1;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
.adp-icon-x:before {
content: "\e913";
}
/*--------------------------------------------------------------*/
/*--------------------------------------------------------------*/
.adp-popup {
--adp-popup-wrap-scrollbar-width: 0.625rem;
--adp-popup-wrap-scrollbar-track-background: #f1f1f1;
--adp-popup-wrap-scrollbar-thumb-background: #888;
--adp-popup-wrap-scrollbar-thumb-hover-background: #555;
--adp-popup-wrap-box-shadow: 0 0 40px 0 rgba(0,0,0,.075);
--adp-popup-container-background: #FFFFFF;
--adp-popup-close-font-size: 1.25rem;
--adp-popup-close-color: #000;
--adp-popup-close-hover-color: #777;
--adp-popup-close-light-color: #FFFF;
--adp-popup-close-light-hover-color: rgba(255,255,255,0.75);
--adp-popup-type-content-close-font-size: 1.5rem;
--adp-popup-type-notification-text-font-size: 90%;
--adp-popup-type-notification-text-color: #777777;
--adp-popup-type-notification-text-link-color: #000000;
--adp-popup-type-notification-button-background: #282828;
--adp-popup-type-notification-button-color: #FFF;
--adp-popup-type-notification-button-border-radius: 0;
}
.adp-popup-overlay {
--adp-popup-overlay-background: rgba(0,0,0,0.25);
}
/*--------------------------------------------------------------*/
.adp-popup-scroll-hidden {
overflow: hidden;
width: 100%;
}
.adp-popup-animated {
-webkit-animation-duration: 0.5s;
animation-duration: 0.5s;
-webkit-animation-fill-mode: both;
animation-fill-mode: both;
overflow: hidden !important;
}
@-webkit-keyframes popupOpenFade {
from {
opacity: 0;
}
to {
opacity: 1;
}
}
@keyframes popupOpenFade {
from {
opacity: 0;
}
to {
opacity: 1;
}
}
@-webkit-keyframes popupExitFade {
from {
opacity: 1;
}
to {
opacity: 0;
}
}
@keyframes popupExitFade {
from {
opacity: 1;
}
to {
opacity: 0;
}
}
@-webkit-keyframes popupOpenSlide {
from {
transform: translate3d(0, 100vh, 0);
visibility: visible;
}
to {
transform: translate3d(0, 0, 0);
}
}
@keyframes popupOpenSlide {
from {
transform: translate3d(0, 100vh, 0);
visibility: visible;
}
to {
transform: translate3d(0, 0, 0);
}
}
@-webkit-keyframes popupExitSlide {
from {
transform: translate3d(0, 0, 0);
}
to {
visibility: hidden;
transform: translate3d(0, 100vh, 0);
}
}
@keyframes popupExitSlide {
from {
transform: translate3d(0, 0, 0);
}
to {
visibility: hidden;
transform: translate3d(0, 100vh, 0);
}
}
@-webkit-keyframes popupOpenZoom {
from {
opacity: 0;
transform: scale(1.1);
}
to {
opacity: 1;
transform: scale(1);
}
}
@keyframes popupOpenZoom {
from {
opacity: 0;
transform: scale(1.1);
}
to {
opacity: 1;
transform: scale(1);
}
}
@-webkit-keyframes popupExitZoom {
from {
opacity: 1;
transform: scale(1);
}
to {
opacity: 0;
transform: scale(1.1);
}
}
@keyframes popupExitZoom {
from {
opacity: 1;
transform: scale(1);
}
to {
opacity: 0;
transform: scale(1.1);
}
}
@-webkit-keyframes popupOpenSlideFade {
from {
opacity: 0;
transform: translate3d(0, 40px, 0);
visibility: visible;
}
to {
opacity: 1;
transform: translate3d(0, 0, 0);
}
}
@keyframes popupOpenSlideFade {
from {
opacity: 0;
transform: translate3d(0, 40px, 0);
visibility: visible;
}
to {
opacity: 1;
transform: translate3d(0, 0, 0);
}
}
@-webkit-keyframes popupExitSlideFade {
from {
opacity: 1;
transform: translate3d(0, 0, 0);
}
to {
opacity: 0;
visibility: hidden;
transform: translate3d(0, 40px, 0);
}
}
@keyframes popupExitSlideFade {
from {
opacity: 1;
transform: translate3d(0, 0, 0);
}
to {
opacity: 0;
visibility: hidden;
transform: translate3d(0, 40px, 0);
}
}
.popupOpenFade {
-webkit-animation-name: popupOpenFade;
animation-name: popupOpenFade;
}
.popupExitFade {
-webkit-animation-name: popupExitFade;
animation-name: popupExitFade;
}
.popupOpenSlide {
-webkit-animation-name: popupOpenSlide;
animation-name: popupOpenSlide;
}
.popupExitSlide {
-webkit-animation-name: popupExitSlide;
animation-name: popupExitSlide;
}
.popupOpenZoom {
-webkit-animation-name: popupOpenZoom;
animation-name: popupOpenZoom;
}
.popupExitZoom {
-webkit-animation-name: popupExitZoom;
animation-name: popupExitZoom;
}
.popupOpenSlideFade {
-webkit-animation-name: popupOpenSlideFade;
animation-name: popupOpenSlideFade;
}
.popupExitSlideFade {
-webkit-animation-name: popupExitSlideFade;
animation-name: popupExitSlideFade;
}
.adp-popup {
display: none;
position: fixed;
z-index: 999999;
max-width: calc(100vw - 1.5rem);
max-height: calc(100vh - 1.5rem);
-webkit-backface-visibility: hidden;
}
@media (min-width: 720px) {
.adp-popup {
max-width: calc(100vw - 6rem);
max-height: calc(100vh - 6rem);
}
}
.adp-popup.adp-popup-location-top {
top: 20px;
right: 50%;
transform: translate3d(-50%, 0, 0);
}
.adp-popup.adp-popup-location-top-left {
top: 20px;
right: 20px;
}
.adp-popup.adp-popup-location-top-right {
top: 20px;
left: 20px;
}
.adp-popup.adp-popup-location-bottom {
bottom: 20px;
right: 50%;
transform: translate3d(-50%, 0, 0);
}
.adp-popup.adp-popup-location-bottom-left {
right: 20px;
bottom: 20px;
}
.adp-popup.adp-popup-location-bottom-right {
left: 20px;
bottom: 20px;
}
.adp-popup.adp-popup-location-left {
top: 50%;
right: 20px;
transform: translate3d(0, -50%, 0);
}
.adp-popup.adp-popup-location-right {
top: 50%;
left: 20px;
transform: translate3d(0, -50%, 0);
}
.adp-popup.adp-popup-location-center {
top: 50%;
right: 50%;
transform: translate3d(-50%, -50%, 0);
}
.adp-popup .adp-popup-wrap {
position: relative;
overflow-x: hidden;
overflow-y: auto;
width: 100%;
box-shadow: var(--adp-popup-wrap-box-shadow);
}
.adp-popup .adp-popup-wrap::-webkit-scrollbar {
width: var(--adp-popup-wrap-scrollbar-width);
}
.adp-popup .adp-popup-wrap::-webkit-scrollbar-track {
background: var(--adp-popup-wrap-scrollbar-track-background);
}
.adp-popup .adp-popup-wrap::-webkit-scrollbar-thumb {
background: var(--adp-popup-wrap-scrollbar-thumb-background);
}
.adp-popup .adp-popup-wrap::-webkit-scrollbar-thumb:hover {
background: var(--adp-popup-wrap-scrollbar-thumb-hover-background);
}
.adp-popup .adp-popup-container {
background: var(--adp-popup-container-background);
width: 100%;
}
.adp-popup .adp-popup-outer {
position: relative;
display: flex;
flex-direction: column;
}
.adp-popup .adp-popup-thumbnail img {
width: 100%;
}
.adp-popup .adp-popup-close {
position: absolute;
background: transparent;
color: var(--adp-popup-close-color);
padding: 0;
line-height: 1;
font-size: var(--adp-popup-close-font-size);
top: 20px;
left: 20px;
z-index: 2;
}
.adp-popup .adp-popup-close:before {
font-family: 'advanced-popups-icons';
transition: color 0.25s ease;
content: "\e913";
}
.adp-popup .adp-popup-close:hover:before {
color: var(--adp-popup-close-hover-color);
}
.adp-popup.adp-popup-open[data-light-close="true"] .adp-popup-close {
color: var(--adp-popup-close-light-color);
}
.adp-popup.adp-popup-open[data-light-close="true"] .adp-popup-close:hover:before {
color: var(--adp-popup-close-light-hover-color);
}
.adp-popup.adp-popup-open {
display: flex;
}
@media (max-width: 720px) {
.adp-popup.adp-popup-open[data-mobile-disable="true"] {
display: none;
}
}
.adp-popup-overlay {
background: var(--adp-popup-overlay-background);
position: fixed;
display: none;
top: 0;
bottom: 0;
left: 0;
right: 0;
width: 100%;
height: 100%;
z-index: 999998;
}
.adp-popup-overlay .adp-popup-wrap {
box-shadow: none;
}
.adp-popup-open + .adp-popup-overlay {
display: block;
}
@media (max-width: 719.98px) {
.adp-popup-type-content {
max-width: 100vw;
max-height: 100vh;
}
}
.adp-popup-type-content .adp-popup-content {
padding: 40px;
}
.adp-popup-type-content .adp-popup-close {
font-size: var(--adp-popup-type-content-close-font-size);
}
.adp-popup-type-content .wp-block-cover:first-child:last-child {
margin: -40px;
width: initial;
}
.adp-popup-type-content.adp-preview-image-yes .adp-popup-close {
color: var(--adp-popup-close-light-color);
}
.adp-popup-type-content.adp-preview-image-yes .adp-popup-close:hover:before {
color: var(--adp-popup-close-light-hover-color);
}
@media (min-width: 1024px) {
.adp-popup-type-content .adp-popup-outer {
flex-direction: row;
}
.adp-popup-type-content.adp-preview-image-left .adp-popup-close, .adp-popup-type-content.adp-preview-image-bottom .adp-popup-close {
color: var(--adp-popup-close-color);
}
.adp-popup-type-content.adp-preview-image-left .adp-popup-close:hover:before, .adp-popup-type-content.adp-preview-image-bottom .adp-popup-close:hover:before {
color: var(--adp-popup-close-hover-color);
}
.adp-popup-type-content.adp-preview-image-left .adp-popup-thumbnail {
order: 1;
}
.adp-popup-type-content.adp-preview-image-right .adp-popup-thumbnail {
order: 3;
}
.adp-popup-type-content.adp-preview-image-top .adp-popup-outer {
flex-direction: column;
}
.adp-popup-type-content.adp-preview-image-top .adp-popup-thumbnail img {
position: relative;
top: initial;
bottom: initial;
left: initial;
right: initial;
width: initial;
height: initial;
}
.adp-popup-type-content.adp-preview-image-bottom .adp-popup-outer {
flex-direction: column;
}
.adp-popup-type-content.adp-preview-image-bottom .adp-popup-thumbnail {
order: 3;
}
.adp-popup-type-content.adp-preview-image-bottom .adp-popup-thumbnail img {
position: relative;
top: initial;
bottom: initial;
left: initial;
right: initial;
width: initial;
height: initial;
}
.adp-popup-type-content .adp-popup-thumbnail {
position: relative;
flex: 1 0 50%;
order: 1;
}
.adp-popup-type-content .adp-popup-thumbnail img {
position: absolute;
display: block;
top: 0;
bottom: 0;
left: 0;
right: 0;
width: 100%;
height: 100%;
-o-object-fit: cover;
object-fit: cover;
}
.adp-popup-type-content .adp-popup-content {
padding: 80px;
flex: 1 0 50%;
order: 2;
}
.adp-popup-type-content .adp-popup-content:first-child:last-child {
flex: 1 0 100%;
}
.adp-popup-type-content .wp-block-cover:first-child:last-child {
margin: -80px;
}
}
.adp-popup-type-notification-box .adp-popup-outer,
.adp-popup-type-notification-bar .adp-popup-outer {
padding: 30px;
}
.adp-popup-type-notification-box .adp-popup-text,
.adp-popup-type-notification-bar .adp-popup-text {
padding-left: 10px;
font-size: var(--adp-popup-type-notification-text-font-size);
color: var(--adp-popup-type-notification-text-color);
}
.adp-popup-type-notification-box .adp-popup-text a,
.adp-popup-type-notification-bar .adp-popup-text a {
color: var(--adp-popup-type-notification-text-link-color);
text-decoration: underline;
}
.adp-popup-type-notification-box .adp-popup-text a:hover,
.adp-popup-type-notification-bar .adp-popup-text a:hover {
text-decoration: none;
}
.adp-popup-type-notification-box .adp-popup-button,
.adp-popup-type-notification-bar .adp-popup-button {
background: var(--adp-popup-type-notification-button-background);
margin-top: 1.5rem;
width: 100%;
color: var(--adp-popup-type-notification-button-color);
border-radius: var(--adp-popup-type-notification-button-border-radius);
}
.adp-popup-type-notification-box .adp-popup-close {
top: 15px;
left: 15px;
}
.adp-popup-type-notification-bar.adp-popup-location-top {
width: 100%;
max-width: 100%;
top: 0;
right: 0;
bottom: auto;
transform: none;
}
.adp-popup-type-notification-bar.adp-popup-location-bottom {
width: 100%;
max-width: 100%;
top: auto;
right: 0;
bottom: 0;
transform: none;
}
.adp-popup-type-notification-bar .adp-popup-outer {
padding-top: 20px;
padding-bottom: 20px;
padding-right: 60px;
padding-left: 60px;
}
@media (min-width: 720px) {
.adp-popup-type-notification-bar .adp-popup-outer {
justify-content: center;
align-items: center;
flex-direction: row;
flex-wrap: wrap;
margin: 0 auto;
padding-right: 40px;
padding-left: 40px;
}
.adp-popup-type-notification-bar .adp-popup-close {
top: 50%;
transform: translateY(-50%);
}
.adp-popup-type-notification-bar .adp-button {
margin-right: 1rem;
margin-top: 0;
width: auto;
}
}
@@ -0,0 +1,626 @@
/**
* All of the CSS for your public-facing functionality should be
* included in this file.
*/
@font-face {
font-family: 'advanced-popups-icons';
src: url("../../fonts/advanced-popups-icons.woff") format("woff"), url("../../fonts/advanced-popups-icons.ttf") format("truetype"), url("../../fonts/advanced-popups-icons.svg") format("svg");
font-weight: normal;
font-style: normal;
font-display: swap;
}
[class^="adp-icon-"],
[class*=" adp-icon-"] {
font-family: 'advanced-popups-icons' !important;
font-style: normal;
font-weight: normal;
font-variant: normal;
text-transform: none;
line-height: 1;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
.adp-icon-x:before {
content: "\e913";
}
/*--------------------------------------------------------------*/
/*--------------------------------------------------------------*/
.adp-popup {
--adp-popup-wrap-scrollbar-width: 0.625rem;
--adp-popup-wrap-scrollbar-track-background: #f1f1f1;
--adp-popup-wrap-scrollbar-thumb-background: #888;
--adp-popup-wrap-scrollbar-thumb-hover-background: #555;
--adp-popup-wrap-box-shadow: 0 0 40px 0 rgba(0,0,0,.075);
--adp-popup-container-background: #FFFFFF;
--adp-popup-close-font-size: 1.25rem;
--adp-popup-close-color: #000;
--adp-popup-close-hover-color: #777;
--adp-popup-close-light-color: #FFFF;
--adp-popup-close-light-hover-color: rgba(255,255,255,0.75);
--adp-popup-type-content-close-font-size: 1.5rem;
--adp-popup-type-notification-text-font-size: 90%;
--adp-popup-type-notification-text-color: #777777;
--adp-popup-type-notification-text-link-color: #000000;
--adp-popup-type-notification-button-background: #282828;
--adp-popup-type-notification-button-color: #FFF;
--adp-popup-type-notification-button-border-radius: 0;
}
.adp-popup-overlay {
--adp-popup-overlay-background: rgba(0,0,0,0.25);
}
/*--------------------------------------------------------------*/
.adp-popup-scroll-hidden {
overflow: hidden;
width: 100%;
}
.adp-popup-animated {
-webkit-animation-duration: 0.5s;
animation-duration: 0.5s;
-webkit-animation-fill-mode: both;
animation-fill-mode: both;
overflow: hidden !important;
}
@-webkit-keyframes popupOpenFade {
from {
opacity: 0;
}
to {
opacity: 1;
}
}
@keyframes popupOpenFade {
from {
opacity: 0;
}
to {
opacity: 1;
}
}
@-webkit-keyframes popupExitFade {
from {
opacity: 1;
}
to {
opacity: 0;
}
}
@keyframes popupExitFade {
from {
opacity: 1;
}
to {
opacity: 0;
}
}
@-webkit-keyframes popupOpenSlide {
from {
transform: translate3d(0, 100vh, 0);
visibility: visible;
}
to {
transform: translate3d(0, 0, 0);
}
}
@keyframes popupOpenSlide {
from {
transform: translate3d(0, 100vh, 0);
visibility: visible;
}
to {
transform: translate3d(0, 0, 0);
}
}
@-webkit-keyframes popupExitSlide {
from {
transform: translate3d(0, 0, 0);
}
to {
visibility: hidden;
transform: translate3d(0, 100vh, 0);
}
}
@keyframes popupExitSlide {
from {
transform: translate3d(0, 0, 0);
}
to {
visibility: hidden;
transform: translate3d(0, 100vh, 0);
}
}
@-webkit-keyframes popupOpenZoom {
from {
opacity: 0;
transform: scale(1.1);
}
to {
opacity: 1;
transform: scale(1);
}
}
@keyframes popupOpenZoom {
from {
opacity: 0;
transform: scale(1.1);
}
to {
opacity: 1;
transform: scale(1);
}
}
@-webkit-keyframes popupExitZoom {
from {
opacity: 1;
transform: scale(1);
}
to {
opacity: 0;
transform: scale(1.1);
}
}
@keyframes popupExitZoom {
from {
opacity: 1;
transform: scale(1);
}
to {
opacity: 0;
transform: scale(1.1);
}
}
@-webkit-keyframes popupOpenSlideFade {
from {
opacity: 0;
transform: translate3d(0, 40px, 0);
visibility: visible;
}
to {
opacity: 1;
transform: translate3d(0, 0, 0);
}
}
@keyframes popupOpenSlideFade {
from {
opacity: 0;
transform: translate3d(0, 40px, 0);
visibility: visible;
}
to {
opacity: 1;
transform: translate3d(0, 0, 0);
}
}
@-webkit-keyframes popupExitSlideFade {
from {
opacity: 1;
transform: translate3d(0, 0, 0);
}
to {
opacity: 0;
visibility: hidden;
transform: translate3d(0, 40px, 0);
}
}
@keyframes popupExitSlideFade {
from {
opacity: 1;
transform: translate3d(0, 0, 0);
}
to {
opacity: 0;
visibility: hidden;
transform: translate3d(0, 40px, 0);
}
}
.popupOpenFade {
-webkit-animation-name: popupOpenFade;
animation-name: popupOpenFade;
}
.popupExitFade {
-webkit-animation-name: popupExitFade;
animation-name: popupExitFade;
}
.popupOpenSlide {
-webkit-animation-name: popupOpenSlide;
animation-name: popupOpenSlide;
}
.popupExitSlide {
-webkit-animation-name: popupExitSlide;
animation-name: popupExitSlide;
}
.popupOpenZoom {
-webkit-animation-name: popupOpenZoom;
animation-name: popupOpenZoom;
}
.popupExitZoom {
-webkit-animation-name: popupExitZoom;
animation-name: popupExitZoom;
}
.popupOpenSlideFade {
-webkit-animation-name: popupOpenSlideFade;
animation-name: popupOpenSlideFade;
}
.popupExitSlideFade {
-webkit-animation-name: popupExitSlideFade;
animation-name: popupExitSlideFade;
}
.adp-popup {
display: none;
position: fixed;
z-index: 999999;
max-width: calc(100vw - 1.5rem);
max-height: calc(100vh - 1.5rem);
-webkit-backface-visibility: hidden;
}
@media (min-width: 720px) {
.adp-popup {
max-width: calc(100vw - 6rem);
max-height: calc(100vh - 6rem);
}
}
.adp-popup.adp-popup-location-top {
top: 20px;
left: 50%;
transform: translate3d(-50%, 0, 0);
}
.adp-popup.adp-popup-location-top-left {
top: 20px;
left: 20px;
}
.adp-popup.adp-popup-location-top-right {
top: 20px;
right: 20px;
}
.adp-popup.adp-popup-location-bottom {
bottom: 20px;
left: 50%;
transform: translate3d(-50%, 0, 0);
}
.adp-popup.adp-popup-location-bottom-left {
left: 20px;
bottom: 20px;
}
.adp-popup.adp-popup-location-bottom-right {
right: 20px;
bottom: 20px;
}
.adp-popup.adp-popup-location-left {
top: 50%;
left: 20px;
transform: translate3d(0, -50%, 0);
}
.adp-popup.adp-popup-location-right {
top: 50%;
right: 20px;
transform: translate3d(0, -50%, 0);
}
.adp-popup.adp-popup-location-center {
top: 50%;
left: 50%;
transform: translate3d(-50%, -50%, 0);
}
.adp-popup .adp-popup-wrap {
position: relative;
overflow-x: hidden;
overflow-y: auto;
width: 100%;
box-shadow: var(--adp-popup-wrap-box-shadow);
}
.adp-popup .adp-popup-wrap::-webkit-scrollbar {
width: var(--adp-popup-wrap-scrollbar-width);
}
.adp-popup .adp-popup-wrap::-webkit-scrollbar-track {
background: var(--adp-popup-wrap-scrollbar-track-background);
}
.adp-popup .adp-popup-wrap::-webkit-scrollbar-thumb {
background: var(--adp-popup-wrap-scrollbar-thumb-background);
}
.adp-popup .adp-popup-wrap::-webkit-scrollbar-thumb:hover {
background: var(--adp-popup-wrap-scrollbar-thumb-hover-background);
}
.adp-popup .adp-popup-container {
background: var(--adp-popup-container-background);
width: 100%;
}
.adp-popup .adp-popup-outer {
position: relative;
display: flex;
flex-direction: column;
}
.adp-popup .adp-popup-thumbnail img {
width: 100%;
}
.adp-popup .adp-popup-close {
position: absolute;
background: transparent;
color: var(--adp-popup-close-color);
padding: 0;
line-height: 1;
font-size: var(--adp-popup-close-font-size);
top: 20px;
right: 20px;
z-index: 2;
}
.adp-popup .adp-popup-close:before {
font-family: 'advanced-popups-icons';
transition: color 0.25s ease;
content: "\e913";
}
.adp-popup .adp-popup-close:hover:before {
color: var(--adp-popup-close-hover-color);
}
.adp-popup.adp-popup-open[data-light-close="true"] .adp-popup-close {
color: var(--adp-popup-close-light-color);
}
.adp-popup.adp-popup-open[data-light-close="true"] .adp-popup-close:hover:before {
color: var(--adp-popup-close-light-hover-color);
}
.adp-popup.adp-popup-open {
display: flex;
}
@media (max-width: 720px) {
.adp-popup.adp-popup-open[data-mobile-disable="true"] {
display: none;
}
}
.adp-popup-overlay {
background: var(--adp-popup-overlay-background);
position: fixed;
display: none;
top: 0;
bottom: 0;
right: 0;
left: 0;
width: 100%;
height: 100%;
z-index: 999998;
}
.adp-popup-overlay .adp-popup-wrap {
box-shadow: none;
}
.adp-popup-open + .adp-popup-overlay {
display: block;
}
@media (max-width: 719.98px) {
.adp-popup-type-content {
max-width: 100vw;
max-height: 100vh;
}
}
.adp-popup-type-content .adp-popup-content {
padding: 40px;
}
.adp-popup-type-content .adp-popup-close {
font-size: var(--adp-popup-type-content-close-font-size);
}
.adp-popup-type-content .wp-block-cover:first-child:last-child {
margin: -40px;
width: initial;
}
.adp-popup-type-content.adp-preview-image-yes .adp-popup-close {
color: var(--adp-popup-close-light-color);
}
.adp-popup-type-content.adp-preview-image-yes .adp-popup-close:hover:before {
color: var(--adp-popup-close-light-hover-color);
}
@media (min-width: 1024px) {
.adp-popup-type-content .adp-popup-outer {
flex-direction: row;
}
.adp-popup-type-content.adp-preview-image-left .adp-popup-close, .adp-popup-type-content.adp-preview-image-bottom .adp-popup-close {
color: var(--adp-popup-close-color);
}
.adp-popup-type-content.adp-preview-image-left .adp-popup-close:hover:before, .adp-popup-type-content.adp-preview-image-bottom .adp-popup-close:hover:before {
color: var(--adp-popup-close-hover-color);
}
.adp-popup-type-content.adp-preview-image-left .adp-popup-thumbnail {
order: 1;
}
.adp-popup-type-content.adp-preview-image-right .adp-popup-thumbnail {
order: 3;
}
.adp-popup-type-content.adp-preview-image-top .adp-popup-outer {
flex-direction: column;
}
.adp-popup-type-content.adp-preview-image-top .adp-popup-thumbnail img {
position: relative;
top: initial;
bottom: initial;
right: initial;
left: initial;
width: initial;
height: initial;
}
.adp-popup-type-content.adp-preview-image-bottom .adp-popup-outer {
flex-direction: column;
}
.adp-popup-type-content.adp-preview-image-bottom .adp-popup-thumbnail {
order: 3;
}
.adp-popup-type-content.adp-preview-image-bottom .adp-popup-thumbnail img {
position: relative;
top: initial;
bottom: initial;
right: initial;
left: initial;
width: initial;
height: initial;
}
.adp-popup-type-content .adp-popup-thumbnail {
position: relative;
flex: 1 0 50%;
order: 1;
}
.adp-popup-type-content .adp-popup-thumbnail img {
position: absolute;
display: block;
top: 0;
bottom: 0;
right: 0;
left: 0;
width: 100%;
height: 100%;
-o-object-fit: cover;
object-fit: cover;
}
.adp-popup-type-content .adp-popup-content {
padding: 80px;
flex: 1 0 50%;
order: 2;
}
.adp-popup-type-content .adp-popup-content:first-child:last-child {
flex: 1 0 100%;
}
.adp-popup-type-content .wp-block-cover:first-child:last-child {
margin: -80px;
}
}
.adp-popup-type-notification-box .adp-popup-outer,
.adp-popup-type-notification-bar .adp-popup-outer {
padding: 30px;
}
.adp-popup-type-notification-box .adp-popup-text,
.adp-popup-type-notification-bar .adp-popup-text {
padding-right: 10px;
font-size: var(--adp-popup-type-notification-text-font-size);
color: var(--adp-popup-type-notification-text-color);
}
.adp-popup-type-notification-box .adp-popup-text a,
.adp-popup-type-notification-bar .adp-popup-text a {
color: var(--adp-popup-type-notification-text-link-color);
text-decoration: underline;
}
.adp-popup-type-notification-box .adp-popup-text a:hover,
.adp-popup-type-notification-bar .adp-popup-text a:hover {
text-decoration: none;
}
.adp-popup-type-notification-box .adp-popup-button,
.adp-popup-type-notification-bar .adp-popup-button {
background: var(--adp-popup-type-notification-button-background);
margin-top: 1.5rem;
width: 100%;
color: var(--adp-popup-type-notification-button-color);
border-radius: var(--adp-popup-type-notification-button-border-radius);
}
.adp-popup-type-notification-box .adp-popup-close {
top: 15px;
right: 15px;
}
.adp-popup-type-notification-bar.adp-popup-location-top {
width: 100%;
max-width: 100%;
top: 0;
left: 0;
bottom: auto;
transform: none;
}
.adp-popup-type-notification-bar.adp-popup-location-bottom {
width: 100%;
max-width: 100%;
top: auto;
left: 0;
bottom: 0;
transform: none;
}
.adp-popup-type-notification-bar .adp-popup-outer {
padding-top: 20px;
padding-bottom: 20px;
padding-left: 60px;
padding-right: 60px;
}
@media (min-width: 720px) {
.adp-popup-type-notification-bar .adp-popup-outer {
justify-content: center;
align-items: center;
flex-direction: row;
flex-wrap: wrap;
margin: 0 auto;
padding-left: 40px;
padding-right: 40px;
}
.adp-popup-type-notification-bar .adp-popup-close {
top: 50%;
transform: translateY(-50%);
}
.adp-popup-type-notification-bar .adp-button {
margin-left: 1rem;
margin-top: 0;
width: auto;
}
}
@@ -0,0 +1 @@
<?php // Silence is golden
@@ -0,0 +1,429 @@
"use strict";
jQuery(document).ready(function($) {
var adpPopup = {};
( function() {
var $this;
adpPopup = {
sPrevious : window.scrollY,
sDirection: 'down',
/*
* Initialize
*/
init: function( e ) {
$this = adpPopup;
$this.popupInit( e );
// Init events.
$this.events( e );
},
/*
* Events
*/
events: function( e ) {
// Custom Events
$( document ).on( 'click', '.adp-popup-close', $this.closePopup );
$( document ).on( 'click', '.adp-popup-accept', $this.acceptPopup );
$( document ).on( 'click', '.adp-popup-accept', $this.closePopup );
// Checking this will cause popup to close when user presses key.
$( document ).keyup(function(e) {
// Press ESC to Close.
if ( e.key === 'Escape' ) {
$( '.adp-popup-open[data-esc-close="true"]' ).each(function(index, popup) {
$this.closePopup(popup);
});
}
// Press F4 to Close.
if ( e.key === 'F4' ) {
$( '.adp-popup-open[data-esc-close="true"]' ).each(function(index, popup) {
$this.closePopup(popup);
});
}
});
// Checking this will cause popup to close when user clicks on overlay.
$( document ).on( 'click', '.adp-popup-overlay', function( e ) {
$this.closePopup( $( this).prev() );
} );
},
/*
* Init popup elements
*/
popupInit: function( e ) {
// Set scroll direction.
$( document ).on( 'scroll', function() {
let scrollCurrent = window.scrollY;
// Set scroll temporary vars.
if ( scrollCurrent > $this.sPrevious ) {
$this.sDirection = 'down';
} else {
$this.sDirection = 'up';
}
$this.sPrevious = scrollCurrent;
});
// Open popup
$( '.adp-popup' ).each(function(index, popup) {
// Manual Launch.
if ( 'manual' === $( popup ).data( 'open-trigger' ) ) {
let selector = $( popup ).data( 'open-manual-selector' );
if ( selector ) {
$( document ).on( 'click', selector, function( e ) {
event.preventDefault();
$( popup ).removeClass( 'adp-popup-already-opened' );
$this.openPopup( popup );
} );
}
}
// Checks whether a popup should be displayed or not.
if ( ! $this.isAllowPopup( popup ) ) {
return;
}
$this.openTriggerPopup( popup );
});
},
/*
* Trigger open popup
*/
openTriggerPopup: function( e ) {
let popup = ( e.originalEvent ) ? this : e;
var trigger = $( popup ).data( 'open-trigger' );
// Page Viewed.
if ( 'viewed' === trigger ) {
$this.openPopup( popup );
}
// Time Delay.
if ( 'delay' === trigger ) {
setTimeout( function() {
$this.openPopup( popup );
}, $( popup ).data( 'open-delay-number' ) * 1000 );
}
// Exit Intent.
if ( 'exit' === trigger ) {
var showExit = true;
document.addEventListener( "mousemove", function( e ) {
// Get current scroll position
var scroll = window.pageYOffset || document.documentElement.scrollTop;
if ( ( e.pageY - scroll ) < 7 && showExit ) {
$this.openPopup( popup );
showExit = false;
}
} );
}
// Scroll Position.
if ( 'read' === trigger || 'scroll' === trigger ) {
var pointScrollType = $( popup ).data( 'open-scroll-type' );
var pointScrollPosition = $( popup ).data( 'open-scroll-position' );
if ( 'read' === trigger ) {
pointScrollType = '%';
pointScrollPosition = 100;
}
// Event scroll.
$( document ).on( 'scroll', function() {
// Type px.
if ( 'px' === pointScrollType ) {
if ( window.scrollY >= pointScrollPosition ) {
$this.openPopup( popup );
}
}
// Type %.
if ( '%' === pointScrollType ) {
if ( $this.getScrollPercent() >= pointScrollPosition ) {
$this.openPopup( popup );
}
}
} );
}
// Accept Agreement.
if ( 'accept' === trigger ) {
let accept = $this.getCookie( 'adp-popup-accept-' + $( popup ).data( 'id' ) || 0 );
if ( ! accept ) {
$this.openPopup( popup );
}
}
},
/*
* Trigger close popup
*/
closeTriggerPopup: function( e ) {
let popup = ( e.originalEvent ) ? this : e;
var trigger = $( popup ).data( 'close-trigger' );
// Time Delay.
if ( 'delay' === trigger ) {
setTimeout( function() {
$this.closePopup(popup);
}, $( popup ).data( 'close-delay-number' ) * 1000 );
}
// Scroll Position.
if ( 'scroll' === trigger ) {
var pointScrollType = $( popup ).data( 'close-scroll-type' );
var pointScrollPosition = $( popup ).data( 'close-scroll-position' );
var initScrollPx = $( popup ).data( 'init-scroll-px' );
var initScrollPercent = $( popup ).data( 'init-scroll-percent' );
// Event scroll.
$( document ).on( 'scroll', function() {
// Type px.
if ( 'px' === pointScrollType ) {
if ( 'up' === $this.sDirection && window.scrollY < ( initScrollPx - pointScrollPosition ) ) {
$this.closePopup( popup );
}
if ( 'down' === $this.sDirection && window.scrollY >= ( initScrollPx + pointScrollPosition ) ) {
$this.closePopup( popup );
}
}
// Type %.
if ( '%' === pointScrollType ) {
if ( 'up' === $this.sDirection && $this.getScrollPercent() < ( initScrollPercent - pointScrollPosition ) ) {
$this.closePopup(popup);
}
if ( 'down' === $this.sDirection && $this.getScrollPercent() >= ( initScrollPercent + pointScrollPosition ) ) {
$this.closePopup(popup);
}
}
} );
}
},
/*
* Open popup
*/
openPopup: function( e ) {
let popup = ( e.originalEvent ) ? this : e;
if ( $( popup ).hasClass( 'adp-popup-open' ) ) {
return;
}
// Check already opened.
if ( $( popup ).hasClass( 'adp-popup-already-opened' ) ) {
return;
}
// Display popup.
$( popup ).addClass( 'adp-popup-open' );
// Set current scroll.
$( popup ).data( 'init-scroll-px', window.scrollY );
$( popup ).data( 'init-scroll-percent', $this.getScrollPercent() );
// Hide body scroll.
if ( $( popup ).is( '[data-body-scroll-disable="true"]' ) ) {
$( 'body' ).addClass( 'adp-popup-scroll-hidden' );
}
// Set Cookie of Limit display.
let limit = parseInt( $this.getCookie( 'adp-popup-' + $( popup ).data( 'id' ) ) || 0 ) + 1;
$this.setCookie( 'adp-popup-' + $( popup ).data( 'id' ), limit, {
expires: $( popup ).data( 'limit-lifetime' )
} );
// Open animation.
let animation = $( popup ).data( 'open-animation' );
$this.applyAnimation( popup, animation );
// Init close trigger.
$this.closeTriggerPopup( popup );
},
/*
* Accept popup
*/
acceptPopup: function( e ) {
let $el = ( e.originalEvent ) ? this : e;
// Get popup container.
let popup = $( $el ).closest( '.adp-popup' );
// Set Cookie of Accept.
$this.setCookie( 'adp-popup-accept-' + $( popup ).data( 'id' ), 1, {
expires: 360
} );
},
/*
* Close popup
*/
closePopup: function( e ) {
let $el = ( e.originalEvent ) ? this : e;
// Get popup container.
let popup = $( $el ).closest( '.adp-popup' );
// Close animation.
let animation = $( popup ).data( 'exit-animation' );
$this.applyAnimation( popup, animation, function() {
// Already opened.
$( popup ).addClass( 'adp-popup-already-opened' );
// Hide popup.
$( popup ).removeClass( 'adp-popup-open' );
// Remove classes from body.
$( 'body' ).removeClass( 'adp-popup-scroll-hidden' );
} );
},
/*
* Checks whether a popup should be displayed or not
*/
isAllowPopup: function( e ) {
let popup = ( e.originalEvent ) ? this : e;
// Has user seen this popup before?
let limitDisplay = parseInt( $( popup ).data( 'limit-display' ) || 0 );
let limitDisplayCookie = parseInt( $this.getCookie( 'adp-popup-' + $( popup ).data( 'id' ) ) );
if ( limitDisplay && limitDisplayCookie && limitDisplayCookie >= limitDisplay ) {
return;
}
return true;
},
/*
* Apply animation
*/
applyAnimation: function( el, name, callback ) {
var popup = $( el ).closest( '.adp-popup' );
if ( typeof callback === 'function' ) {
var overlayName = 'popupExitFade';
} else {
var overlayName = 'popupOpenFade';
}
// Overlay Animation.
$( popup ).next( '.adp-popup-overlay' ).addClass( 'adp-popup-animated ' + overlayName )
.one( 'webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend', function() {
$( this ).removeClass( 'adp-popup-animated ' + overlayName );
} );
// Wrap Animation.
$( popup ).find( '.adp-popup-wrap' ).addClass( 'adp-popup-animated ' + name )
.one( 'webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend', function() {
// remove the animation classes after animation ends
// required in order to apply new animation on close
$( this ).removeClass( 'adp-popup-animated ' + name );
if ( typeof callback === 'function' ) {
callback();
}
} );
},
/*
* Set cookie
*/
getCookie: function( name ) {
var matches = document.cookie.match( new RegExp(
"(?:^|; )" + name.replace( /([\.$?*|{}\(\)\[\]\\\/\+^])/g, '\\$1' ) + "=([^;]*)"
) );
return matches ? decodeURIComponent( matches[ 1 ] ) : undefined;
},
/*
* Set cookie
*/
setCookie: function( name, value, options ) {
options = options || {};
options.path = options.hasOwnProperty( 'path' ) ? options.path : '/';
options.expires = parseInt( options.expires );
if ( typeof options.expires == "number" && options.expires ) {
options.expires = new Date().setDate(new Date().getDate() + options.expires );
options.expires = new Date(options.expires).toUTCString();
}
value = encodeURIComponent( value );
var updatedCookie = name + "=" + value;
for ( var propName in options ) {
updatedCookie += "; " + propName;
var propValue = options[ propName ];
if ( propValue !== true ) {
updatedCookie += "=" + propValue;
}
}
document.cookie = updatedCookie;
},
/*
* Get scroll percent
*/
getScrollPercent: function() {
var h = document.documentElement,
b = document.body,
st = 'scrollTop',
sh = 'scrollHeight';
return (h[st]||b[st]) / ((h[sh]||b[sh]) - h.clientHeight) * 100;
}
};
} )();
// Initialize.
adpPopup.init();
});
@@ -0,0 +1,31 @@
<?php
/**
* Fired when the plugin is uninstalled.
*
* When populating this file, consider the following flow
* of control:
*
* - This method should be static
* - Check if the $_REQUEST content actually is the plugin name
* - Run an admin referrer check to make sure it goes through authentication
* - Verify the output of $_GET makes sense
* - Repeat with other user roles. Best directly by using the links/query string parameters.
* - Repeat things for multisite. Once for a single site in the network, once sitewide.
*
* This file may be updated more in future version of the Boilerplate; however, this is the
* general skeleton and outline for how the file should work.
*
* For more information, see the following discussion:
* https://github.com/tommcfarlin/WordPress-Plugin-Boilerplate/pull/123#issuecomment-28541913
*
* @link https://codesupply.co
* @since 1.0.0
*
* @package ADP
*/
// If uninstall not called from WordPress, then exit.
if ( ! defined( 'WP_UNINSTALL_PLUGIN' ) ) {
exit;
}