SHOW:
|
|
- or go back to the newest paste.
1 | - | // fire the action for all forms |
1 | + | add_action( 'gform_after_submission', 'nifty_gform_remove_entries ), 10, 2 ); |
2 | - | add_action( 'gform_after_submission', 'my_remove_entries' ), 10, 2 ); |
2 | + | function nifty_gform_remove_entries( $entry, $form ) { |
3 | - | |
3 | + | |
4 | - | // to only fire the action for a specific form, replace the "2" with the ID of your form |
4 | + | if($form["id"] == 5){ |
5 | - | // add_action( 'gform_post_submission_2', 'my_remove_entries', 10, 2 ); |
5 | + | return; |
6 | - | |
6 | + | } |
7 | - | function my_remove_entries( $entry, $form ) { |
7 | + | |
8 | - | |
8 | + | global $wpdb; |
9 | - | global $wpdb; |
9 | + | |
10 | - | |
10 | + | $lead_id = $entry['id']; |
11 | - | $lead_id = $entry['id']; |
11 | + | $lead_table = RGFormsModel::get_lead_table_name(); |
12 | - | $lead_table = RGFormsModel::get_lead_table_name(); |
12 | + | $lead_notes_table = RGFormsModel::get_lead_notes_table_name(); |
13 | - | $lead_notes_table = RGFormsModel::get_lead_notes_table_name(); |
13 | + | $lead_detail_table = RGFormsModel::get_lead_details_table_name(); |
14 | - | $lead_detail_table = RGFormsModel::get_lead_details_table_name(); |
14 | + | $lead_detail_long_table = RGFormsModel::get_lead_details_long_table_name(); |
15 | - | $lead_detail_long_table = RGFormsModel::get_lead_details_long_table_name(); |
15 | + | |
16 | - | |
16 | + | // Delete from detail long |
17 | - | // Delete from detail long |
17 | + | $sql = $wpdb->prepare( " DELETE FROM $lead_detail_long_table |
18 | - | $sql = $wpdb->prepare( " DELETE FROM $lead_detail_long_table |
18 | + | WHERE lead_detail_id IN( |
19 | - | WHERE lead_detail_id IN( |
19 | + | SELECT id FROM $lead_detail_table WHERE lead_id=%d |
20 | - | SELECT id FROM $lead_detail_table WHERE lead_id=%d |
20 | + | )", $lead_id ); |
21 | - | )", $lead_id ); |
21 | + | $wpdb->query( $sql ); |
22 | - | $wpdb->query( $sql ); |
22 | + | |
23 | - | |
23 | + | // Remove file uploads |
24 | - | // Delete from lead details |
24 | + | $sql = $wpdb->prepare("SELECT value FROM $lead_detail_table WHERE lead_id=%d", $lead_id ); |
25 | - | $sql = $wpdb->prepare( "DELETE FROM $lead_detail_table WHERE lead_id=%d", $lead_id ); |
25 | + | $results = $wpdb->get_results($sql, ARRAY_A ) or die(mysql_error()); |
26 | - | $wpdb->query( $sql ); |
26 | + | foreach ($results as $check_value_for_file) { |
27 | - | |
27 | + | $file_url = parse_url($check_value_for_file['value']); |
28 | - | // Delete from lead notes |
28 | + | $file_path = $file_url['path']; |
29 | - | $sql = $wpdb->prepare( "DELETE FROM $lead_notes_table WHERE lead_id=%d", $lead_id ); |
29 | + | $upload_dir = wp_upload_dir(); |
30 | - | $wpdb->query( $sql ); |
30 | + | $file_location = realpath($upload_dir['basedir']. "/../../").$file_path; |
31 | - | |
31 | + | if (file_exists($file_location)) { |
32 | - | // Delete from lead |
32 | + | unlink($file_location); |
33 | - | $sql = $wpdb->prepare( "DELETE FROM $lead_table WHERE id=%d", $lead_id ); |
33 | + | } |
34 | - | $wpdb->query( $sql ); |
34 | + | } |
35 | - | |
35 | + | |
36 | - | } |
36 | + | // Delete from lead details |
37 | $sql = $wpdb->prepare( "DELETE FROM $lead_detail_table WHERE lead_id=%d", $lead_id ); | |
38 | $wpdb->query( $sql ); | |
39 | ||
40 | ||
41 | ||
42 | // Delete from lead notes | |
43 | $sql = $wpdb->prepare( "DELETE FROM $lead_notes_table WHERE lead_id=%d", $lead_id ); | |
44 | $wpdb->query( $sql ); | |
45 | ||
46 | // Delete from lead | |
47 | $sql = $wpdb->prepare( "DELETE FROM $lead_table WHERE id=%d", $lead_id ); | |
48 | $wpdb->query( $sql ); | |
49 | ||
50 | } |