<?php
// Funkcja wywołania zwrotnego odpowiedzialna za dodanie elementu obsługi metadanych
function schoolpress_homework_add_meta_boxes(){
    add_meta_box(
        'homework_meta',
        'Informacje dodatkowe',
        'schoolpress_homework_meta_box',
        'homework',
        'side'
    );

}
// Użycie zaczepu add_meta_boxes do wywołania funkcji odpowiedzialnej za dodanie elementu obsługi metadanych
add_action( 'add_meta_boxes', 'schoolpress_homework_add_meta_boxes' );

// To jest funkcja wywołania zwrotnego wywoływana z poziomu elementu obsługi metadanych
function schoolpress_homework_meta_box( $post ){
    // Użyliśmy tutaj dwóch wierszy, aby adres URL zmieścił się na stronie wydrukowanej książki
    $smoothness_url = 'http://ajax.googleapis.com/ajax/libs/';
    $smoothness_url.= 'jqueryui/1.12.1/themes/smoothness/jquery-ui.css';

    // Element wyboru daty w jQuery
    wp_enqueue_script( 'jquery-ui-datepicker' );
    wp_enqueue_style( 'jquery-style', $smoothness_url );

    // Zdefiniowanie metadanych, o ile istnieją
    $is_required = get_post_meta( $post->ID,
        '_schoolpress_homework_is_required', 1 );

    $due_date = get_post_meta( $post->ID,
        '_schoolpress_homework_due_date', 1 );
    // Wyświetlenie właściwości metadanych
    ?>
    <p>
    <input type="checkbox"
    name="is_required" value="1" <?php checked( $is_required, '1' ); ?>>
    Ta praca domowa jest obowiązkowa.
    </p>
    <p>
    Data oddania:
    <input type="text"
    name="due_date" id="due_date" value="<?php echo $due_date;?>">
    </p>
    <script>
    // Dołączenie elementu wyboru daty w jQuery do właściwości due_date 
    jQuery(document).ready(function() {
        jQuery('#due_date').datepicker({
            dateFormat : 'dd/mm/yy'
        });
    });
    </script>
<?php
}

// Funkcja wywołania zwrotnego zapisująca metadane w bazie danych
function schoolpress_homework_save_post( $post_id ){

    // Żadne dane nie będą zapisywane w przypadku włączenia automatycznego zapisu w WordPressie
    if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE )
        return $post_id;

    // Sprawdzenie poprawności typu posta i uprawnień użytkownika
    if ( 'homework' == $_POST['post_type'] ) {

        if ( ! current_user_can( 'edit_page', $post_id ) )
            return $post_id;

    } else {

        if ( ! current_user_can( 'edit_post', $post_id ) )
            return $post_id;
    }

    // Uaktualnienie metadanych
    update_post_meta( $post_id,
        '_schoolpress_homework_is_required',
        $_POST['is_required']
    );
    update_post_meta( $post_id,
        '_schoolpress_homework_due_date',
        $_POST['due_date']
    );

}
// Wywołanie funkcji wywołania zwrotnego w celu obsługi operacji zapisu metadanych
add_action( 'save_post', 'schoolpress_homework_save_post' );
?>
