public static function _version_1_upgrade($student_id, $course_id, $data)
 {
     // Get units
     $units = Unit::get_units_from_course($course_id, 'any', true);
     if (!empty($units)) {
         // Traverse units
         foreach ($units as $unit_id) {
             // Get visited pages data
             $visited_pages = get_user_option('visited_unit_pages_' . $unit_id . '_page', $student_id);
             $visited_pages = explode(',', $visited_pages);
             if (!empty($visited_pages)) {
                 foreach ($visited_pages as $page) {
                     if (!empty($page)) {
                         self::record_visited_page($student_id, $course_id, $unit_id, $page, $data);
                         //cp_write_log( 'Record visited page: Unit: ' . $unit_id . ' Page: ' . $page );
                     }
                 }
             }
             // Get modules
             $modules = Unit_Module::get_modules($unit_id, 0, true);
             $input_modules = Unit_Module::get_input_module_types();
             if (!empty($modules)) {
                 // Traverse modules
                 foreach ($modules as $module_id) {
                     $module_type = Unit_Module::get_module_type($module_id);
                     $module_is_input = in_array($module_type, $input_modules);
                     // Only for input modules
                     if ($module_is_input) {
                         $module_meta = Unit_Module::get_module_meta($module_id);
                         // Did the student answer it?
                         $response = call_user_func($module_type . '::get_response', get_current_user_id(), $module_id, 'inherit', -1, true);
                         // Yes
                         if (!empty($response)) {
                             if ('yes' == $module_meta['mandatory_answer']) {
                                 self::record_mandatory_answer($student_id, $course_id, $unit_id, $module_id, $data);
                                 //cp_write_log( 'Record mandatory answer: Module: ' . $module_id );
                             }
                             if ('yes' == $module_meta['gradable_answer']) {
                                 foreach ($response as $answer) {
                                     $result = Unit_Module::get_response_grade($answer);
                                     if (0 < $result['grade']) {
                                         self::record_gradable_result($student_id, $course_id, $unit_id, $module_id, $result['grade'], $data);
                                     }
                                     //cp_write_log( 'Record gradable result: Module: ' . $module_id . ' Result: ' . $result['grade'] );
                                 }
                             }
                         }
                         // End responses
                     }
                     // End input module
                 }
                 // End Modules loop
             }
             // End Modules
         }
         // End Units loop
     }
     // End Units
     // Remove CoursePress transients
     global $wpdb;
     $table = $wpdb->prefix . 'options';
     $sql = $wpdb->prepare("DELETE FROM {$table} WHERE `option_name` LIKE %s OR `option_name` LIKE %s", '%_transient_coursepress_course%', '%_transient_coursepress_unit%');
     $wpdb->query($sql);
     // Record the new version
     self::_update_version($student_id, $course_id, $data, 1);
     //cp_write_log( 'Upgraded Course: ' . $course_id . ' to version: ' . 1 );
 }
    if (CoursePress_Capabilities::can_change_course_unit_status($course_id, $unit_id)) {
        $unit->change_status($_GET['new_status']);
    }
}
// cp_write_log(' preview redir: ' . $_POST['preview_redirect'] );
$preview_redirect = isset($_REQUEST['preview_redirect']) ? $_REQUEST['preview_redirect'] : 'no';
?>
<div class='wrap mp-wrap nocoursesub unit-details cp-wrap' id='cp-unit-details-holder'>

    <div id="undefined-sticky-wrapper" class="sticky-wrapper">
        <div class="sticky-slider visible-small visible-extra-small"><i class="fa fa-chevron-circle-right"></i></div>
        <ul id="sortable-units" class="mp-tabs" style="">
			<?php 
// $units = $course->get_units();
// $course_id = isset( $course ) && isset( $course->details ) && ! empty( $course->details->ID ) ? $course->details->ID : 0;
$units = Unit::get_units_from_course($course_id, 'any', false);
$units = !empty($units) ? $units : array();
?>
            <input type="hidden" name="unit_count" value="<?php 
echo $units ? count($units) : 0;
?>
" />
			<?php 
$list_order = 1;
foreach ($units as $unit) {
    $unit_object = new Unit($unit->ID);
    $unit_object = $unit_object->get_unit();
    ?>
				<li class="mp-tab <?php 
    echo isset($_GET['unit_id']) && $unit->ID == $_GET['unit_id'] ? 'active' : '';
    ?>
 public static function get_course_time_estimation($course_id, $status = 'any')
 {
     $course_time = '';
     $course_seconds = 0;
     $units = Unit::get_units_from_course($course_id, $status, false);
     foreach ($units as $unit) {
         $unit_details = new Unit($unit->ID);
         $unit_time = $unit_details->get_unit_time_estimation($unit->ID);
         $min_sec = explode(':', $unit_time);
         if (isset($min_sec[0])) {
             $course_seconds += intval($min_sec[0]) * 60;
         }
         if (isset($min_sec[1])) {
             $course_seconds += intval(substr($min_sec[1], 0, 2));
         }
     }
     $total_seconds = round($course_seconds);
     $formatted_time = sprintf('%02d:%02d:%02d', $total_seconds / 3600, $total_seconds / 60 % 60, $total_seconds % 60);
     $course_time = apply_filters('coursepress_course_get_time_estimation', $formatted_time, $total_seconds, $course_id);
     return $course_time;
 }