<?php 

function carpet_store_add_admin_menu() {
    add_menu_page(
        'Theme Settings', // Page title
        'Theme Settings', // Menu title
        'manage_options', // Capability
        'carpet-store-theme-settings', // Menu slug
        'carpet_store_settings_page' // Function to display the page
    );
}
add_action( 'admin_menu', 'carpet_store_add_admin_menu' );

function carpet_store_settings_page() {
    ?>
    <div class="wrap">
        <h1><?php esc_html_e( 'Theme Settings', 'carpet-store' ); ?></h1>
        <form action="options.php" method="post">
            <?php
            settings_fields( 'carpet_store_settings_group' );
            do_settings_sections( 'carpet-store-theme-settings' );
            submit_button();
            ?>
        </form>
    </div>
    <?php
}

function carpet_store_register_settings() {
    register_setting( 'carpet_store_settings_group', 'carpet_store_enable_animations' );

    add_settings_section(
        'carpet_store_settings_section',
        __( 'Animation Settings', 'carpet-store' ),
        null,
        'carpet-store-theme-settings'
    );

    add_settings_field(
        'carpet_store_enable_animations',
        __( 'Enable Animations', 'carpet-store' ),
        'carpet_store_enable_animations_callback',
        'carpet-store-theme-settings',
        'carpet_store_settings_section'
    );
}
add_action( 'admin_init', 'carpet_store_register_settings' );

function carpet_store_enable_animations_callback() {
    $checked = get_option( 'carpet_store_enable_animations', true );
    ?>
    <input type="checkbox" name="carpet_store_enable_animations" value="1" <?php checked( 1, $checked ); ?> />
    <?php
}

