PluginProbe
Fluent Booking – The Ultimate Appointments Scheduling, Events Booking, Events Calendar Solution / 2.5.0
Fluent Booking – The Ultimate Appointments Scheduling, Events Booking, Events Calendar Solution v2.5.0
2.5.0 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 All 34 releases
← All changes | app/Services/Integrations/CalendarIntegrationService.php +23 -5 1.5.0 → 2.5.0 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 }