function eme_cleanup_page()
{
global $wpdb, $eme_timezone;
$bookings_table = $wpdb->prefix . BOOKINGS_TBNAME;
$events_table = $wpdb->prefix . EVENTS_TBNAME;
$recurrence_table = $wpdb->prefix . RECURRENCE_TBNAME;
$message = "";
if (current_user_can(get_option('eme_cap_cleanup'))) {
// do the actions if required
if (isset($_POST['eme_admin_action']) && $_POST['eme_admin_action'] == "eme_cleanup" && isset($_POST['eme_number']) && isset($_POST['eme_period'])) {
$eme_number = intval($_POST['eme_number']);
$eme_period = $_POST['eme_period'];
$eme_date_obj = new ExpressiveDate(null, $eme_timezone);
if (!in_array($eme_period, array('day', 'week', 'month'))) {
$eme_period = "month";
}
switch ($eme_period) {
case 'day':
$eme_date_obj->minusDays($eme_number);
break;
case 'week':
$eme_date_obj->minusWeeks($eme_number);
break;
default:
$eme_date_obj->minusMonths($eme_number);
break;
}
$end_date = $eme_date_obj->getDate();
$wpdb->query("DELETE FROM {$bookings_table} where event_id in (SELECT event_id from {$events_table} where event_end_date<'{$end_date}')");
$wpdb->query("DELETE FROM {$events_table} where event_end_date<'{$end_date}'");
$wpdb->query("DELETE FROM {$recurrence_table} where recurence_freq <> 'specific' AND recurrence_end_date<'{$end_date}'");
$message = sprintf(__("Cleanup done: events (and corresponding booking data) older than %d %s(s) have been removed.", "eme"), $eme_number, $eme_period);
}
}
eme_cleanup_form($message);
}