PluginProbe
Formidable Forms – WordPress Form Builder for Contact Forms, Calculators, Quizzes & More / 5.5.1
Formidable Forms – WordPress Form Builder for Contact Forms, Calculators, Quizzes & More v5.5.1
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
← All changes | classes/factories/FrmFieldFactory.php +32 -49 6.355.5.1 View file →
@@ -12,9 +12,9 @@
12 12 * Create an instance of an FrmFieldValueSelector object
13 13 *
14 14 * @since 2.03.05
15 15 *
16 - * @param int $field_id
16 + * @param int $field_id
17 17 * @param array $args
18 18 *
19 19 * @return FrmFieldValueSelector
20 20 */
@@ -25,9 +25,9 @@
25 25 $selector = apply_filters( 'frm_create_field_value_selector', $selector, $field_id, $args );
26 26 }
27 27
28 28 if ( ! is_object( $selector ) ) {
29 - return new FrmFieldValueSelector( $field_id, $args );
29 + $selector = new FrmFieldValueSelector( $field_id, $args );
30 30 }
31 31
32 32 return $selector;
33 33 }
@@ -34,16 +34,14 @@
34 34
35 35 /**
36 36 * @since 3.0
37 37 *
38 - * @param array|object $field
39 - *
40 - * @return FrmFieldType
38 + * @param object|array $field
41 39 */
42 40 public static function get_field_factory( $field ) {
43 41 if ( is_object( $field ) ) {
44 42 $field_info = self::get_field_object( $field );
45 - } elseif ( ! empty( $field['id'] ) ) {
43 + } elseif ( isset( $field['id'] ) && $field['id'] ) {
46 44 $field_info = self::get_field_object( $field['id'] );
47 45 } else {
48 46 $field_info = self::get_field_type( $field['type'], $field );
49 47 }
@@ -50,13 +48,8 @@
50 48
51 49 return $field_info;
52 50 }
53 51
54 - /**
55 - * @param int|object|string $field
56 - *
57 - * @return FrmFieldType
58 - */
59 52 public static function get_field_object( $field ) {
60 53 if ( ! is_object( $field ) ) {
61 54 $field = FrmField::getOne( $field );
62 55 }
@@ -66,16 +59,22 @@
66 59
67 60 /**
68 61 * @since 3.0
69 62 *
70 - * @param string $field_type
71 - * @param array|int|object $field
63 + * @param string $field_type
64 + * @param int|array|object $field
72 65 *
73 - * @return FrmFieldType
66 + * @return stdClass
74 67 */
75 68 public static function get_field_type( $field_type, $field = 0 ) {
76 69 $class = self::get_field_type_class( $field_type );
77 - return $class ? new $class( $field, $field_type ) : new FrmFieldDefault( $field, $field_type );
70 + if ( empty( $class ) ) {
71 + $field = new FrmFieldDefault( $field, $field_type );
72 + } else {
73 + $field = new $class( $field, $field_type );
74 + }
75 +
76 + return $field;
78 77 }
79 78
80 79 /**
81 80 * @since 3.0
@@ -85,34 +84,26 @@
85 84 * @return string
86 85 */
87 86 private static function get_field_type_class( $field_type ) {
88 87 $type_classes = array(
89 - 'text' => 'FrmFieldText',
90 - 'textarea' => 'FrmFieldTextarea',
91 - 'select' => 'FrmFieldSelect',
92 - 'radio' => 'FrmFieldRadio',
93 - 'checkbox' => 'FrmFieldCheckbox',
94 - 'number' => 'FrmFieldNumber',
95 - 'phone' => 'FrmFieldPhone',
96 - 'url' => 'FrmFieldUrl',
97 - 'website' => 'FrmFieldUrl',
98 - 'email' => 'FrmFieldEmail',
99 - 'user_id' => 'FrmFieldUserID',
100 - 'html' => 'FrmFieldHTML',
101 - 'hidden' => 'FrmFieldHidden',
102 - 'captcha' => 'FrmFieldCaptcha',
103 - 'name' => 'FrmFieldName',
104 - 'credit_card' => 'FrmFieldCreditCard',
105 - 'address' => 'FrmFieldAddress',
106 - // Submit button field.
107 - FrmSubmitHelper::FIELD_TYPE => 'FrmFieldSubmit',
108 - FrmFieldGdprHelper::FIELD_TYPE => FrmFieldGdprHelper::get_gdpr_field_class( $field_type ),
109 - 'product' => 'FrmFieldProduct',
110 - 'quantity' => 'FrmFieldQuantity',
111 - 'total' => 'FrmFieldTotal',
88 + 'text' => 'FrmFieldText',
89 + 'textarea' => 'FrmFieldTextarea',
90 + 'select' => 'FrmFieldSelect',
91 + 'radio' => 'FrmFieldRadio',
92 + 'checkbox' => 'FrmFieldCheckbox',
93 + 'number' => 'FrmFieldNumber',
94 + 'phone' => 'FrmFieldPhone',
95 + 'url' => 'FrmFieldUrl',
96 + 'website' => 'FrmFieldUrl',
97 + 'email' => 'FrmFieldEmail',
98 + 'user_id' => 'FrmFieldUserID',
99 + 'html' => 'FrmFieldHTML',
100 + 'hidden' => 'FrmFieldHidden',
101 + 'captcha' => 'FrmFieldCaptcha',
102 + 'name' => 'FrmFieldName',
112 103 );
113 104
114 - $class = $type_classes[ $field_type ] ?? '';
105 + $class = isset( $type_classes[ $field_type ] ) ? $type_classes[ $field_type ] : '';
115 106
116 107 return apply_filters( 'frm_get_field_type_class', $class, $field_type );
117 108 }
118 109
@@ -117,29 +108,21 @@
117 108 }
118 109
119 110 /**
120 111 * @since 3.0
121 - *
122 - * @param string $type
123 - *
124 - * @return mixed
125 112 */
126 113 public static function field_has_html( $type ) {
127 114 $has_html = self::field_has_property( $type, 'has_html' );
128 115
129 - // This hook is here for reverse compatibility since 3.0
116 + // this hook is here for reverse compatibility since 3.0
130 117 return apply_filters( 'frm_show_custom_html', $has_html, $type );
131 118 }
132 119
133 120 /**
134 121 * @since 3.0
135 - *
136 - * @param string $type
137 - * @param string $property
138 - *
139 - * @return mixed
140 122 */
141 123 public static function field_has_property( $type, $property ) {
142 124 $field = self::get_field_type( $type );
125 +
143 126 return $field->{$property};
144 127 }
145 128 }