PluginProbe
Fluent Forms – Customizable Contact Forms, Survey, Quiz, & Conversational Form Builder / 3.6.21
Fluent Forms – Customizable Contact Forms, Survey, Quiz, & Conversational Form Builder v3.6.21
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 3.6.66 All 195 releases
fluentform / app / Services / FormBuilder / EditorShortCode.php

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

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