PluginProbe
Formidable Forms – WordPress Form Builder for Contact Forms, Calculators, Quizzes & More / trunk
Formidable Forms – WordPress Form Builder for Contact Forms, Calculators, Quizzes & More vtrunk
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/models/FrmEntryMeta.php +30 -17 6.30 → trunk View file →
@@ -5,16 +5,20 @@
5 5
6 6 class FrmEntryMeta {
7 7
8 8 /**
9 - * @param int $entry_id
10 - * @param int $field_id
11 - * @param string $meta_key usually set to '' as this parameter is no longer used.
12 - * @param mixed $meta_value
9 + * @since 6.35 Added the $field parameter.
13 10 *
11 + * @param int $entry_id
12 + * @param int $field_id
13 + * @param string $meta_key usually set to '' as this parameter is no longer used.
14 + * @param mixed $meta_value
15 + * @param stdClass|null $field The field $field_id belongs to, when the caller already has
16 + * it loaded. Looked up here when it is not passed.
17 + *
14 18 * @return int
15 19 */
16 - public static function add_entry_meta( $entry_id, $field_id, $meta_key, $meta_value ) {
20 + public static function add_entry_meta( $entry_id, $field_id, $meta_key, $meta_value, $field = null ) {
17 21 global $wpdb;
18 22
19 23 if ( FrmAppHelper::is_empty_value( $meta_value ) ) {
20 24 // Don't save blank fields
@@ -27,9 +31,9 @@
27 31 'field_id' => $field_id,
28 32 'created_at' => current_time( 'mysql', 1 ),
29 33 );
30 34
31 - self::set_value_before_save( $new_values );
35 + self::set_value_before_save( $new_values, $field );
32 36 $new_values = apply_filters( 'frm_add_entry_meta', $new_values );
33 37 $query_results = $wpdb->insert( $wpdb->prefix . 'frm_item_metas', $new_values );
34 38
35 39 if ( $query_results ) {
@@ -41,16 +45,20 @@
41 45 return 0;
42 46 }
43 47
44 48 /**
45 - * @param int $entry_id
46 - * @param int $field_id
47 - * @param string $meta_key Deprecated.
48 - * @param array|string $meta_value
49 + * @since 6.35 Added the $field parameter.
49 50 *
51 + * @param int $entry_id
52 + * @param int $field_id
53 + * @param string $meta_key Deprecated.
54 + * @param array|string $meta_value
55 + * @param stdClass|null $field The field $field_id belongs to, when the caller already has
56 + * it loaded. Looked up here when it is not passed.
57 + *
50 58 * @return bool|int
51 59 */
52 - public static function update_entry_meta( $entry_id, $field_id, $meta_key, $meta_value ) {
60 + public static function update_entry_meta( $entry_id, $field_id, $meta_key, $meta_value, $field = null ) {
53 61 if ( ! $field_id ) {
54 62 return false;
55 63 }
56 64
@@ -61,9 +69,9 @@
61 69 'field_id' => $field_id,
62 70 );
63 71 $where_values = $values;
64 72 $values['meta_value'] = $meta_value;
65 - self::set_value_before_save( $values );
73 + self::set_value_before_save( $values, $field );
66 74 $values = apply_filters( 'frm_update_entry_meta', $values );
67 75
68 76 if ( is_array( $values['meta_value'] ) ) {
69 77 $values['meta_value'] = array_filter( $values['meta_value'], 'FrmAppHelper::is_not_empty_value' );
@@ -78,15 +86,20 @@
78 86 }
79 87
80 88 /**
81 89 * @since 3.0
90 + * @since 6.35 Added the $field parameter.
82 91 *
83 - * @param array $values
92 + * @param array $values
93 + * @param stdClass|null $field The field for $values['field_id'], when the caller already has
94 + * it loaded. Looked up here when it is not passed.
84 95 *
85 96 * @return void
86 97 */
87 - private static function set_value_before_save( &$values ) {
88 - $field = FrmField::getOne( $values['field_id'] );
98 + private static function set_value_before_save( &$values, $field = null ) {
99 + if ( ! is_object( $field ) ) {
100 + $field = FrmField::getOne( $values['field_id'] );
101 + }
89 102
90 103 if ( ! $field ) {
91 104 return;
92 105 }
@@ -155,9 +168,9 @@
155 168 self::get_value_to_save( compact( 'field', 'field_id', 'entry_id' ), $meta_value );
156 169
157 170 if ( ! $previous_field_ids || ! in_array( $field_id, $previous_field_ids, true ) ) {
158 171 // If value does not exist, then create it
159 - self::add_entry_meta( $entry_id, $field_id, '', $meta_value );
172 + self::add_entry_meta( $entry_id, $field_id, '', $meta_value, $field );
160 173 continue;
161 174 }
162 175
163 176 if ( $meta_value === array() || ( ! is_array( $meta_value ) && trim( $meta_value ) === '' ) ) {
@@ -164,9 +177,9 @@
164 177 // Remove blank fields.
165 178 unset( $values_indexed_by_field_id[ $field_id ] );
166 179 } else {
167 180 // If value exists, then update it
168 - self::update_entry_meta( $entry_id, $field_id, '', $meta_value );
181 + self::update_entry_meta( $entry_id, $field_id, '', $meta_value, $field );
169 182 }
170 183 }//end foreach
171 184
172 185 if ( ! $previous_field_ids ) {