PluginProbe
Fluent Forms – Customizable Contact Forms, Survey, Quiz, & Conversational Form Builder / 4.3.18
Fluent Forms – Customizable Contact Forms, Survey, Quiz, & Conversational Form Builder v4.3.18
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 4.3.18, at app/Services/FormBuilder/EditorShortCode.php

166 lines 6.8 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',
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',
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 return $formShortCodes;
59 }
60
61 public static function getSubmissionShortcodes($form = false)
62 {
63 $submissionProperties = [
64 '{submission.id}' => __('Submission ID', 'fluentform'),
65 '{submission.serial_number}' => __('Submission Serial Number', 'fluentform'),
66 '{submission.source_url}' => __('Source URL', 'fluentform'),
67 '{submission.user_id}' => __('User Id', 'fluentform'),
68 '{submission.browser}' => __('Submitter Browser', 'fluentform'),
69 '{submission.device}' => __('Submitter Device', 'fluentform'),
70 '{submission.status}' => __('Submission Status', 'fluentform'),
71 '{submission.created_at}' => __('Submission Create Date', 'fluentform'),
72 '{submission.admin_view_url}' => __('Submission Admin View URL', 'fluentform'),
73 ];
74
75 if ($form) {
76 $form = static::getForm($form);
77 if ($form && $form->has_payment) {
78 $submissionProperties['{submission.currency}'] = __('Currency', 'fluentform');
79 $submissionProperties['{submission.payment_method}'] = __('Payment Method', 'fluentform');
80 $submissionProperties['{submission.payment_status}'] = __('Payment Status', 'fluentform');
81 $submissionProperties['{submission.total_paid}'] = __('Paid Total Amount', 'fluentform');
82 $submissionProperties['{submission.payment_total}'] = __('Payment Amount', 'fluentform');
83 }
84 }
85
86 return [
87 'title' => 'Entry Attributes',
88 'shortcodes' => $submissionProperties,
89 ];
90 }
91
92 public static function getPaymentShortcodes($form)
93 {
94 return [
95 'title' => 'Payment Details',
96 'shortcodes' => [
97 '{payment.receipt}' => __('Payment Receipt', 'fluentform'),
98 '{payment.summary}' => __('Payment Summary', 'fluentform'),
99 '{payment.order_items}' => __('Order Items Table', 'fluentform'),
100 '{payment.payment_status}' => __('Payment Status', 'fluentform'),
101 '{payment.payment_total}' => __('Payment Total', 'fluentform'),
102 '{payment.payment_method}' => __('Payment Method', 'fluentform'),
103 ],
104 ];
105 }
106
107 public static function getShortCodes($form)
108 {
109 $form = static::getForm($form);
110 $groups = [
111 static::getFormShortCodes($form),
112 static::getGeneralShortCodes(),
113 static::getSubmissionShortcodes($form),
114 ];
115
116 if ($form->has_payment) {
117 $groups[] = static::getPaymentShortcodes($form);
118 }
119
120 return apply_filters('fluentform_form_settings_smartcodes', $groups, $form);
121 }
122
123 public static function parse($string, $data, callable $arrayFormatter = null)
124 {
125 if (is_array($string)) {
126 return static::parseArray($string, $data, $arrayFormatter);
127 }
128
129 return static::parseString($string, $data, $arrayFormatter);
130 }
131
132 public static function parseArray($string, $data, $arrayFormatter)
133 {
134 foreach ($string as $key => $value) {
135 if (is_array($value)) {
136 $string[$key] = static::parseArray($value, $data, $arrayFormatter);
137 } else {
138 $string[$key] = static::parseString($value, $data, $arrayFormatter);
139 }
140 }
141
142 return $string;
143 }
144
145 public static function parseString($string, $data, callable $arrayFormatter = null)
146 {
147 return preg_replace_callback('/{+(.*?)}/', function ($matches) use (&$data, &$arrayFormatter) {
148 if (! isset($data[$matches[1]])) {
149 return $matches[0];
150 } elseif (is_array($value = $data[$matches[1]])) {
151 return is_callable($arrayFormatter) ? $arrayFormatter($value) : implode(', ', $value);
152 }
153 return $data[$matches[1]];
154 }, $string);
155 }
156
157 protected static function getForm($form)
158 {
159 if (is_object($form)) {
160 return $form;
161 }
162
163 return wpFluent()->table('fluentform_forms')->find($form);
164 }
165 }
166