PluginProbe
Fluent Forms – Customizable Contact Forms, Survey, Quiz, & Conversational Form Builder / 6.2.14
Fluent Forms – Customizable Contact Forms, Survey, Quiz, & Conversational Form Builder v6.2.14
6.2.14 6.2.13 6.2.12 6.2.10 6.2.11 6.2.9 6.2.8 6.2.7 6.2.6 6.2.5 6.2.4 6.2.3 6.2.2 3.6.22 3.6.31 3.6.40 3.6.41 3.6.42 3.6.50 3.6.51 3.6.60 3.6.61 3.6.62 3.6.64 3.6.65 All 196 releases
← All changes | app/Modules/Form/Transfer.php +46 -30 3.6.646.2.14 View file →
@@ -2,15 +2,20 @@
2 2
3 3 namespace FluentForm\App\Modules\Form;
4 4
5 5 use FluentForm\App\Helpers\Helper;
6 +use FluentForm\App\Services\Transfer\TransferService;
6 7 use FluentForm\Framework\Foundation\Application;
7 8 use FluentForm\Framework\Helpers\ArrayHelper;
8 -use FluentForm\Framework\Request\File;
9 +use FluentForm\Framework\Http\Request\File;
9 10
11 +/* @deprecated Current File FluentForm\App\Http\Controllers\TransferController */
12 +
10 13 class Transfer
11 14 {
12 15 /**
16 + * Request object
17 + *
13 18 * @var \FluentForm\Framework\Request\Request $request
14 19 */
15 20 protected $request;
16 21
@@ -46,15 +51,15 @@
46 51 $form->metas = $this->getFormMetas($item->id);
47 52 $forms[] = $form;
48 53 }
49 54
50 - $fileName = 'fluentform-export-forms-'. count($forms) .'-'. date('d-m-Y') . '.json';
55 + $fileName = 'fluentform-export-forms-' . count($forms) . '-' . date('d-m-Y') . '.json';
51 56
52 57 header('Content-disposition: attachment; filename=' . $fileName);
53 58
54 59 header('Content-type: application/json');
55 60
56 - echo json_encode(array_values($forms));
61 + echo json_encode(array_values($forms)); // phpcs:ignore WordPress.Security.EscapeOutput.OutputNotEscaped -- $forms is escaped before being passed in.
57 62
58 63 die();
59 64 }
60 65
@@ -62,9 +67,9 @@
62 67 * Import forms from a previously exported JSON file.
63 68 */
64 69 public function import()
65 70 {
66 - $file = $this->request->get('file');
71 + $file = $this->request->file('file');
67 72
68 73 if ($file instanceof File) {
69 74 $forms = \json_decode($file->getContents(), true);
70 75 $insertedForms = [];
@@ -71,15 +76,15 @@
71 76 if ($forms && is_array($forms)) {
72 77 foreach ($forms as $formItem) {
73 78 // First of all make the form object.
74 79 $formFields = json_encode([]);
75 - if($fields = ArrayHelper::get($formItem, 'form', '')) {
80 + if ($fields = ArrayHelper::get($formItem, 'form', '')) {
76 81 $formFields = json_encode($fields);
77 - } else if($fields = ArrayHelper::get($formItem, 'form_fields', '')) {
82 + } elseif ($fields = ArrayHelper::get($formItem, 'form_fields', '')) {
78 83 $formFields = json_encode($fields);
79 84 } else {
80 85 wp_send_json([
81 - 'message' => __('You have a faulty JSON file, please export the Fluent Forms again.', 'fluentform')
86 + 'message' => __('You have a faulty JSON file, please export the Fluent Forms again.', 'fluentform'),
82 87 ], 422);
83 88 }
84 89
85 90 $form = [
@@ -84,54 +89,56 @@
84 89
85 90 $form = [
86 91 'title' => ArrayHelper::get($formItem, 'title'),
87 92 'form_fields' => $formFields,
88 - 'status' => ArrayHelper::get($formItem, 'status', 'published'),
93 + 'status' => ArrayHelper::get($formItem, 'status', 'published'),
89 94 'has_payment' => ArrayHelper::get($formItem, 'has_payment', 0),
90 - 'type' => ArrayHelper::get($formItem, 'type', 'form'),
91 - 'created_by' => get_current_user_id()
95 + 'type' => ArrayHelper::get($formItem, 'type', 'form'),
96 + 'created_by' => get_current_user_id(),
92 97 ];
93 98
94 - if( ArrayHelper::get($formItem, 'conditions')) {
99 + if (ArrayHelper::get($formItem, 'conditions')) {
95 100 $form['conditions'] = ArrayHelper::get($formItem, 'conditions');
96 101 }
97 102
98 - if(isset($formItem['appearance_settings'])) {
103 + if (isset($formItem['appearance_settings'])) {
99 104 $form['appearance_settings'] = $formItem['appearance_settings'];
100 105 }
101 106
102 107 // Insert the form to the DB.
103 - $formId = wpFluent()->table('fluentform_forms')->insert($form);
108 + $formId = wpFluent()->table('fluentform_forms')->insertGetId($form);
104 109
105 110 $insertedForms[$formId] = [
106 - 'title' => $form['title'],
107 - 'edit_url' => admin_url('admin.php?page=fluent_forms&route=editor&form_id='.$formId)
111 + 'title' => $form['title'],
112 + 'edit_url' => admin_url('admin.php?page=fluent_forms&route=editor&form_id=' . $formId),
108 113 ];
109 114
110 - if(isset($formItem['metas'])) {
111 -
115 + if (isset($formItem['metas'])) {
112 116 foreach ($formItem['metas'] as $metaData) {
117 + $metaKey = sanitize_text_field(ArrayHelper::get($metaData, 'meta_key'));
113 118 $settings = [
114 119 'form_id' => $formId,
115 - 'meta_key' => $metaData['meta_key'],
116 - 'value' => $metaData['value']
120 + 'meta_key' => $metaKey,
121 + 'value' => TransferService::sanitizeImportedMetaValue(
122 + $metaKey,
123 + ArrayHelper::get($metaData, 'value')
124 + ),
117 125 ];
118 126 wpFluent()->table('fluentform_form_meta')->insert($settings);
119 127 }
120 -
121 128 } else {
122 129 $oldKeys = [
123 130 'formSettings',
124 131 'notifications',
125 132 'mailchimp_feeds',
126 - 'slack'
133 + 'slack',
127 134 ];
128 135 foreach ($oldKeys as $key) {
129 - if(isset($formItem[$key])) {
136 + if (isset($formItem[$key])) {
130 137 $settings = [
131 138 'form_id' => $formId,
132 139 'meta_key' => $key,
133 - 'value' => json_encode($formItem[$key])
140 + 'value' => json_encode($formItem[$key]),
134 141 ];
135 142 wpFluent()->table('fluentform_form_meta')->insert($settings);
136 143 }
137 144 }
@@ -136,21 +143,30 @@
136 143 }
137 144 }
138 145 }
139 146
140 - do_action('fluentform_form_imported', $formId);
147 + do_action_deprecated(
148 + 'fluentform_form_imported',
149 + [
150 + $formId
151 + ],
152 + FLUENTFORM_FRAMEWORK_UPGRADE,
153 + 'fluentform/form_imported',
154 + 'Use fluentform/form_imported instead of fluentform_form_imported.'
155 + );
141 156
157 + do_action('fluentform/form_imported', $formId);
142 158 }
143 159
144 160 wp_send_json([
145 - 'message' => __('You form has been successfully imported.', 'fluentform'),
146 - 'inserted_forms' => $insertedForms
161 + 'message' => __('You form has been successfully imported.', 'fluentform'),
162 + 'inserted_forms' => $insertedForms,
147 163 ], 200);
148 164 }
149 165 }
150 166
151 167 wp_send_json([
152 - 'message' => __('You have a faulty JSON file, please export the Fluent Forms again.', 'fluentform')
168 + 'message' => __('You have a faulty JSON file, please export the Fluent Forms again.', 'fluentform'),
153 169 ], 422);
154 170 }
155 171
156 172 public function getFormMetas($formId)
@@ -159,8 +175,8 @@
159 175 ->table('fluentform_form_meta')
160 176 ->select(['meta_key', 'value'])
161 177 ->where('form_id', $formId)
162 178 ->whereNotIn('meta_key', ['_total_views', '_ff_form_styler_css'])
163 - ->get();
164 -
179 + ->get()
180 + ->toArray();
165 181 }
166 -}
182 +}