• File: wpr-popup-pro.php
  • Full Path: /home/bravrvjk/hpgt.org/wp-content/plugins/wpr-addons-pro/modules/popup-pro/wpr-popup-pro.php
  • Date Modified: 05/28/2025 4:55 AM
  • File size: 5.18 KB
  • MIME-type: text/x-php
  • Charset: utf-8
<?php

use Elementor\Controls_Manager;
use WprAddons\Classes\Utilities;

if ( ! defined( 'ABSPATH' ) ) exit; // Exit if accessed directly

class Wpr_Popup_Pro extends Wpr_Popup {

	public function add_control_popup_trigger() {
		$this->add_control(
			'popup_trigger',
			[
				'label'   => esc_html__( 'Open Popup', 'wpr-addons' ),
				'type'    => Controls_Manager::SELECT,
				'default' => 'load',
				'options' => [
					'load' => esc_html__( 'On Page Load', 'wpr-addons' ),
					'scroll' => esc_html__( 'On Page Scroll', 'wpr-addons' ),
					'element-scroll' => esc_html__( 'On Scroll to Element', 'wpr-addons' ),
					'date' => esc_html__( 'After Specific Date', 'wpr-addons' ),
					'inactivity'  => esc_html__( 'After User Inactivity', 'wpr-addons' ),
					'exit' => esc_html__( 'After User Exit Intent', 'wpr-addons' ),
					'custom' => esc_html__( 'Custom Trigger (Button Click)', 'wpr-addons' ),
				],
			]
		);
	}

	public function add_control_popup_show_again_delay() {
		$this->add_control(
			'popup_show_again_delay',
			[
				'label'   => esc_html__( 'Show Again Delay', 'wpr-addons' ),
				'type'    => Controls_Manager::SELECT,
				'default' => '0',
				'options' => [
					'0' => esc_html__( 'No Delay', 'wpr-addons' ),
					'60000' => esc_html__( '1 Minute', 'wpr-addons' ),
					'180000' => esc_html__( '3 Minute', 'wpr-addons' ),
					'300000' => esc_html__( '5 Minute', 'wpr-addons' ),
					'600000' => esc_html__( '10 Minute', 'wpr-addons' ),
					'1800000' => esc_html__( '30 Minute', 'wpr-addons' ),
					'3600000' => esc_html__( '1 Hour', 'wpr-addons' ),
					'10800000' => esc_html__( '3 Hour', 'wpr-addons' ),
					'21600000' => esc_html__( '6 Hour', 'wpr-addons' ),
					'43200000' => esc_html__( '12 Hour', 'wpr-addons' ),
					'86400000' => esc_html__( '1 Day', 'wpr-addons' ),
					'259200000' => esc_html__( '3 Days', 'wpr-addons' ),
					'432000000' => esc_html__( '5 Days', 'wpr-addons' ),
					'604800000' => esc_html__( '7 Days', 'wpr-addons' ),
					'864000000' => esc_html__( '10 Days', 'wpr-addons' ),
					'1296000000' => esc_html__( '15 Days', 'wpr-addons' ),
					'1728000000' => esc_html__( '20 Days', 'wpr-addons' ),
					'2628000000' => esc_html__( '1 Month', 'wpr-addons' ),
				],
				'description' => esc_html__( 'This option determines when to show popup again to a visitor after it is closed.', 'wpr-addons' ),
				'separator' => 'before'
			]
		);
	}

	public function add_controls_group_popup_settings() {

		$this->add_control(
			'popup_stop_after_date',
			[
				'label' => esc_html__( 'Stop Showing After Date', 'wpr-addons' ),
				'type' => Controls_Manager::SWITCHER,
				'separator' => 'before'
			]
		);

		$this->add_control(
			'popup_stop_after_date_select',
			[
				'label' => esc_html__( 'Select Date', 'wpr-addons' ),
				'label_block' => false,
				'type' => Controls_Manager::DATE_TIME,
				'default' => date( 'Y-m-d H:i', strtotime( '+1 day' ) + ( get_option( 'gmt_offset' ) * HOUR_IN_SECONDS ) ),
				'description' => sprintf( __( 'Set according to your WordPress timezone: %s.', 'wpr-addons' ), Elementor\Utils::get_timezone_string() ),
				'condition' => [
					'popup_stop_after_date!' => '',
				],
			]
		);

		$this->add_control(
			'popup_automatic_close_switch',
			[
				'label' => esc_html__( 'Automatic Closing Delay', 'wpr-addons' ),
				'type' => Controls_Manager::SWITCHER,
				'separator' => 'before'
			]
		);

		$this->add_control(
			'popup_automatic_close_delay',
			[
				'label' => esc_html__( 'Set Closing Delay (sec)', 'wpr-addons' ),
				'type' => Controls_Manager::NUMBER,
				'default' => 10,
				'condition' => [
					'popup_automatic_close_switch!' => '',
				],
			]
		);

		$this->add_control(
			'popup_disable_esc_key',
			[
				'label' => esc_html__( 'Prevent Closing on "ESC" Key', 'wpr-addons' ),
				'type' => Controls_Manager::SWITCHER,
				'separator' => 'before'
			]
		);

		$this->add_control(
			'popup_show_for_roles',
			[
				'label' => esc_html__( 'Show For Roles', 'wpr-addons' ),
				'type' => Controls_Manager::SELECT2,
				'options' => Utilities::get_user_roles(),
				'multiple' => 'true',
				'separator' => 'before'
			]
		);

		$this->add_control(
			'popup_show_via_referral',
			[
				'label' => esc_html__( 'Show according to URL Keyword', 'wpr-addons' ),
				'type' => Controls_Manager::SWITCHER,
				'separator' => 'before'
			]
		);

		$this->add_control(
			'popup_referral_keyword',
			[
				'label' => esc_html__( 'Enter Keyword', 'wpr-addons' ),
				'type' => Controls_Manager::TEXT,
				'default' => '',
				'description' => 'Popup will show up if the URL contains this Keyword.',
				'condition' => [
					'popup_show_via_referral' => 'yes',
				]
			]
		);

		$this->add_responsive_control(
			'popup_show_on_device',
			[
				'label' => esc_html__( 'Show on this Device', 'wpr-addons' ),
				'type' => Controls_Manager::SWITCHER,
				'default' => 'yes',
				'widescreen_default' => 'yes',
				'laptop_default' => 'yes',
				'tablet_extra_default' => 'yes',
				'tablet_default' => 'yes',
				'mobile_extra_default' => 'yes',
				'mobile_default' => 'yes',
				'separator' => 'before'
			]
		);
	}

}