Ejemplo n.º 1
0
 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')));
 }