PluginProbe
Formidable Forms – WordPress Form Builder for Contact Forms, Calculators, Quizzes & More / 6.27
Formidable Forms – WordPress Form Builder for Contact Forms, Calculators, Quizzes & More v6.27
6.35 6.34 6.33.1 6.33 6.32.1 6.32 6.31 6.25 6.25.1 6.26 6.26.1 6.27 6.28 6.29 6.3 6.3.1 6.3.2 6.30 6.4 6.4.1 6.4.2 6.5 6.5.1 6.5.2 6.5.3 All 141 releases
formidable / classes / models / fields / FrmFieldUserID.php

FrmFieldUserID.php in Formidable Forms – WordPress Form Builder for Contact Forms, Calculators, Quizzes & More 6.27, at classes/models/fields/FrmFieldUserID.php

147 lines 3.5 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 if ( ! defined( 'ABSPATH' ) ) {
3 die( 'You are not allowed to call this page directly.' );
4 }
5
6 /**
7 * @since 3.0
8 */
9 class FrmFieldUserID extends FrmFieldType {
10
11 /**
12 * @var string
13 *
14 * @since 3.0
15 */
16 protected $type = 'user_id';
17
18 /**
19 * @var bool
20 *
21 * @since 3.0
22 */
23 protected $has_input = false;
24
25 /**
26 * @var bool
27 *
28 * @since 3.0
29 */
30 protected $has_html = false;
31
32 /**
33 * @var bool
34 *
35 * @since 3.0
36 */
37 protected $holds_email_values = true;
38
39 /**
40 * @var bool
41 */
42 protected $array_allowed = false;
43
44 /**
45 * @return string
46 */
47 protected function include_form_builder_file() {
48 return FrmAppHelper::plugin_path() . '/classes/views/frm-fields/back-end/field-user-id.php';
49 }
50
51 public function prepare_field_html( $args ) {
52 $args = $this->fill_display_field_values( $args );
53 $value = $this->get_field_value( $args );
54
55 echo '<input type="hidden" name="' . esc_attr( $args['field_name'] ) . '" id="' . esc_attr( $args['html_id'] ) . '" value="' . esc_attr( $value ) . '" data-frmval="' . esc_attr( $value ) . '"/>' . "\n"; // phpcs:ignore SlevomatCodingStandard.Files.LineLength.LineTooLong
56 }
57
58 /**
59 * @since 4.03.06
60 *
61 * @param array $args Field display arguments.
62 *
63 * @return int|string
64 */
65 protected function get_field_value( $args ) {
66 $user_ID = get_current_user_id();
67 $user_ID = $user_ID ? $user_ID : '';
68 $posted_value = FrmAppHelper::is_admin() && $_POST && isset( $_POST['item_meta'][ $this->field['id'] ] ); // phpcs:ignore WordPress.Security.NonceVerification.Missing
69 $action = $args['action'] ?? $args['form_action'] ?? '';
70 $updating = $action === 'update';
71 return is_numeric( $this->field['value'] ) || $posted_value || $updating ? $this->field['value'] : $user_ID;
72 }
73
74 public function validate( $args ) {
75 // phpcs:ignore Universal.Operators.StrictComparisons
76 if ( '' == $args['value'] ) {
77 return array();
78 }
79
80 // Make sure we have a user ID.
81 if ( ! is_numeric( $args['value'] ) ) {
82 $args['value'] = FrmAppHelper::get_user_id_param( $args['value'] );
83 FrmEntriesHelper::set_posted_value( $this->field, $args['value'], $args );
84 }
85
86 // Add user id to post variables to be saved with entry.
87 $_POST['frm_user_id'] = $args['value'];
88
89 return array();
90 }
91
92 /**
93 * @param array|string $value
94 * @param array $atts
95 *
96 * @return array|string A string is returned, but the return signature should match FrmFieldType.
97 */
98 protected function prepare_display_value( $value, $atts ) {
99 $user_info = $this->prepare_user_info_attribute( $atts );
100 return FrmFieldsHelper::get_user_display_name( $value, $user_info, $atts );
101 }
102
103 /**
104 * Generate the user info attribute for displaying
105 * a value from the user ID
106 * From the get_display_name() function
107 *
108 * @since 3.0
109 *
110 * @param array $atts
111 *
112 * @return string
113 */
114 private function prepare_user_info_attribute( $atts ) {
115 if ( isset( $atts['show'] ) ) {
116 return $atts['show'] === 'id' ? 'ID' : $atts['show'];
117 }
118
119 return apply_filters( 'frm_user_id_display', 'display_name' );
120 }
121
122 /**
123 * @param string $value
124 * @param array $atts
125 *
126 * @return int
127 */
128 protected function prepare_import_value( $value, $atts ) {
129 return FrmAppHelper::get_user_id_param( trim( $value ) );
130 }
131
132 /**
133 * @since 4.0.04
134 *
135 * @param mixed $value Field value passed by reference.
136 *
137 * @return void
138 */
139 public function sanitize_value( &$value ) {
140 if ( '' === $value ) {
141 // Allow for an empty User ID. Return early to prevent it from getting set to 0.
142 return;
143 }
144 FrmAppHelper::sanitize_value( 'intval', $value );
145 }
146 }
147