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 | } |