<?php
if (!defined('ABSPATH')) {
    exit; // Exit if accessed directly
}

// Add a checkbox meta box
function smoothtoc_add_meta_box() {
    add_meta_box(
        'smoothtoc_meta_box',             // ID
        'SmoothTOC Settings',             // Title
        'smoothtoc_meta_box_callback',    // Callback function
        'post',                           // Post type
        'side',                           // Context
        'default'                         // Priority
    );
}
add_action('add_meta_boxes', 'smoothtoc_add_meta_box');

// Callback function for the meta box
function smoothtoc_meta_box_callback($post) {
    wp_nonce_field('smoothtoc_meta_box', 'smoothtoc_meta_box_nonce');
    $toc_disabled = get_post_meta($post->ID, '_smoothtoc_disabled', true);
    ?>
    <label for="smoothtoc_disabled">
        <input type="checkbox" name="smoothtoc_disabled" id="smoothtoc_disabled" value="1" <?php checked($toc_disabled, 1); ?> />
        <?php esc_html_e('Disable Table of Contents', 'smooth-toc'); ?>
    </label>
    <?php
}

// Save the meta box data
function smoothtoc_save_meta_box_data($post_id) {
    if (!isset($_POST['smoothtoc_meta_box_nonce'])) {
        return;
    }
    
    // Sanitize nonce input
    $nonce = isset($_POST['smoothtoc_meta_box_nonce']) ? sanitize_text_field(wp_unslash($_POST['smoothtoc_meta_box_nonce'])) : '';
    
    if (!wp_verify_nonce($nonce, 'smoothtoc_meta_box')) {
        return;
    }
    
    if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) {
        return;
    }
    
    if (!current_user_can('edit_post', $post_id)) {
        return;
    }

    // Sanitize the checkbox value
    $toc_disabled = isset($_POST['smoothtoc_disabled']) ? absint($_POST['smoothtoc_disabled']) : 0;

    if ($toc_disabled) {
        update_post_meta($post_id, '_smoothtoc_disabled', 1);
    } else {
        delete_post_meta($post_id, '_smoothtoc_disabled');
    }
}
add_action('save_post', 'smoothtoc_save_meta_box_data');
