<?php
/*
Plugin Name: Cookie-Magique
Description: Un plugin de gestion des cookies avec redirection personnalisée pour les articles dans des catégories spécifiques.
Version: 1.0
Author: Adri1
*/

if (!defined('ABSPATH')) {
    exit; // Exit if accessed directly.
}

class CookieMagique {
    public function __construct() {
        add_action('wp_enqueue_scripts', array($this, 'enqueue_scripts'));
        add_action('wp_footer', array($this, 'display_cookie_banner'));
        add_action('admin_menu', array($this, 'create_admin_menu'));
    }

    // Enqueue styles and scripts
    public function enqueue_scripts() {
        wp_enqueue_style('cookie-magique-style', plugins_url('style.css', __FILE__));
        wp_enqueue_script('cookie-magique-script', plugins_url('script.js', __FILE__), array('jquery'), null, true);
    }

    // Display the cookie banner
    public function display_cookie_banner() {
        if (!isset($_COOKIE['cookie_magique_accepted']) && is_single()) { 
            global $post;

            $category_redirects = get_option('cookie_magique_category_redirects', array());
            $categories = get_the_category($post->ID); 

            foreach ($categories as $category) {
                if (isset($category_redirects[$category->term_id]) && !empty($category_redirects[$category->term_id])) {
                    $redirect_url = esc_url($category_redirects[$category->term_id]);
                    ?>
                    <div id="cookie-magique-banner">
                        <p>Ce site utilise des cookies. En poursuivant, vous acceptez notre politique en matière de cookies.</p>
                        <button id="cookie-magique-accept" data-external="<?php echo $redirect_url; ?>">Accepter</button>
                    </div>
                    <?php
                    return; // S'assurer que la bannière n'est affichée qu'une seule fois
                }
            }
        }
    }

    // Create admin menu
    public function create_admin_menu() {
        add_menu_page(
            'Cookie-Magique Settings', // Page title
            'Cookie-Magique',          // Menu title
            'manage_options',          // Capability required
            'cookie-magique',          // Menu slug
            array($this, 'settings_page'), // Function to display the settings page
            'dashicons-admin-site-alt3', // Menu icon
            80                         // Position in menu
        );
    }

    // Display the settings page
    public function settings_page() {
        // Check user permissions
        if (!current_user_can('manage_options')) {
            wp_die(__('Vous n’avez pas l’autorisation d’accéder à cette page.'));
        }

        // Save settings if the form is submitted
        if ($_SERVER['REQUEST_METHOD'] == 'POST') {
            check_admin_referer('cookie_magique_settings');

            $category_redirects = isset($_POST['category_redirects']) ? array_map('sanitize_text_field', $_POST['category_redirects']) : array();

            update_option('cookie_magique_category_redirects', $category_redirects);

            echo '<div class="updated"><p>Settings saved.</p></div>';
        }

        // Get current settings
        $category_redirects = get_option('cookie_magique_category_redirects', array());

        // Get categories for the settings form
        $categories = get_categories();

        ?>

        <div class="wrap">
            <h1>Cookie-Magique Settings</h1>
            <form method="post">
                <?php wp_nonce_field('cookie_magique_settings'); ?>

                <!-- Category Redirects -->
                <h2>Redirections par Catégorie</h2>
                <?php foreach ($categories as $category) : ?>
                    <label for="category_redirect_<?php echo $category->term_id; ?>"><?php echo esc_html($category->name); ?> :</label>
                    <input type="text" name="category_redirects[<?php echo $category->term_id; ?>]" id="category_redirect_<?php echo $category->term_id; ?>" value="<?php echo esc_attr($category_redirects[$category->term_id] ?? ''); ?>" class="regular-text">
                    <br>
                <?php endforeach; ?>

                <!-- Submit Button -->
                <br>
                <input type="submit" class="button button-primary" value="Save Changes">
            </form>
        </div>
        <?php
    }
}

// Initialize the plugin
new CookieMagique();
