PluginProbe
Fluent Forms – Customizable Contact Forms, Survey, Quiz, & Conversational Form Builder / 6.2.14
Fluent Forms – Customizable Contact Forms, Survey, Quiz, & Conversational Form Builder v6.2.14
6.2.14 6.2.13 6.2.12 6.2.10 6.2.11 6.2.9 6.2.8 6.2.7 6.2.6 6.2.5 6.2.4 6.2.3 6.2.2 3.6.22 3.6.31 3.6.40 3.6.41 3.6.42 3.6.50 3.6.51 3.6.60 3.6.61 3.6.62 3.6.64 3.6.65 All 196 releases
← All changes | app/Services/Integrations/IntegrationManager.php +7 -192 3.6.516.2.14 View file →
@@ -1,198 +1,13 @@
1 1 <?php
2 2
3 3 namespace FluentForm\App\Services\Integrations;
4 4
5 -abstract class IntegrationManager
5 +use FluentForm\App\Http\Controllers\IntegrationManagerController;
6 +
7 +/**
8 + * @deprecated deprecated use FluentForm\App\Http\Controllers\IntegrationManagerController;
9 + */
10 +abstract class IntegrationManager extends IntegrationManagerController
6 11 {
7 - protected $app = null;
8 - protected $subscriber = null;
9 - protected $title = '';
10 - protected $description = '';
11 - protected $integrationKey = '';
12 - protected $optionKey = '';
13 - protected $settingsKey = '';
14 - protected $priority = 11;
15 - public $logo = '';
16 - public $hasGlobalMenu = true;
17 - public $category = 'crm';
18 - public $disableGlobalSettings = 'no';
19 12
20 - public function __construct($app, $title, $integrationKey, $optionKey, $settingsKey, $priority = 11)
21 - {
22 - $this->app = $app;
23 - $this->title = $title;
24 - $this->integrationKey = $integrationKey;
25 - $this->optionKey = $optionKey;
26 - $this->settingsKey = $settingsKey;
27 - $this->priority = $priority;
28 - }
29 -
30 - public function registerAdminHooks()
31 - {
32 - $isEnabled = $this->isEnabled();
33 -
34 - add_filter('fluentform_global_addons', function ($addons) use ($isEnabled) {
35 - $addons[$this->integrationKey] = [
36 - 'title' => $this->title,
37 - 'category' => $this->category,
38 - 'disable_global_settings' => $this->disableGlobalSettings,
39 - 'description' => $this->description,
40 - 'config_url' => ($this->disableGlobalSettings != 'yes') ? admin_url('admin.php?page=fluent_forms_settings#general-'.$this->integrationKey.'-settings') : '',
41 - 'logo' => $this->logo,
42 - 'enabled' => ($isEnabled) ? 'yes' : 'no'
43 - ];
44 - return $addons;
45 - }, $this->priority, 1);
46 -
47 - if(!$isEnabled) {
48 - return;
49 - }
50 -
51 - $this->registerNotificationHooks();
52 -
53 - // Global Settings Here
54 -
55 - if ($this->hasGlobalMenu) {
56 - add_filter('fluentform_global_settings_components', array($this, 'addGlobalMenu'));
57 - add_filter('fluentform_global_integration_settings_' . $this->integrationKey, array($this, 'getGlobalSettings'), $this->priority, 1);
58 - add_filter('fluentform_global_integration_fields_' . $this->integrationKey, array($this, 'getGlobalFields'), $this->priority, 1);
59 - add_action('fluentform_save_global_integration_settings_' . $this->integrationKey, array($this, 'saveGlobalSettings'), $this->priority, 1);
60 - }
61 -
62 - add_filter('fluentform_global_notification_types', array($this, 'addNotificationType'), $this->priority);
63 -
64 - add_filter('fluentform_get_available_form_integrations', array($this, 'pushIntegration'), $this->priority, 2);
65 -
66 - add_filter('fluentform_global_notification_feed_' . $this->settingsKey, array($this, 'setFeedAtributes'), 10, 2);
67 -
68 - add_filter('fluentform_get_integration_defaults_' . $this->integrationKey, array($this, 'getIntegrationDefaults'), 10, 2);
69 - add_filter('fluentform_get_integration_settings_fields_' . $this->integrationKey, array($this, 'getSettingsFields'), 10, 2);
70 - add_filter('fluentform_get_integration_merge_fields_' . $this->integrationKey, array($this, 'getMergeFields'), 10, 3);
71 -
72 - add_filter('fluentform_save_integration_settings_' . $this->integrationKey, array($this, 'setMetaKey'), 10, 2);
73 - add_filter('fluentform_get_integration_values_' . $this->integrationKey, array($this, 'prepareIntegrationFeed'), 10, 3);
74 - }
75 -
76 - public function registerNotificationHooks()
77 - {
78 - if ($this->isConfigured()) {
79 - add_filter('fluentform_global_notification_active_types', array($this, 'addActiveNotificationType'), $this->priority);
80 - add_action('fluentform_integration_notify_' . $this->settingsKey, array($this, 'notify'), $this->priority, 4);
81 - }
82 - }
83 -
84 - public function notify($feed, $formData, $entry, $form)
85 - {
86 - // Each integration have to implement this notify method
87 - return;
88 - }
89 -
90 - public function addGlobalMenu($setting)
91 - {
92 - $setting[$this->integrationKey] = [
93 - 'hash' => 'general-' . $this->integrationKey . '-settings',
94 - 'component' => 'general-integration-settings',
95 - 'settings_key' => $this->integrationKey,
96 - 'title' => $this->title
97 - ];
98 - return $setting;
99 - }
100 -
101 - public function addNotificationType($types)
102 - {
103 - $types[] = $this->settingsKey;
104 - return $types;
105 - }
106 -
107 - public function addActiveNotificationType($types)
108 - {
109 - $types[$this->settingsKey] = $this->integrationKey;
110 - return $types;
111 - }
112 -
113 - public function getGlobalSettings($settings)
114 - {
115 - return $settings;
116 - }
117 -
118 - public function saveGlobalSettings($settings)
119 - {
120 - return $settings;
121 - }
122 -
123 - public function getGlobalFields($fields)
124 - {
125 - return $fields;
126 - }
127 -
128 - public function setMetaKey($data, $integrationId)
129 - {
130 - $data['meta_key'] = $this->settingsKey;
131 - return $data;
132 - }
133 -
134 - public function prepareIntegrationFeed($setting, $feed, $formId)
135 - {
136 - $defaults = $this->getIntegrationDefaults([], $formId);
137 -
138 - foreach ($setting as $settingKey => $settingValue) {
139 - if ($settingValue == 'true') {
140 - $setting[$settingKey] = true;
141 - } else if ($settingValue == 'false') {
142 - $setting[$settingKey] = false;
143 - } else if ($settingKey == 'conditionals') {
144 - if ($settingValue['status'] == 'true') {
145 - $settingValue['status'] = true;
146 - } else if ($settingValue['status'] == 'false') {
147 - $settingValue['status'] = false;
148 - }
149 - $setting['conditionals'] = $settingValue;
150 - }
151 - }
152 -
153 - if (!empty($setting['list_id'])) {
154 - $setting['list_id'] = (string)$setting['list_id'];
155 - }
156 -
157 - return wp_parse_args($setting, $defaults);
158 - }
159 -
160 - public abstract function getIntegrationDefaults($settings, $formId);
161 -
162 - public abstract function pushIntegration($integrations, $formId);
163 -
164 - public abstract function getSettingsFields($settings, $formId);
165 -
166 - public abstract function getMergeFields($list, $listId, $formId);
167 -
168 - public function setFeedAtributes($feed, $formId)
169 - {
170 - $feed['provider'] = $this->integrationKey;
171 - $feed['provider_logo'] = $this->logo;
172 - return $feed;
173 - }
174 -
175 - public function isConfigured()
176 - {
177 - $globalStatus = $this->getApiSettings();
178 - return $globalStatus && $globalStatus['status'];
179 - }
180 -
181 - public function isEnabled()
182 - {
183 - $globalModules = get_option('fluentform_global_modules_status');
184 - return $globalModules && isset($globalModules[$this->integrationKey]) && $globalModules[$this->integrationKey] == 'yes';
185 - }
186 -
187 - public function getApiSettings()
188 - {
189 - $settings = get_option($this->optionKey);
190 - if (!$settings || empty($settings['status'])) {
191 - $settings = [
192 - 'apiKey' => '',
193 - 'status' => false
194 - ];
195 - }
196 - return $settings;
197 - }
198 -}
13 +}