class SPClass()
{
    /* Konstruktor i inne metody… */
    function getStudents()
    {
        /* Pobranie wszystkich użytkowników w grupie BuddyPress dla danej klasy. */
        return $this->students; // Tablica obiektów przedstawiających uczniów
    }
    function getAssignmentAverages()
    {
        // Sprawdzenie pod kątem elementu tymczasowego
        $this->assignment_averages =
        get_transient('class_assignment_averages_' . $this->ID);
        // Nie znaleziono elementu tymczasowego? Należy go wygenerować
        if(empty($this->assignment_averages))
        {
            $this->assignment_averages = array();
            $this->getStudents();
            foreach($this->students as $student)
            {
                $this->assignment_averages[$student->ID] =
                $student->getAssignmentAverages();
            }
            // Zapisanie wartości w elemencie tymczasowym
            set_transient('class_assignment_averages_' .
            $this->ID, $this->assignment_averages);
        }
        // Zwrot wartości
        return $this->assignment_averages;
    }
}
// Po wystawieniu oceny za pracę domową następuje usunięcie elementów tymczasowych wartości średniej
public function clear_assignment_averages_transient($assignment_id)
{
    // Identyfikator klasy jest przechowywany w metadanych posta pracy domowej
    $assignment = new Assignment($assignment_id);
    $class_id = $assignment->class_id;
    // Usunięcie wszystkich zawierających wartość średnią elementów tymczasowych dla danej klasy
    delete_transient('class_assignment_averages_' . $class_id);
}
add_action('sp_update_assignment_score', array('SPClass',
'clear_assignment_averages_transient'));
