init_templates();
}
private function init_templates() {
$this->templates = [
'newsletter' => [
'name' => __('Newsletter Signup', 'master-addons'),
'description' => __('Collect email addresses with a clean newsletter form', 'master-addons'),
'type' => 'modal',
'category' => 'lead-generation',
'content' => '
',
'settings' => [
'trigger_scroll_percent' => 50,
'popup_width' => '500px',
'popup_animation' => 'fade'
]
],
'discount' => [
'name' => __('Discount Offer', 'master-addons'),
'description' => __('Promote special offers and discounts', 'master-addons'),
'type' => 'modal',
'category' => 'sales',
'content' => '',
'settings' => [
'popup_width' => '450px',
'popup_animation' => 'zoom'
]
],
'cookie-consent' => [
'name' => __('Cookie Consent', 'master-addons'),
'description' => __('GDPR compliant cookie consent notice', 'master-addons'),
'type' => 'notification',
'category' => 'compliance',
'content' => '',
'settings' => [
'popup_position' => 'bottom-center',
'popup_width' => '100%',
'show_overlay' => false,
'close_on_overlay' => false
]
],
'contact' => [
'name' => __('Contact Form', 'master-addons'),
'description' => __('Quick contact form for visitor inquiries', 'master-addons'),
'type' => 'slide-in',
'category' => 'lead-generation',
'content' => '',
'settings' => [
'trigger_scroll_percent' => 75,
'popup_position' => 'bottom-right',
'popup_width' => '350px',
'popup_animation' => 'slide-left'
]
],
'announcement' => [
'name' => __('Announcement Bar', 'master-addons'),
'description' => __('Important announcements and notices', 'master-addons'),
'type' => 'notification',
'category' => 'informational',
'content' => '',
'settings' => [
'popup_position' => 'top-center',
'popup_width' => '100%',
'show_overlay' => false,
'popup_animation' => 'slide-down'
]
],
'exit-intent' => [
'name' => __('Exit Intent', 'master-addons'),
'description' => __('Capture leaving visitors with special offer', 'master-addons'),
'type' => 'modal',
'category' => 'lead-generation',
'content' => '',
'settings' => [
'popup_width' => '500px',
'popup_animation' => 'zoom',
'show_frequency' => 'once_session'
]
],
'video' => [
'name' => __('Video Popup', 'master-addons'),
'description' => __('Showcase videos in a popup', 'master-addons'),
'type' => 'modal',
'category' => 'media',
'content' => '',
'settings' => [
'popup_width' => '800px',
'popup_animation' => 'fade'
]
],
'age-verification' => [
'name' => __('Age Verification', 'master-addons'),
'description' => __('Verify visitor age before accessing content', 'master-addons'),
'type' => 'full-screen',
'category' => 'compliance',
'content' => '',
'settings' => [
'show_close_button' => false,
'close_on_overlay' => false,
'close_on_esc' => false,
'show_frequency' => 'once'
]
],
'social-follow' => [
'name' => __('Social Media Follow', 'master-addons'),
'description' => __('Encourage social media follows', 'master-addons'),
'type' => 'corner',
'category' => 'social',
'content' => '',
'settings' => [
'trigger_scroll_percent' => 80,
'popup_position' => 'bottom-left',
'popup_width' => '250px',
'popup_animation' => 'slide-up'
]
],
'survey' => [
'name' => __('Quick Survey', 'master-addons'),
'description' => __('Collect feedback with a quick survey', 'master-addons'),
'type' => 'modal',
'category' => 'feedback',
'content' => '',
'settings' => [
'popup_width' => '400px',
'popup_animation' => 'fade'
]
]
];
}
public function render() {
$categories = $this->get_categories();
?>
__('Lead Generation', 'master-addons'),
'sales' => __('Sales & Promotions', 'master-addons'),
'compliance' => __('Compliance', 'master-addons'),
'informational' => __('Informational', 'master-addons'),
'social' => __('Social Media', 'master-addons'),
'media' => __('Media', 'master-addons'),
'feedback' => __('Feedback', 'master-addons'),
];
}
private function get_type_label($type) {
$types = [
'notification' => __('Notification Bar', 'master-addons'),
'modal' => __('Modal', 'master-addons'),
'slide-in' => __('Slide-in', 'master-addons'),
'full-screen' => __('Full Screen', 'master-addons'),
'corner' => __('Corner Popup', 'master-addons'),
];
return isset($types[$type]) ? $types[$type] : $type;
}
public function get_template($key) {
return isset($this->templates[$key]) ? $this->templates[$key] : null;
}
}