public static function find_next_day_to_process($year, $month, $day)
{
$halt = get_option('msm_stop_processing') === true;
if ($halt || !Metro_Sitemap::is_blog_public()) {
// Allow user to bail out of the current process, doesn't remove where the job got up to
// or If the blog became private while sitemaps were enabled, stop here.
delete_option('msm_stop_processing');
delete_option('msm_sitemap_create_in_progress');
return;
}
update_option('msm_sitemap_create_in_progress', true);
$days_being_processed = get_option('msm_days_to_process');
$months_being_processed = get_option('msm_months_to_process');
$years_being_processed = get_option('msm_years_to_process');
$total_days = count($days_being_processed);
$total_months = count($months_being_processed);
$total_years = count($years_being_processed);
if ($total_days && $day > 1) {
// Day has finished
unset($days_being_processed[$total_days - 1]);
update_option('msm_days_to_process', $days_being_processed);
self::generate_sitemap_for_year_month(array('year' => $year, 'month' => $month));
} else {
if ($total_months and $month > 1) {
// Month has finished
unset($months_being_processed[$total_months - 1]);
delete_option('msm_days_to_process');
update_option('msm_months_to_process', $months_being_processed);
self::generate_sitemap_for_year(array('year' => $year));
} else {
if ($total_years > 1) {
// Year has finished
unset($years_being_processed[$total_years - 1]);
delete_option('msm_days_to_process');
delete_option('msm_months_to_process');
update_option('msm_years_to_process', $years_being_processed);
self::generate_full_sitemap();
} else {
// We've finished - remove all options
delete_option('msm_days_to_process');
delete_option('msm_months_to_process');
delete_option('msm_years_to_process');
delete_option('msm_sitemap_create_in_progress');
}
}
}
}