PluginProbe
Fluent Booking – The Ultimate Appointments Scheduling, Events Booking, Events Calendar Solution / trunk
Fluent Booking – The Ultimate Appointments Scheduling, Events Booking, Events Calendar Solution vtrunk
2.4.0 2.3.0 2.2.5 2.2.0 2.1.2 2.1.1 trunk 1.10.0 1.10.01 1.10.02 1.5.0 1.5.01 1.5.02 1.5.1 1.5.10 1.5.20 1.5.21 1.5.22 1.5.23 1.5.24 1.5.25 1.6.0 1.7.0 1.7.1 1.7.2 All 33 releases
← All changes | app/Services/Integrations/CalendarIntegrationService.php +23 -5 1.5.21trunk View file →
@@ -28,10 +28,18 @@
28 28 ];
29 29
30 30 $mergeFields = false;
31 31 if ($integrationId) {
32 - $feed = Meta::where(['object_id' => $slotId, 'id' => $integrationId])->first();
32 + $feed = Meta::where('id', $integrationId)
33 + ->where('object_id', $slotId)
34 + ->where('object_type', 'integration')
35 + ->where('key', $integrationName . '_feeds')
36 + ->first();
33 37
38 + if (!$feed) {
39 + throw new ValidationException(__('Integration feed not found', 'fluent-booking'), 404); // phpcs:ignore WordPress.Security.EscapeOutput.ExceptionNotEscaped
40 + }
41 +
34 42 if ($feed->value) {
35 43 $settings = $feed->value;
36 44 $settings = apply_filters('fluent_booking/get_integration_values_' . $integrationName, $settings, $feed, $slotId);
37 45 if (!empty($settings['list_id'])) {
@@ -41,12 +49,15 @@
41 49 } else {
42 50 $settings = apply_filters('fluent_booking/get_integration_defaults_' . $integrationName, false, $slotId);
43 51 }
44 52
45 - if ('true' == $settings['enabled']) {
53 + $enabled = Arr::get($settings, 'enabled');
54 + if ('true' === $enabled) {
46 55 $settings['enabled'] = true;
47 - } elseif ('false' == $settings['enabled'] || $settings['enabled']) {
56 + } elseif ('false' === $enabled) {
48 57 $settings['enabled'] = false;
58 + } else {
59 + $settings['enabled'] = (bool) $enabled;
49 60 }
50 61
51 62 $settingsFields = apply_filters('fluent_booking/get_integration_settings_fields_' . $integrationName, $settings, $slotId, $settings);
52 63
@@ -179,9 +190,16 @@
179 190 // 'all_module_config_url' => admin_url('admin.php?page=fluent_forms_add_ons'),
180 191 ];
181 192 }
182 193
183 - public function delete($id)
194 + public function delete($integrationId, $eventId = null)
184 195 {
185 - Meta::where('id', $id)->delete();
196 + $query = Meta::where('id', $integrationId);
197 +
198 + if ($eventId !== null) {
199 + $query->where('object_id', $eventId)
200 + ->where('object_type', 'integration');
201 + }
202 +
203 + return $query->delete();
186 204 }
187 205 }