PluginProbe
NotificationX – FOMO, Live Sales Notification, WooCommerce Sales Popup, GDPR, Social Proof, Announcement Banner & Floating Notification Bar / trunk
NotificationX – FOMO, Live Sales Notification, WooCommerce Sales Popup, GDPR, Social Proof, Announcement Banner & Floating Notification Bar vtrunk
3.3.0 3.2.14 3.2.13 3.2.12 3.2.11 3.2.10 3.2.9 3.2.8 3.2.7 trunk 0.2.5.5 0.2.5.6 0.2.5.7 1.0.0 1.0.1 1.0.2 1.0.3 1.1.0 1.1.1 1.1.2 1.1.3 1.1.4 1.2.0 1.2.1 1.2.2 All 155 releases
notificationx / includes / Types / EmailSubscription.php

EmailSubscription.php in NotificationX – FOMO, Live Sales Notification, WooCommerce Sales Popup, GDPR, Social Proof, Announcement Banner & Floating Notification Bar trunk, at includes/Types/EmailSubscription.php

158 lines 6.1 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /**
3 * Extension Abstract
4 *
5 * @package NotificationX\Extensions
6 */
7
8 namespace NotificationX\Types;
9
10 use NotificationX\Extensions\GlobalFields;
11 use NotificationX\GetInstance;
12 use NotificationX\Modules;
13
14 /**
15 * Extension Abstract for all Extension.
16 * @method static EmailSubscription get_instance($args = null)
17 */
18 class EmailSubscription extends Types {
19 /**
20 * Instance of Admin
21 *
22 * @var Admin
23 */
24 use GetInstance;
25
26 public $priority = 65;
27 public $is_pro = true;
28 public $module = [
29 'modules_mailchimp',
30 'modules_convertkit',
31 'modules_mailchimp',
32 'modules_zapier',
33 ];
34 public $default_source = 'mailchimp';
35
36 /**
37 * Initially Invoked when initialized.
38 */
39 public function __construct(){
40 parent::__construct();
41 $this->id = 'email_subscription';
42 }
43
44 /**
45 * Runs when modules is enabled.
46 *
47 * @return void
48 */
49 public function init(){
50 parent::init();
51 $this->title = __('Email Subscription', 'notificationx');
52 $this->popup = [
53 "denyButtonText" => __("<a href='https://notificationx.com/docs/mailchimp-email-subscription-alert/' target='_blank'>More Info</a>", "notificationx"),
54 "confirmButtonText" => __("<a href='https://notificationx.com/#pricing' target='_blank'>Upgrade to PRO</a>", "notificationx"),
55 // phpcs:disable PluginCheck.CodeAnalysis.Offloading.OffloadedContent -- False positive for this context: these are HTML email bodies and remote documentation/tutorial links in admin help text, not offloaded plugin assets. Audited 2026-07-16.
56 "html"=> __('
57 <span>Show popups to display which users subscribed to your Newsletter.</span>
58 <video id="pro_alert_video_popup" type="text/html" allowfullscreen width="450" height="235" autoplay loop muted>
59 <source src="https://notificationx.com/wp-content/uploads/2024/01/How-to-Display-Email-Subscription-Alerts-using-NotificationX.mp4" type="video/mp4">
60 </video>
61 ', 'notificationx')
62 // phpcs:enable PluginCheck.CodeAnalysis.Offloading.OffloadedContent
63 ];
64
65 $common_fields = [
66 'first_param' => 'tag_first_name',
67 'custom_first_param' => __('Someone' , 'notificationx'),
68 'second_param' => __('just subscribed to', 'notificationx'),
69 'third_param' => 'tag_title',
70 'custom_third_param' => __('Anonymous Title', 'notificationx'),
71 'fourth_param' => 'tag_time',
72 'custom_fourth_param' => __( 'Some time ago', 'notificationx' ),
73 ];
74
75 $this->themes = [
76 'theme-one' => [
77 'source' => NOTIFICATIONX_ADMIN_URL . 'images/extensions/themes/subscriptions/mailchimp-theme-1.jpg',
78 'image_shape' => 'rounded',
79 'template' => $common_fields,
80 ],
81 'theme-two' => [
82 'source' => NOTIFICATIONX_ADMIN_URL . 'images/extensions/themes/subscriptions/mailchimp-theme-2.png',
83 'template' => $common_fields,
84 'image_shape' => 'circle',
85 ],
86 'theme-three' => [
87 'source' => NOTIFICATIONX_ADMIN_URL . 'images/extensions/themes/subscriptions/mailchimp-theme-three.jpg',
88 'image_shape' => 'square',
89 'template' => $common_fields,
90 ],
91 'maps_theme' => [
92 'source' => NOTIFICATIONX_ADMIN_URL . 'images/extensions/themes/subscriptions/maps-theme-subscribed.png',
93 'image_shape' => 'square',
94 'show_notification_image' => 'maps_image',
95 ],
96 ];
97
98 $this->res_themes = [
99 'res-theme-one' => [
100 'source' => NOTIFICATIONX_ADMIN_URL . 'images/extensions/themes/res_subscriptions/mailchimp-res-theme-1.png',
101 '_template' => 'mailchimp_template_new',
102 'is_pro' => true,
103 ],
104 'res-theme-two' => [
105 'source' => NOTIFICATIONX_ADMIN_URL . 'images/extensions/themes/res_subscriptions/mailchimp-res-theme-2.png',
106 '_template' => 'mailchimp_template_new',
107 'is_pro' => true,
108 ],
109 'res-theme-three' => [
110 'source' => NOTIFICATIONX_ADMIN_URL . 'images/extensions/themes/res_subscriptions/mailchimp-res-theme-3.png',
111 '_template' => 'mailchimp_template_new',
112 'is_pro' => true,
113 ],
114 'subscriptions-res-theme-four' => [
115 'source' => NOTIFICATIONX_ADMIN_URL . 'images/extensions/themes/res_subscriptions/mailchimp-res-theme-4.png',
116 '_template' => 'maps_template_new',
117 'is_pro' => true,
118 ],
119 ];
120
121 $this->templates = [
122 'mailchimp_template_new' => [
123 'first_param' => GlobalFields::get_instance()->common_name_fields(),
124 'third_param' => [
125 'tag_title' => __('List Title', 'notificationx'),
126 // 'tag_anonymous_title' => __('Anonymous Title' , 'notificationx'),
127 ],
128 'fourth_param' => [
129 'tag_time' => __('Definite Time', 'notificationx'),
130 'tag_sometime' => __('Some time ago', 'notificationx'),
131 ],
132 '_themes' => [
133 "{$this->id}_theme-one",
134 "{$this->id}_theme-two",
135 "{$this->id}_theme-three",
136 "{$this->id}_maps_theme",
137 ],
138 ],
139 ];
140 }
141
142 public function preview_entry($entry, $settings){
143 $entry = array_merge($entry, [
144 "title" => "NotificationX Pro",
145 ]);
146
147 if('email_subscription_maps_theme' !== $settings['theme']){
148 $entry['image_data'] = array(
149 'url' => NOTIFICATIONX_PUBLIC_URL . 'image/icons/pink-face-looped.gif',
150 'alt' => '',
151 'classes' => 'greview_icon',
152 );
153 }
154 return $entry;
155 }
156
157 }
158