form_id ) ? (int) $entry_model->form_id : 0; if ( $entry_form_id !== $spam_form_id ) { return; } $this->mark_entry_spam( $entry_model ); SubmissionHandler::clear_pending_spam(); } /** * Update entry spam fields via direct query. * * Uses `$wpdb->update()` instead of `$entry_model->save()` to avoid * side-effects on `date_created` and `draft_id` fields. * * @since 1.1.0 * * @param Forminator_Form_Entry_Model $entry_model Entry to mark as spam. */ private function mark_entry_spam( $entry_model ): void { if ( ! class_exists( '\Forminator_Database_Tables' ) ) { return; } $entry_id = isset( $entry_model->entry_id ) ? (int) $entry_model->entry_id : 0; if ( $entry_id <= 0 ) { return; } global $wpdb; $table = Forminator_Database_Tables::get_table_name( Forminator_Database_Tables::FORM_ENTRY ); // phpcs:ignore WordPress.DB.DirectDatabaseQuery.DirectQuery, WordPress.DB.DirectDatabaseQuery.NoCaching $wpdb->update( $table, [ 'is_spam' => 1, 'status' => 'spam', ], [ 'entry_id' => $entry_id ], [ '%d', '%s' ], [ '%d' ] ); } }