| @@ -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 ) { |
| @@ -355,9 +333,9 @@ | ||
| 355 | 333 | LEFT OUTER JOIN {$wpdb->prefix}frm_forms fr ON it.form_id=fr.id WHERE "; |
| 356 | 334 | |
| 357 | 335 | $query .= is_numeric( $id ) ? 'it.id=%d' : 'it.item_key=%s'; |
| 358 | 336 | $query_args = array( $id ); |
| 359 | - $query = $wpdb->prepare( $query, $query_args ); // phpcs:ignore WordPress.DB.PreparedSQL.NotPrepared | |
| 337 | + $query = $wpdb->prepare( $query, $query_args ); // WPCS: unprepared SQL ok. | |
| 360 | 338 | |
| 361 | 339 | if ( ! $meta ) { |
| 362 | 340 | $entry = FrmDb::check_cache( $id . '_nometa', 'frm_entry', $query, 'get_row' ); |
| 363 | 341 | self::prepare_entry( $entry ); |
| @@ -369,9 +347,9 @@ | ||
| 369 | 347 | self::prepare_entry( $entry ); |
| 370 | 348 | return $entry; |
| 371 | 349 | } |
| 372 | 350 | |
| 373 | - $entry = $wpdb->get_row( $query ); // phpcs:ignore WordPress.DB.PreparedSQL.NotPrepared | |
| 351 | + $entry = $wpdb->get_row( $query ); // WPCS: unprepared SQL ok. | |
| 374 | 352 | $entry = self::get_meta( $entry ); |
| 375 | 353 | self::prepare_entry( $entry ); |
| 376 | 354 | |
| 377 | 355 | return $entry; |
| @@ -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'; |
| @@ -494,9 +472,9 @@ | ||
| 494 | 472 | |
| 495 | 473 | // prepare the query |
| 496 | 474 | $query = 'SELECT ' . $fields . ' FROM ' . $table . FrmDb::prepend_and_or_where( ' WHERE ', $where ) . $order_by . $limit; |
| 497 | 475 | |
| 498 | - $entries = $wpdb->get_results( $query, OBJECT_K ); // phpcs:ignore WordPress.DB.PreparedSQL.NotPrepared | |
| 476 | + $entries = $wpdb->get_results( $query, OBJECT_K ); // WPCS: unprepared SQL ok. | |
| 499 | 477 | unset( $query ); |
| 500 | 478 | |
| 501 | 479 | FrmDb::set_cache( $cache_key, $entries, 'frm_entry' ); |
| 502 | 480 | } |
| @@ -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 | |
| @@ -880,29 +854,12 @@ | ||
| 880 | 854 | * @since 2.0.16 |
| 881 | 855 | * |
| 882 | 856 | * @param array $values |
| 883 | 857 | * @param int $entry_id |
| 884 | - * @return void | |
| 885 | 858 | */ |
| 886 | 859 | private static function maybe_add_entry_metas( $values, $entry_id ) { |
| 887 | 860 | if ( isset( $values['item_meta'] ) ) { |
| 888 | 861 | FrmEntryMeta::update_entry_metas( $entry_id, $values['item_meta'] ); |
| 889 | - } | |
| 890 | - self::maybe_add_captcha_meta( (int) $values['form_id'], (int) $entry_id ); | |
| 891 | - } | |
| 892 | - | |
| 893 | - /** | |
| 894 | - * @since 5.0.15 | |
| 895 | - * | |
| 896 | - * @param int $form_id | |
| 897 | - * @param int $entry_id | |
| 898 | - * @return void | |
| 899 | - */ | |
| 900 | - private static function maybe_add_captcha_meta( $form_id, $entry_id ) { | |
| 901 | - global $frm_vars; | |
| 902 | - if ( array_key_exists( 'captcha_scores', $frm_vars ) && array_key_exists( $form_id, $frm_vars['captcha_scores'] ) ) { | |
| 903 | - $captcha_score_meta = array( 'captcha_score' => $frm_vars['captcha_scores'][ $form_id ] ); | |
| 904 | - FrmEntryMeta::add_entry_meta( $entry_id, 0, '', maybe_serialize( $captcha_score_meta ) ); | |
| 905 | 862 | } |
| 906 | 863 | } |
| 907 | 864 | |
| 908 | 865 | /** |