public static function purge_scheduled_action() { global $wpdb; // Don't purge if in Network Admin if Stream isn't network enabled if (is_network_admin() && is_multisite() && !is_plugin_active_for_network(MAINWP_WP_STREAM_PLUGIN)) { return; } if (is_multisite() && is_plugin_active_for_network(MAINWP_WP_STREAM_PLUGIN)) { $options = (array) get_site_option(MainWP_WP_Stream_Settings::NETWORK_KEY, array()); } else { $options = MainWP_WP_Stream_Settings::get_options(); } $days = $options['general_records_ttl']; $date = new DateTime('now', $timezone = new DateTimeZone('UTC')); $date->sub(DateInterval::createFromDateString("{$days} days")); $where = $wpdb->prepare(' AND `stream`.`created` < %s', $date->format('Y-m-d H:i:s')); if (is_multisite() && !is_plugin_active_for_network(MAINWP_WP_STREAM_PLUGIN)) { $where .= $wpdb->prepare(' AND `blog_id` = %d', get_current_blog_id()); } $wpdb->query($wpdb->prepare("DELETE `stream`, `context`, `meta`\n\t\t\t\tFROM {$wpdb->mainwp_reports} AS `stream`\n\t\t\t\tLEFT JOIN {$wpdb->mainwp_reportscontext} AS `context`\n\t\t\t\tON `context`.`record_id` = `stream`.`ID`\n\t\t\t\tLEFT JOIN {$wpdb->mainwp_reportsmeta} AS `meta`\n\t\t\t\tON `meta`.`record_id` = `stream`.`ID`\n\t\t\t\tWHERE `stream`.`type` = %s\n\t\t\t\t{$where};", 'stream', $date->format('Y-m-d H:i:s'))); }