| 1 |
<?php |
| 2 |
if ( ! defined( 'ABSPATH' ) ) { |
| 3 |
exit; // Exit if accessed directly |
| 4 |
} |
| 5 |
|
| 6 |
global $wpscfunction,$wpdb; |
| 7 |
|
| 8 |
$check_flag = false; |
| 9 |
$last_check = get_option('wpsc_auto_delete_cron_last_check'); |
| 10 |
|
| 11 |
if($last_check){ |
| 12 |
$now = time(); |
| 13 |
$ago = strtotime($last_check); |
| 14 |
$diff = $now - $ago; |
| 15 |
$diff_minutes = round( $diff / 60 ); |
| 16 |
|
| 17 |
if( $diff_minutes >= 60 ){ |
| 18 |
$check_flag = true; |
| 19 |
} |
| 20 |
} |
| 21 |
|
| 22 |
if(!(!$last_check || $check_flag)){ |
| 23 |
return; |
| 24 |
} else { |
| 25 |
update_option('wpsc_auto_delete_cron_last_check',date("Y-m-d H:i:s")); |
| 26 |
} |
| 27 |
|
| 28 |
$wpsc_auto_delete_ticket_time = get_option('wpsc_auto_delete_ticket_time'); |
| 29 |
$auto_delete_ticket = get_option('wpsc_auto_delete_ticket'); |
| 30 |
|
| 31 |
if(!$wpsc_auto_delete_ticket_time || !$auto_delete_ticket){ |
| 32 |
return; |
| 33 |
} |
| 34 |
|
| 35 |
//Close tickets status |
| 36 |
$wpsc_close_ticket_status = get_option('wpsc_close_ticket_status'); |
| 37 |
|
| 38 |
$ticket_data = $wpdb->get_results("SELECT * FROM {$wpdb->prefix}wpsc_ticket WHERE ticket_status IN ($wpsc_close_ticket_status) AND active=1"); |
| 39 |
|
| 40 |
$wpsc_auto_delete_ticket_time_period_unit = get_option('wpsc_auto_delete_ticket_time_period_unit'); |
| 41 |
if($wpsc_auto_delete_ticket_time_period_unit == 'days'){ |
| 42 |
foreach ($ticket_data as $key => $ticket) { |
| 43 |
$ticket_id = $ticket->id; |
| 44 |
$now = time(); |
| 45 |
$date_updated = $ticket->date_updated; |
| 46 |
$upago = strtotime($date_updated); |
| 47 |
$diff = $now - $upago; |
| 48 |
$diff_days = intval( $diff / (60 * 60 * 24)); |
| 49 |
|
| 50 |
if( $diff_days > $wpsc_auto_delete_ticket_time ){ |
| 51 |
$values = array( |
| 52 |
'active' => '0' |
| 53 |
); |
| 54 |
$wpdb->update($wpdb->prefix.'wpsc_ticket',$values,array('id'=>$ticket_id)); |
| 55 |
} |
| 56 |
} |
| 57 |
}elseif ($wpsc_auto_delete_ticket_time_period_unit == 'months') { |
| 58 |
foreach ($ticket_data as $key => $ticket) { |
| 59 |
$ticket_id = $ticket->id; |
| 60 |
$now = new DateTime(); |
| 61 |
$date_updated = new DateTime($ticket->date_updated); |
| 62 |
$diff = $now->diff($date_updated); |
| 63 |
$months = ($diff->y*12) + $diff->m; |
| 64 |
|
| 65 |
if( $months > $wpsc_auto_delete_ticket_time ){ |
| 66 |
$values = array( |
| 67 |
'active' => '0' |
| 68 |
); |
| 69 |
$wpdb->update($wpdb->prefix.'wpsc_ticket',$values,array('id'=>$ticket_id)); |
| 70 |
} |
| 71 |
} |
| 72 |
}elseif ($wpsc_auto_delete_ticket_time_period_unit=='years') { |
| 73 |
foreach ($ticket_data as $key => $ticket) { |
| 74 |
$ticket_id = $ticket->id; |
| 75 |
$now = new DateTime(); |
| 76 |
$date_updated = new DateTime($ticket->date_updated); |
| 77 |
$diff = $now->diff($date_updated); |
| 78 |
$years = $diff->y; |
| 79 |
|
| 80 |
if( $years > $wpsc_auto_delete_ticket_time ){ |
| 81 |
$values = array( |
| 82 |
'active' => '0' |
| 83 |
); |
| 84 |
$wpdb->update($wpdb->prefix.'wpsc_ticket',$values,array('id'=>$ticket_id)); |
| 85 |
} |
| 86 |
} |
| 87 |
} |
| 88 |
|