getMessage(), ['status' => 400]); } catch (NotFoundException $e) { return new WP_Error('not_found', $e->getMessage(), ['status' => 404]); } catch (QueryExecutionException $e) { return new WP_Error('query_execution_error', $e->getMessage(), ['status' => 500]); } catch (ValidationException $e) { return new WP_Error('validation_error', $e->getMessage(), ['status' => 422]); } catch (Exception $e) { return new WP_Error('unknown_error', $e->getMessage(), ['status' => 500]); } } /** * Filter forms that have an integration enabled * * @param array $forms * @return array */ private static function filterFormsWithIntegration(array $forms, string $integration): array { return array_filter($forms, function ($form) use ($integration) { if (method_exists($form, 'getIntegrationSettings')) { $integrationSettings = $form->getIntegrationSettings(); return $integrationSettings->isIntegrationEnabled($integration) || empty($integrationSettings->toArray()); } return false; }); } /** * Check if a specific integration is enabled in settings * * @param self $instance * @param string $integration * @return bool */ private static function checkIntegrationEnabled(self $instance, string $integration): bool { $integrations = $instance->settingsService->getCategorySettings('integrations'); return !empty($integrations[$integration]['enabled']) && $integrations[$integration]['enabled'] === true; } }