File "FormIntegrationService.php"
Full Path: /home/romayxjt/public_html/wp-content/plugins/fluentform/app/Services/Integrations/FormIntegrationService.php
File size: 10.55 KB
MIME-type: text/x-php
Charset: utf-8
<?php
namespace FluentForm\App\Services\Integrations;
use FluentForm\App\Models\FormMeta;
use FluentForm\Framework\Helpers\ArrayHelper as Arr;
class FormIntegrationService
{
public function find($attr)
{
$formId = intval(Arr::get($attr, 'form_id'));
$integrationId = intval(Arr::get($attr, 'integration_id'));
$integrationName = sanitize_text_field(Arr::get($attr, 'integration_name'));
$settings = [
'conditionals' => [
'conditions' => [],
'status' => false,
'type' => 'all',
],
'enabled' => true,
'list_id' => '',
'list_name' => '',
'name' => '',
'merge_fields' => [],
];
$mergeFields = false;
if ($integrationId) {
$feed = FormMeta::where(['form_id' => $formId, 'id' => $integrationId])->first();
if ($feed->value) {
$settings = json_decode($feed->value, true);
$settings = apply_filters_deprecated(
'fluentform_get_integration_values_' . $integrationName,
[
$settings,
$feed,
$formId
],
FLUENTFORM_FRAMEWORK_UPGRADE,
'fluentform/get_integration_values_' . $integrationName,
'Use fluentform/get_integration_values_' . $integrationName . ' instead of fluentform_get_integration_values_' . $integrationName
);
$settings = apply_filters('fluentform/get_integration_values_' . $integrationName, $settings, $feed, $formId);
if (!empty($settings['list_id'])) {
$mergeFields = apply_filters_deprecated(
'fluentform_get_integration_merge_fields_' . $integrationName,
[
false,
$settings['list_id'],
$formId
],
FLUENTFORM_FRAMEWORK_UPGRADE,
'fluentform/get_integration_merge_fields_' . $integrationName,
'Use fluentform/get_integration_merge_fields_' . $integrationName . ' instead of fluentform_get_integration_merge_fields_' . $integrationName
);
$mergeFields = apply_filters('fluentform/get_integration_merge_fields_' . $integrationName, false, $settings['list_id'], $formId);
}
}
} else {
$settings = apply_filters_deprecated(
'fluentform_get_integration_defaults_' . $integrationName,
[
false,
$formId
],
FLUENTFORM_FRAMEWORK_UPGRADE,
'fluentform/get_integration_defaults_' . $integrationName,
'Use fluentform/get_integration_defaults_' . $integrationName . ' instead of fluentform_get_integration_defaults_' . $integrationName
);
$settings = apply_filters('fluentform/get_integration_defaults_' . $integrationName, $settings, $formId);
}
if ('true' == $settings['enabled']) {
$settings['enabled'] = true;
} elseif ('false' == $settings['enabled'] || $settings['enabled']) {
$settings['enabled'] = false;
}
$settings = apply_filters_deprecated(
'fluentform_get_integration_settings_fields_' . $integrationName,
[
$settings,
$formId,
$settings
],
FLUENTFORM_FRAMEWORK_UPGRADE,
'fluentform/get_integration_settings_fields_' . $integrationName,
'Use fluentform/get_integration_settings_fields_' . $integrationName . ' instead of fluentform_get_integration_settings_fields_' . $integrationName
);
$settingsFields = apply_filters('fluentform/get_integration_settings_fields_' . $integrationName, $settings, $formId, $settings);
return ([
'settings' => $settings,
'settings_fields' => $settingsFields,
'merge_fields' => $mergeFields,
]);
}
public function update($attr)
{
$formId = intval(Arr::get($attr, 'form_id'));
$integrationId = intval(Arr::get($attr, 'integration_id'));
$integrationName = sanitize_text_field(Arr::get($attr, 'integration_name'));
$dataType = sanitize_text_field(Arr::get($attr, 'data_type'));
$status = Arr::get($attr, 'status', true);
$metaValue = Arr::get($attr, 'integration');
if ('stringify' == $dataType) {
$metaValue = \json_decode($metaValue, true);
} else {
$metaValue = wp_unslash($metaValue);
}
$isUpdatingStatus = empty($metaValue);
if ($isUpdatingStatus) {
$integrationData = FormMeta::findOrFail($integrationId);
$metaValue = \json_decode($integrationData->value, true);
$metaValue['enabled'] = $status;
$metaKey = $integrationData->meta_key;
} else {
if (empty($metaValue['name'])) {
$errors['name'] = [__('Feed name is required', 'fluentform')];
wp_send_json_error([
'message' => __('Validation Failed! Feed name is required', 'fluentform'),
'errors' => $errors
], 423);
}
$metaValue = apply_filters_deprecated(
'fluentform_save_integration_value_' . $integrationName,
[
$metaValue,
$integrationId,
$formId
],
FLUENTFORM_FRAMEWORK_UPGRADE,
'fluentform/save_integration_value_' . $integrationName,
'Use fluentform/save_integration_value_' . $integrationName . ' instead of fluentform_save_integration_value_' . $integrationName
);
$metaValue = apply_filters('fluentform/save_integration_value_' . $integrationName, $metaValue,
$integrationId, $formId);
$metaKey = $integrationName . '_feeds';
}
$data = [
'form_id' => $formId,
'meta_key' => $metaKey,
'value' => \json_encode($metaValue),
];
$data = apply_filters_deprecated(
'fluentform_save_integration_settings_' . $integrationName,
[
$data,
$integrationId
],
FLUENTFORM_FRAMEWORK_UPGRADE,
'fluentform/save_integration_settings_' . $integrationName,
'Use fluentform/save_integration_settings_' . $integrationName . ' instead of fluentform_save_integration_settings_' . $integrationName
);
$data = apply_filters('fluentform/save_integration_settings_' . $integrationName, $data, $integrationId);
$created = false;
if ($integrationId) {
FormMeta::where('form_id', $formId)
->where('id', $integrationId)
->update($data);
} else {
$integrationId = FormMeta::insertGetId($data);
$created = true;
}
return ([
'message' => __('Integration successfully saved', 'fluentform'),
'integration_id' => $integrationId,
'integration_name' => $integrationName,
'created' => $created,
]);
}
public function get($formId)
{
$notificationKeys = apply_filters_deprecated(
'fluentform_global_notification_types',
[
[],
$formId
],
FLUENTFORM_FRAMEWORK_UPGRADE,
'fluentform/global_notification_types',
'Use fluentform/global_notification_types instead of fluentform_global_notification_types.'
);
$notificationKeys = apply_filters('fluentform/global_notification_types', $notificationKeys, $formId);
$feeds = [];
if ($notificationKeys) {
$feeds = FormMeta::whereIn('meta_key', $notificationKeys)->where('form_id', $formId)->get();
}
$formattedFeeds = [];
if (!empty($feeds)) {
foreach ($feeds as $feed) {
$data = json_decode($feed->value, true);
$enabled = $data['enabled'];
if ($enabled && 'true' == $enabled) {
$enabled = true;
} elseif ('false' == $enabled) {
$enabled = false;
}
$feedData = [
'id' => $feed->id,
'name' => Arr::get($data, 'name'),
'enabled' => $enabled,
'provider' => $feed->meta_key,
'feed' => $data,
];
$feedData = apply_filters_deprecated(
'fluentform_global_notification_feed_' . $feed->meta_key,
[
$feedData,
$formId
],
FLUENTFORM_FRAMEWORK_UPGRADE,
'fluentform/global_notification_feed_' . $feed->meta_key,
'Use fluentform/global_notification_feed_' . $feed->meta_key . ' instead of fluentform_global_notification_feed_' . $feed->meta_key
);
$feedData = apply_filters('fluentform/global_notification_feed_' . $feed->meta_key, $feedData,
$formId);
$formattedFeeds[] = $feedData;
}
}
$availableIntegrations = apply_filters_deprecated(
'fluentform_get_available_form_integrations',
[
[],
$formId
],
FLUENTFORM_FRAMEWORK_UPGRADE,
'fluentform/get_available_form_integrations',
'Use fluentform/get_available_form_integrations instead of fluentform_get_available_form_integrations.'
);
$availableIntegrations = apply_filters('fluentform/get_available_form_integrations', $availableIntegrations, $formId);
return ([
'feeds' => $formattedFeeds,
'available_integrations' => $availableIntegrations,
'all_module_config_url' => admin_url('admin.php?page=fluent_forms_add_ons'),
]);
}
public function delete($id)
{
FormMeta::where('id',$id)->delete();
}
}