| @@ -250,30 +250,19 @@ | ||
| 250 | 250 | |
| 251 | 251 | return $query_results; |
| 252 | 252 | } |
| 253 | 253 | |
| 254 | - /** | |
| 255 | - * Delete an entry. | |
| 256 | - * | |
| 257 | - * @param string|int $id | |
| 258 | - * @return bool True on success, false if nothing was deleted. | |
| 259 | - */ | |
| 260 | 254 | public static function destroy( $id ) { |
| 261 | 255 | global $wpdb; |
| 262 | 256 | $id = (int) $id; |
| 263 | 257 | |
| 264 | - $entry = self::getOne( $id, true ); // Item meta is required for conditional logic in actions with 'delete' events. | |
| 258 | + $entry = self::getOne( $id ); | |
| 265 | 259 | if ( ! $entry ) { |
| 266 | 260 | $result = false; |
| 261 | + | |
| 267 | 262 | return $result; |
| 268 | 263 | } |
| 269 | 264 | |
| 270 | - /** | |
| 271 | - * Trigger an action to run custom logic before the entry is deleted. | |
| 272 | - * | |
| 273 | - * @param int $id The id of the entry that was destroyed. | |
| 274 | - * @param stdClass $entry The entry object. | |
| 275 | - */ | |
| 276 | 265 | do_action( 'frm_before_destroy_entry', $id, $entry ); |
| 277 | 266 | |
| 278 | 267 | $wpdb->query( $wpdb->prepare( 'DELETE FROM ' . $wpdb->prefix . 'frm_item_metas WHERE item_id=%d', $id ) ); |
| 279 | 268 | $result = $wpdb->query( $wpdb->prepare( 'DELETE FROM ' . $wpdb->prefix . 'frm_items WHERE id=%d', $id ) ); |
| @@ -279,19 +268,8 @@ | ||
| 279 | 268 | $result = $wpdb->query( $wpdb->prepare( 'DELETE FROM ' . $wpdb->prefix . 'frm_items WHERE id=%d', $id ) ); |
| 280 | 269 | |
| 281 | 270 | self::clear_cache(); |
| 282 | 271 | |
| 283 | - /** | |
| 284 | - * Trigger an action to run custom logic after the entry is deleted. | |
| 285 | - * Use this hook if you need to update caching after an entry is deleted. | |
| 286 | - * | |
| 287 | - * @since 5.4.1 | |
| 288 | - * | |
| 289 | - * @param int $id The id of the entry that was destroyed. | |
| 290 | - * @param stdClass $entry The entry object. | |
| 291 | - */ | |
| 292 | - do_action( 'frm_after_destroy_entry', $id, $entry ); | |
| 293 | - | |
| 294 | 272 | return $result; |
| 295 | 273 | } |
| 296 | 274 | |
| 297 | 275 | public static function update_form( $id, $value, $form_id ) { |
| @@ -414,9 +392,9 @@ | ||
| 414 | 392 | array( |
| 415 | 393 | 'item_id' => $entry->id, |
| 416 | 394 | 'field_id !' => 0, |
| 417 | 395 | ), |
| 418 | - 'field_id, meta_value, field_key, item_id, f.type' | |
| 396 | + 'field_id, meta_value, field_key, item_id' | |
| 419 | 397 | ); |
| 420 | 398 | |
| 421 | 399 | $entry->metas = array(); |
| 422 | 400 | |
| @@ -421,11 +399,10 @@ | ||
| 421 | 399 | $entry->metas = array(); |
| 422 | 400 | |
| 423 | 401 | $include_key = apply_filters( 'frm_include_meta_keys', false, array( 'form_id' => $entry->form_id ) ); |
| 424 | 402 | foreach ( $metas as $meta_val ) { |
| 425 | - FrmFieldsHelper::prepare_field_value( $meta_val->meta_value, $meta_val->type ); | |
| 426 | - | |
| 427 | 403 | if ( $meta_val->item_id == $entry->id ) { |
| 404 | + FrmAppHelper::unserialize_or_decode( $meta_val->meta_value ); | |
| 428 | 405 | $entry->metas[ $meta_val->field_id ] = $meta_val->meta_value; |
| 429 | 406 | if ( $include_key ) { |
| 430 | 407 | $entry->metas[ $meta_val->field_key ] = $entry->metas[ $meta_val->field_id ]; |
| 431 | 408 | } |
| @@ -436,8 +413,9 @@ | ||
| 436 | 413 | if ( ! isset( $entry->metas[ $meta_val->field_id ] ) ) { |
| 437 | 414 | $entry->metas[ $meta_val->field_id ] = array(); |
| 438 | 415 | } |
| 439 | 416 | |
| 417 | + FrmAppHelper::unserialize_or_decode( $meta_val->meta_value ); | |
| 440 | 418 | $entry->metas[ $meta_val->field_id ][] = $meta_val->meta_value; |
| 441 | 419 | |
| 442 | 420 | unset( $meta_val ); |
| 443 | 421 | } |
| @@ -478,9 +456,9 @@ | ||
| 478 | 456 | $cache_key = FrmAppHelper::maybe_json_encode( $where ) . $order_by . $limit . $inc_form; |
| 479 | 457 | $entries = wp_cache_get( $cache_key, 'frm_entry' ); |
| 480 | 458 | |
| 481 | 459 | if ( false === $entries ) { |
| 482 | - $fields = 'it.id, it.item_key, it.name, it.ip, it.form_id, it.post_id, it.user_id, it.parent_item_id, it.updated_by, it.created_at, it.updated_at, it.is_draft, it.description'; | |
| 460 | + $fields = 'it.id, it.item_key, it.name, it.ip, it.form_id, it.post_id, it.user_id, it.parent_item_id, it.updated_by, it.created_at, it.updated_at, it.is_draft'; | |
| 483 | 461 | $table = $wpdb->prefix . 'frm_items it '; |
| 484 | 462 | |
| 485 | 463 | if ( $inc_form ) { |
| 486 | 464 | $fields = 'it.*, fr.name as form_name,fr.form_key as form_key'; |
| @@ -517,13 +495,9 @@ | ||
| 517 | 495 | } else { |
| 518 | 496 | $meta_where['item_id'] = array_keys( $entries ); |
| 519 | 497 | } |
| 520 | 498 | |
| 521 | - $metas = FrmDb::get_results( | |
| 522 | - $wpdb->prefix . 'frm_item_metas it LEFT OUTER JOIN ' . $wpdb->prefix . 'frm_fields fi ON it.field_id = fi.id', | |
| 523 | - $meta_where, | |
| 524 | - 'item_id, meta_value, field_id, field_key, form_id, fi.type' | |
| 525 | - ); | |
| 499 | + $metas = FrmDb::get_results( $wpdb->prefix . 'frm_item_metas it LEFT OUTER JOIN ' . $wpdb->prefix . 'frm_fields fi ON (it.field_id = fi.id)', $meta_where, 'item_id, meta_value, field_id, field_key, form_id' ); | |
| 526 | 500 | |
| 527 | 501 | unset( $meta_where ); |
| 528 | 502 | |
| 529 | 503 | if ( ! $metas ) { |
| @@ -539,9 +513,9 @@ | ||
| 539 | 513 | if ( ! isset( $entries[ $meta_val->item_id ]->metas ) ) { |
| 540 | 514 | $entries[ $meta_val->item_id ]->metas = array(); |
| 541 | 515 | } |
| 542 | 516 | |
| 543 | - FrmFieldsHelper::prepare_field_value( $meta_val->meta_value, $meta_val->type ); | |
| 517 | + FrmAppHelper::unserialize_or_decode( $meta_val->meta_value ); | |
| 544 | 518 | $entries[ $meta_val->item_id ]->metas[ $meta_val->field_id ] = $meta_val->meta_value; |
| 545 | 519 | unset( $m_key, $meta_val ); |
| 546 | 520 | } |
| 547 | 521 | |