<?php
function schoolpress_the_content_homework_submission($content){

    global $post, $current_user;

    // Nie dotyczy innych typów postów niż homework
    if ( ! is_single() || $post->post_type != 'homework' )
        return $content;

    // Nie dotyczy, jeśli użytkownik nie jest zalogowany
    if ( ! is_user_logged_in() )
        return $content;

        // Sprawdzenie, czy bieżący użytkownik faktycznie wysłał formularz,
        // oddając w ten sposób pracę domową
        $submissions = get_posts( array(
            'post_author'    => $current_user->ID,
                'posts_per_page' => '1',
                'post_type'      => 'submissions',
                'meta_key'       => '_submission_homework_id',
                'meta_value'     => $post->ID
            ) );
            foreach ( $submissions as $submission ) {
                $submission_id = $submission->ID;
            }

            // Przetworzenie formularza
            if ( !$submission_id &&
                    isset( $_POST['submit-homework-submission'] ) &&
                    isset( $_POST['homework-submission'] ) ) {

                $submission = $_POST['homework-submission'];
                $post_title = $post->post_title;
                $post_title .= ' - przekazana przez ' . $current_user->display_name;
                // Wstawienie danych bieżącego użytkownika jako posta
                // podczas wysyłania niestandardowego typu postów
                $args = array(
                    'post_title'   => $post_title,
                    'post_content' => $submission,
                    'post_type'    => 'submissions',
                    'post_status'  => 'publish',
                    'post_author'  => $current_user->ID
                );
                $submission_id = wp_insert_post( $args );
                // Dodanie metadanych posta do wysyłanego formularza
                add_post_meta( $submission_id, '_submission_homework_id',
                    $post->ID );
                // Utworzenie niestandardowego komunikatu
                $message = __(
                    'Praca domowa została oddana i czeka na ocenę.',
                    'schoolpress'
                );
                $message = '<div class="homework-submission-message">' . $message .
                '</div>';
                // Wyświetlenie komunikatu przed filtrowaną zmienną $content
                $content = $message . $content;
            }

            // Dodanie łącza do wysłanego formularza użytkownika, jeśli wysłał on już formularz
            if( $submission_id ) {

                $message = sprintf( __(
                'Kliknij %s tutaj %s, aby wyświetlić oddaną pracę domową.',
                'schoolpress' ),
                '<a href="' . get_permalink( $submission_id ) . '">',
                '</a>' );
                $message = '<div class="homework-submission-link">' . $message .
                '</div>';
                $content .= $message;

            // Dodanie prostego formularza po filtrowanej zmiennej $content
            } else {

                ob_start();
            ?>
         <h3><?php _e( 'Wyślij pracę domową!', 'schoolpress' );?></h3>
         <form method="post">
        <?php
        wp_editor( '', 'homework-submission', array( 'media_buttons' => false ) );
        ?>
         <input type="submit" name="submit-homework-submission" value="Wyślij" />
         </form>
        <?php
        $form = ob_get_contents();
        ob_end_clean();
        $content .= $form;
    }

    return $content;
}
// Dodanie filtra w 'the_content', co pozwoli wykonać niestandardowy kod
// przeznaczony do obsługi oddanej pracy domowej
add_filter( 'the_content', 'schoolpress_the_content_homework_submission', 999 );
?>
