PluginProbe
Formidable Forms – WordPress Form Builder for Contact Forms, Calculators, Quizzes & More / 6.16.1
Formidable Forms – WordPress Form Builder for Contact Forms, Calculators, Quizzes & More v6.16.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 +29 -33 6.336.16.1 View file →
@@ -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 }
@@ -35,15 +35,14 @@
35 35 /**
36 36 * @since 3.0
37 37 *
38 38 * @param array|object $field
39 - *
40 39 * @return FrmFieldType
41 40 */
42 41 public static function get_field_factory( $field ) {
43 42 if ( is_object( $field ) ) {
44 43 $field_info = self::get_field_object( $field );
45 - } elseif ( ! empty( $field['id'] ) ) {
44 + } elseif ( isset( $field['id'] ) && $field['id'] ) {
46 45 $field_info = self::get_field_object( $field['id'] );
47 46 } else {
48 47 $field_info = self::get_field_type( $field['type'], $field );
49 48 }
@@ -73,9 +72,15 @@
73 72 * @return FrmFieldType
74 73 */
75 74 public static function get_field_type( $field_type, $field = 0 ) {
76 75 $class = self::get_field_type_class( $field_type );
77 - return $class ? new $class( $field, $field_type ) : new FrmFieldDefault( $field, $field_type );
76 + if ( empty( $class ) ) {
77 + $field = new FrmFieldDefault( $field, $field_type );
78 + } else {
79 + $field = new $class( $field, $field_type );
80 + }
81 +
82 + return $field;
78 83 }
79 84
80 85 /**
81 86 * @since 3.0
@@ -85,33 +90,29 @@
85 90 * @return string
86 91 */
87 92 private static function get_field_type_class( $field_type ) {
88 93 $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',
94 + 'text' => 'FrmFieldText',
95 + 'textarea' => 'FrmFieldTextarea',
96 + 'select' => 'FrmFieldSelect',
97 + 'radio' => 'FrmFieldRadio',
98 + 'checkbox' => 'FrmFieldCheckbox',
99 + 'number' => 'FrmFieldNumber',
100 + 'phone' => 'FrmFieldPhone',
101 + 'url' => 'FrmFieldUrl',
102 + 'website' => 'FrmFieldUrl',
103 + 'email' => 'FrmFieldEmail',
104 + 'user_id' => 'FrmFieldUserID',
105 + 'html' => 'FrmFieldHTML',
106 + 'hidden' => 'FrmFieldHidden',
107 + 'captcha' => 'FrmFieldCaptcha',
108 + 'name' => 'FrmFieldName',
109 + 'credit_card' => 'FrmFieldCreditCard',
105 110 // Submit button field.
106 - FrmSubmitHelper::FIELD_TYPE => 'FrmFieldSubmit',
107 - FrmFieldGdprHelper::FIELD_TYPE => FrmFieldGdprHelper::get_gdpr_field_class( $field_type ),
108 - 'product' => 'FrmFieldProduct',
109 - 'quantity' => 'FrmFieldQuantity',
110 - 'total' => 'FrmFieldTotal',
111 + FrmSubmitHelper::FIELD_TYPE => 'FrmFieldSubmit',
111 112 );
112 113
113 - $class = $type_classes[ $field_type ] ?? '';
114 + $class = isset( $type_classes[ $field_type ] ) ? $type_classes[ $field_type ] : '';
114 115
115 116 return apply_filters( 'frm_get_field_type_class', $class, $field_type );
116 117 }
117 118
@@ -116,17 +117,13 @@
116 117 }
117 118
118 119 /**
119 120 * @since 3.0
120 - *
121 - * @param string $type
122 - *
123 - * @return mixed
124 121 */
125 122 public static function field_has_html( $type ) {
126 123 $has_html = self::field_has_property( $type, 'has_html' );
127 124
128 - // This hook is here for reverse compatibility since 3.0
125 + // this hook is here for reverse compatibility since 3.0
129 126 return apply_filters( 'frm_show_custom_html', $has_html, $type );
130 127 }
131 128
132 129 /**
@@ -133,12 +130,11 @@
133 130 * @since 3.0
134 131 *
135 132 * @param string $type
136 133 * @param string $property
137 - *
138 - * @return mixed
139 134 */
140 135 public static function field_has_property( $type, $property ) {
141 136 $field = self::get_field_type( $type );
137 +
142 138 return $field->{$property};
143 139 }
144 140 }