91 lines
3.6 KiB
PHP
91 lines
3.6 KiB
PHP
<?php
|
|
|
|
namespace FluentForm\App\Services\Integrations;
|
|
|
|
use Exception;
|
|
use FluentForm\Framework\Support\Arr;
|
|
class GlobalIntegrationService
|
|
{
|
|
|
|
public function get($attr)
|
|
{
|
|
$settingsKey = sanitize_text_field(Arr::get($attr, 'settings_key'));
|
|
$settings = apply_filters_deprecated(
|
|
'fluentform_global_integration_settings_' . $settingsKey,
|
|
[
|
|
[]
|
|
],
|
|
FLUENTFORM_FRAMEWORK_UPGRADE,
|
|
'fluentform/global_integration_settings_' . $settingsKey,
|
|
'Use fluentform/global_integration_settings_' . $settingsKey . ' instead of fluentform_global_integration_settings_' . $settingsKey
|
|
);
|
|
$settings = apply_filters('fluentform/global_integration_settings_' . $settingsKey, $settings);
|
|
$fieldSettings = apply_filters_deprecated(
|
|
'fluentform_global_integration_fields_' . $settingsKey,
|
|
[
|
|
[]
|
|
],
|
|
FLUENTFORM_FRAMEWORK_UPGRADE,
|
|
'fluentform/global_integration_fields_' . $settingsKey,
|
|
'Use fluentform/global_integration_fields_' . $settingsKey . ' instead of fluentform_global_integration_fields_' . $settingsKey
|
|
);
|
|
$fieldSettings = apply_filters('fluentform/global_integration_fields_' . $settingsKey, $fieldSettings);
|
|
if (!$fieldSettings) {
|
|
$message = __('Sorry! No integration failed found with: ', 'fluentform').$settingsKey;
|
|
return [
|
|
'status' => false,
|
|
'message'=> $message,
|
|
'integration' => $settings,
|
|
'settings' => $fieldSettings,
|
|
];
|
|
}
|
|
|
|
if (!Arr::exists($fieldSettings,'save_button_text')) {
|
|
$fieldSettings['save_button_text'] = __('Save Settings', 'fluentform');
|
|
}
|
|
|
|
if (!Arr::exists($fieldSettings,'valid_message')) {
|
|
$fieldSettings['valid_message'] = __('Your API Key is valid', 'fluentform');
|
|
}
|
|
|
|
if (!Arr::exists($fieldSettings,'invalid_message')) {
|
|
$fieldSettings['invalid_message'] = __('Your API Key is not valid', 'fluentform');
|
|
}
|
|
return [
|
|
'status' => true,
|
|
'integration' => $settings,
|
|
'settings' => $fieldSettings,
|
|
];
|
|
}
|
|
|
|
public function isEnabled($integrationKey)
|
|
{
|
|
$globalModules = get_option('fluentform_global_modules_status');
|
|
$isEnabled = $globalModules && isset($globalModules[$integrationKey]) && 'yes' == $globalModules[$integrationKey];
|
|
|
|
return apply_filters('fluentform/is_integration_enabled_'.$integrationKey, $isEnabled);
|
|
}
|
|
|
|
/**
|
|
* @param $args - key value pair array
|
|
* @throws Exception
|
|
* @return void
|
|
*/
|
|
public function updateModuleStatus($args) {
|
|
$moduleKey = sanitize_text_field(Arr::get($args, 'module_key'));
|
|
$moduleStatus = sanitize_text_field(Arr::get($args, 'module_status'));
|
|
if (!$moduleKey || !in_array($moduleStatus, ['yes', 'no'])) {
|
|
// phpcs:ignore WordPress.Security.EscapeOutput.ExceptionNotEscaped -- Exception message, not output
|
|
throw new Exception(__('Status update failed. Not valid module or status', 'fluentform'));
|
|
}
|
|
try {
|
|
$modules = (array)get_option('fluentform_global_modules_status');
|
|
$modules[$moduleKey] = $moduleStatus;
|
|
update_option('fluentform_global_modules_status', $modules, 'no');
|
|
} catch (Exception $e) {
|
|
// phpcs:ignore WordPress.Security.EscapeOutput.ExceptionNotEscaped -- Exception message, not output
|
|
throw new Exception($e->getMessage());
|
|
}
|
|
}
|
|
}
|