public static function download_toggl_time($project_id = 0) { $toggl_id = self::get_projects_toggl_id($project_id); if (!$toggl_id) { return; } $entries = Toggl_API::get_workspace_time($toggl_id); if (!isset($entries->data)) { return; } $project = SI_Project::get_instance($project_id); if (!is_a($project, 'SI_Project')) { return; } // Don't import times already imported, duh. $time_records = $project->get_associated_times(); $already_imported = array(); foreach ($time_records as $time_id) { $time = SI_Record::get_instance($time_id); if (!is_a($time, 'SI_Record')) { continue; } $data = $time->get_data(); if (isset($data['toggl_id'])) { $already_imported[] = $data['toggl_id']; } } $entries = apply_filters('si_toggl_import_entries', $entries->data); foreach ($entries as $key => $time_entry) { if (in_array($time_entry->id, $already_imported)) { continue; // already imported } $data = array('project_id' => (int) $project_id, 'activity_id' => (int) self::get_projects_default_time_import_activity($project_id), 'time_val' => $time_entry->dur / 3600000, 'note' => $time_entry->description, 'date' => strtotime($time_entry->start), 'toggl_id' => $time_entry->id); $project->create_associated_time($data); } }