2024-05-06 11:04:37 +07:00

128 lines
2.7 KiB
PHP

<?php
namespace ElementorPro\Modules\Popup\DisplaySettings;
use Elementor\Controls_Manager;
if ( ! defined( 'ABSPATH' ) ) {
exit; // Exit if accessed directly
}
class Triggers extends Base {
/**
* Get element name.
*
* Retrieve the element name.
*
* @since 2.4.0
* @access public
*
* @return string The name.
*/
public function get_name() {
return 'popup_triggers';
}
protected function register_controls() {
$this->start_controls_section( 'triggers' );
$this->start_settings_group( 'page_load', esc_html__( 'On Page Load', 'elementor-pro' ) );
$this->add_settings_group_control(
'delay',
[
'type' => Controls_Manager::NUMBER,
'label' => esc_html__( 'Within', 'elementor-pro' ) . ' (sec)',
'default' => 0,
'min' => 0,
'step' => 0.1,
]
);
$this->end_settings_group();
$this->start_settings_group( 'scrolling', esc_html__( 'On Scroll', 'elementor-pro' ) );
$this->add_settings_group_control(
'direction',
[
'type' => Controls_Manager::SELECT,
'label' => esc_html__( 'Direction', 'elementor-pro' ),
'default' => 'down',
'options' => [
'down' => esc_html__( 'Down', 'elementor-pro' ),
'up' => esc_html__( 'Up', 'elementor-pro' ),
],
]
);
$this->add_settings_group_control(
'offset',
[
'type' => Controls_Manager::NUMBER,
'label' => esc_html__( 'Within', 'elementor-pro' ) . ' (%)',
'default' => 50,
'min' => 1,
'max' => 100,
'condition' => [
'direction' => 'down',
],
]
);
$this->end_settings_group();
$this->start_settings_group( 'scrolling_to', esc_html__( 'On Scroll To Element', 'elementor-pro' ) );
$this->add_settings_group_control(
'selector',
[
'type' => Controls_Manager::TEXT,
'label' => esc_html__( 'Selector', 'elementor-pro' ),
'placeholder' => '.my-class',
'ai' => [
'active' => false,
],
],
);
$this->end_settings_group();
$this->start_settings_group( 'click', esc_html__( 'On Click', 'elementor-pro' ) );
$this->add_settings_group_control(
'times',
[
'label' => esc_html__( 'Clicks', 'elementor-pro' ),
'type' => Controls_Manager::NUMBER,
'default' => 1,
'min' => 1,
]
);
$this->end_settings_group();
$this->start_settings_group( 'inactivity', esc_html__( 'After Inactivity', 'elementor-pro' ) );
$this->add_settings_group_control(
'time',
[
'type' => Controls_Manager::NUMBER,
'label' => esc_html__( 'Within', 'elementor-pro' ) . ' (sec)',
'default' => 30,
'min' => 1,
'step' => 0.1,
]
);
$this->end_settings_group();
$this->start_settings_group( 'exit_intent', esc_html__( 'On Page Exit Intent', 'elementor-pro' ) );
$this->end_settings_group();
$this->end_controls_section();
}
}