PluginProbe
Fluent Forms – Customizable Contact Forms, Survey, Quiz, & Conversational Form Builder / 6.2.11
Fluent Forms – Customizable Contact Forms, Survey, Quiz, & Conversational Form Builder v6.2.11
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
fluentform / app / Services / FormBuilder / EditorShortCode.php

EditorShortCode.php in Fluent Forms – Customizable Contact Forms, Survey, Quiz, & Conversational Form Builder 6.2.11, at app/Services/FormBuilder/EditorShortCode.php

196 lines 8.1 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace FluentForm\App\Services\FormBuilder;
4
5 use FluentForm\App\Modules\Form\FormFieldsParser;
6
7 class EditorShortCode
8 {
9 public static function getGeneralShortCodes()
10 {
11 return [
12 'title' => __('General SmartCodes','fluentform'),
13 'shortcodes' => [
14 '{wp.admin_email}' => __('Admin Email', 'fluentform'),
15 '{wp.site_url}' => __('Site URL', 'fluentform'),
16 '{wp.site_title}' => __('Site Title', 'fluentform'),
17 '{ip}' => __('IP Address', 'fluentform'),
18 '{date.m/d/Y}' => __('Date (mm/dd/yyyy)', 'fluentform'),
19 '{date.d/m/Y}' => __('Date (dd/mm/yyyy)', 'fluentform'),
20 '{embed_post.ID}' => __('Embedded Post/Page ID', 'fluentform'),
21 '{embed_post.post_title}' => __('Embedded Post/Page Title', 'fluentform'),
22 '{embed_post.permalink}' => __('Embedded URL', 'fluentform'),
23 '{http_referer}' => __('HTTP Referer URL', 'fluentform'),
24 '{user.ID}' => __('User ID', 'fluentform'),
25 '{user.display_name}' => __('User Display Name', 'fluentform'),
26 '{user.first_name}' => __('User First Name', 'fluentform'),
27 '{user.last_name}' => __('User Last Name', 'fluentform'),
28 '{user.user_email}' => __('User Email', 'fluentform'),
29 '{user.user_login}' => __('User Username', 'fluentform'),
30 '{browser.name}' => __('User Browser Client', 'fluentform'),
31 '{browser.platform}' => __('User Operating System', 'fluentform'),
32 '{random_string.your_prefix}' => __('Random String with Prefix', 'fluentform'),
33 ],
34 ];
35 }
36
37 public static function getFormShortCodes($form)
38 {
39 $form = static::getForm($form);
40 $formFields = FormFieldsParser::getShortCodeInputs(
41 $form,
42 [
43 'admin_label', 'attributes', 'options',
44 ]
45 );
46
47 $formShortCodes = [
48 'shortcodes' => [],
49 'title' => __('Input Options','fluentform')
50 ];
51
52 $formShortCodes['shortcodes']['{all_data}'] = 'All Submitted Data';
53 $formShortCodes['shortcodes']['{all_data_without_hidden_fields}'] = 'All Data Without Hidden Fields';
54 foreach ($formFields as $key => $value) {
55 $formShortCodes['shortcodes']['{inputs.' . $key . '}'] = $value['admin_label'];
56 }
57
58 $formShortCodes['shortcodes']['{form_title}'] = __('Form Title', 'fluentform');
59
60 return $formShortCodes;
61 }
62
63 public static function getFormLabelShortCodes($form)
64 {
65 $form = static::getForm($form);
66 $formFields = FormFieldsParser::getShortCodeInputs($form, ['admin_label', 'label',]);
67 $formLabelShortCodes = [
68 'shortcodes' => [],
69 'title' => __('Label Options','fluentform')
70 ];
71 foreach ($formFields as $key => $value) {
72 $formLabelShortCodes['shortcodes']['{labels.' . $key . '}'] = wp_strip_all_tags ($value['admin_label']);
73 }
74 return $formLabelShortCodes;
75 }
76
77 public static function getSubmissionShortcodes($form = false)
78 {
79 $submissionProperties = [
80 '{submission.serial_number}' => __('#Submission Serial Number', 'fluentform'),
81 '{submission.id}' => __('Submission ID', 'fluentform'),
82 '{submission.user_id}' => __('User Id', 'fluentform'),
83 '{submission.entry_uid}' => __('Entry Unique ID', 'fluentform'),
84 '{submission.source_url}' => __('Source URL', 'fluentform'),
85 '{submission.browser}' => __('Submitter Browser', 'fluentform'),
86 '{submission.device}' => __('Submitter Device', 'fluentform'),
87 '{submission.status}' => __('Submission Status', 'fluentform'),
88 '{submission.created_at}' => __('Submission Create Date', 'fluentform'),
89 '{submission.admin_view_url}' => __('Submission Admin View URL', 'fluentform'),
90 ];
91
92 if ($form) {
93 $form = static::getForm($form);
94 if ($form && $form->has_payment) {
95 $submissionProperties['{submission.currency}'] = __('Currency', 'fluentform');
96 $submissionProperties['{submission.payment_method}'] = __('Payment Method', 'fluentform');
97 $submissionProperties['{submission.payment_status}'] = __('Payment Status', 'fluentform');
98 $submissionProperties['{submission.total_paid}'] = __('Paid Total Amount', 'fluentform');
99 $submissionProperties['{submission.payment_total}'] = __('Payment Amount', 'fluentform');
100 }
101 }
102
103 $submissionShortcodes = [
104 'title' => __('Entry Attributes','fluentform'),
105 'shortcodes' => $submissionProperties,
106 ];
107
108 return apply_filters('fluentform/submission_shortcodes', $submissionShortcodes, $form);
109 }
110
111 public static function getPaymentShortcodes($form)
112 {
113 return [
114 'title' => __('Payment Details','fluentform'),
115 'shortcodes' => [
116 '{payment.receipt}' => __('Payment Receipt', 'fluentform'),
117 '{payment.summary}' => __('Payment Summary', 'fluentform'),
118 '{payment.order_items}' => __('Order Items Table', 'fluentform'),
119 '{payment.payment_status}' => __('Payment Status', 'fluentform'),
120 '{payment.payment_total}' => __('Payment Total', 'fluentform'),
121 '{payment.payment_method}' => __('Payment Method', 'fluentform'),
122 ],
123 ];
124 }
125
126 public static function getShortCodes($form)
127 {
128 $form = static::getForm($form);
129 $groups = [
130 static::getFormShortCodes($form),
131 static::getFormLabelShortCodes($form),
132 static::getGeneralShortCodes(),
133 static::getSubmissionShortcodes($form),
134 ];
135
136 if ($form->has_payment) {
137 $groups[] = static::getPaymentShortcodes($form);
138 }
139
140 $groups = apply_filters_deprecated(
141 'fluentform_form_settings_smartcodes', [
142 $groups,
143 $form
144 ],
145 FLUENTFORM_FRAMEWORK_UPGRADE,
146 'fluentform/form_settings_smartcodes',
147 'Use fluentform/form_settings_smartcodes instead of fluentform_form_settings_smartcodes.'
148 );
149
150 return apply_filters('fluentform/form_settings_smartcodes', $groups, $form);
151 }
152
153 public static function parse($string, $data, ?callable $arrayFormatter = null)
154 {
155 if (is_array($string)) {
156 return static::parseArray($string, $data, $arrayFormatter);
157 }
158
159 return static::parseString($string, $data, $arrayFormatter);
160 }
161
162 public static function parseArray($string, $data, $arrayFormatter)
163 {
164 foreach ($string as $key => $value) {
165 if (is_array($value)) {
166 $string[$key] = static::parseArray($value, $data, $arrayFormatter);
167 } else {
168 $string[$key] = static::parseString($value, $data, $arrayFormatter);
169 }
170 }
171
172 return $string;
173 }
174
175 public static function parseString($string, $data, ?callable $arrayFormatter = null)
176 {
177 return preg_replace_callback('/{+(.*?)}/', function ($matches) use (&$data, &$arrayFormatter) {
178 if (! isset($data[$matches[1]])) {
179 return $matches[0];
180 } elseif (is_array($value = $data[$matches[1]])) {
181 return is_callable($arrayFormatter) ? $arrayFormatter($value) : implode(', ', $value);
182 }
183 return $data[$matches[1]];
184 }, $string);
185 }
186
187 protected static function getForm($form)
188 {
189 if (is_object($form)) {
190 return $form;
191 }
192
193 return wpFluent()->table('fluentform_forms')->find($form);
194 }
195 }
196