<?php
/**
 * CDI Base Child : fonctions du thème.
 *
 * @link    https://developer.wordpress.org/themes/basics/theme-functions/
 *
 * @author  Luc Poupard
 *
 * @package CDI_Base_Child 2.1.0
 * @since   CDI_Base_Child 2.0.0
 */


/* ----------------------------- */
/* Sommaire */
/* ----------------------------- */
/*
    == Fonctions WordPress
        -- Traductions
        -- Menus de navigation
        -- Images à la Une
        -- Flux RSS
    == Widgets
    == Ajout des styles du thème
    == Fonctions externalisées
        -- Global
        -- Front
        -- Administration
*/


/* == @section Fonctions WordPress ==================== */
function cdiwpchild_setup() {
    /* -- @subsection Traductions -------------------- */
    /**
     * Préparer le thème pour traduction.
     * Les traductions sont placées dans le répertoire /languages/
     * Pour traduire un terme : esc_html__( 'Terme à traduire', 'cdi-base-child' )
     */
    load_child_theme_textdomain( 'cdi-base-child', get_stylesheet_directory() . '/languages' );


    /* -- @subsection Menus de navigation -------------------- */
    /**
     * Déclaration du menu de navigation principal.
     */
    // register_nav_menus( array(
    //  'secondary' => esc_html__( 'Secondary menu', 'cdi-base-child' ),
    // ) );


    /* -- @subsection Images à la Une -------------------- */
    /**
     * On supprime le support des Images à la Une par défaut
     * Pour conserver le support, commenter la ligne suivante.
     */
    remove_theme_support( 'post-thumbnails' );

    /* Si les Images à la Une sont utilisées, ajouter des tailles personnalisées ici */
    // set_post_thumbnail_size( 400, 9999 ); // (largeur, hauteur) ; 9999 = illimité


    /* -- @subsection Flux RSS -------------------- */
    /**
     * On supprime le support les adresses de flux dans <head>
     * Pour conserver le support, commenter la ligne suivante.
     */
    remove_theme_support( 'automatic-feed-links' );
}
add_action( 'after_setup_theme', 'cdiwpchild_setup' );


/* == @section Widgets ==================== */
/**
 * @note Fonction pour supprimer la sidebar du thème parent. À décommenter si besoin.
 */
// function remove_cdiwpchild_widgets() {
//  unregister_sidebar( 'sidebar-1' );
// }
// add_action( 'widgets_init', 'remove_cdiwpchild_widgets' );

/**
 * Pour ajouter des zone de widgets supplémentaires :
 * @link https://developer.wordpress.org/themes/functionality/sidebars/#registering-a-sidebar
 */

/* == @section Ajout des styles du thème ==================== */
function cdiwpchild_styles() {
    $theme_version = wp_get_theme()->get('Version');
    wp_register_style(
        'all',
        get_stylesheet_directory_uri().'/css/styles.css',
        false,
        $theme_version,
        'all'
    );

    wp_register_script(
        'js',
        get_stylesheet_directory_uri() . '/js/global.js',
        array( 'jquery' ),
        date('Ymdhi', filemtime(get_stylesheet_directory().'/js/global.js')),
        false
    );

    // On ajoute les fichiers à la queue
    wp_enqueue_style( 'all' );
    wp_enqueue_script( 'js' );
}
add_action( 'wp_enqueue_scripts', 'cdiwpchild_styles', ( PHP_INT_MAX - 2 ) );


/* == @section Fonctions externalisées ==================== */
/**
 * @note Il s'agit de paramètres par défaut. Pour personnaliser ces fonctions, décommentez la ligne correspondante
 * et effectuez vos personnalisations dans le fichier.
 */

/* -- @subsection Global -------------------- */
/* Grand ménage dans <head> */
// require get_stylesheet_directory() . '/functions/global_head-cleaning.php';

/* Cacher des items de la barre d'admin */
// require get_stylesheet_directory() . '/functions/global_admin-bar.php';


/* -- @subsection Front -------------------- */
/**
 * Fonctions pour personnaliser les pages publiques.
 */

/* Nettoyage des classes générées de la navigation */
// require get_stylesheet_directory() . '/functions/front_menu-classes.php';


/* -- @subsection Administration -------------------- */
/**
 * Fonctions pour personnaliser l'administration.
 */
if ( is_admin() ) {
    /* Notification de mises à jour du thème */
    require get_stylesheet_directory() . '/functions/admin_update-notifier.php';

    /* Ajouter des droits à des utilisateurs */
    // require get_stylesheet_directory() . '/functions/admin_capabilities.php';

    /* Cacher des items du menu aux non administrateurs */
    // require get_stylesheet_directory() . '/functions/admin_menu.php';

    /* Cacher les widgets du dashboard */
    // require get_stylesheet_directory() . '/functions/admin_dashboard-widgets.php';
}

function bookshop_register_menus() {
    register_nav_menus(
        array(
            'left-menu' => __( 'Left Menu', 'bookshop' ),
            'right-menu' => __( 'Right Menu', 'bookshop' ),
        )
    );
}
add_action( 'init', 'bookshop_register_menus' );

function allow_svg_uploads($mimes) {
    $mimes['svg'] = 'image/svg+xml';
    return $mimes;
}
add_filter('upload_mimes', 'allow_svg_uploads');

add_action('wpcf7_mail_sent', 'cf7_to_brevo_api');
function cf7_to_brevo_api($contact_form) {
    $submission = WPCF7_Submission::get_instance();

    if ($submission) {
        $data = $submission->get_posted_data();

        $email = isset($data['your-email']) ? sanitize_email($data['your-email']) : '';
        $prenom_nom = isset($data['your-name']) ? sanitize_text_field($data['your-name']) : '';
        $librairie = isset($data['Bookshop']) ? sanitize_text_field($data['Bookshop']) : '';
        $fonction = isset($data['Function']) ? sanitize_text_field($data['Function']) : '';
        $telephone = isset($data['Phone-number']) ? sanitize_text_field($data['Phone-number']) : '';
        $message = isset($data['Message']) ? sanitize_textarea_field($data['Message']) : '';

        if (!is_email($email)) {
            error_log("Email invalide : $email");
            return;
        }

        // Clé API Brevo
        $apiKey = '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';

        // ID de liste Brevo
        $listId = 18;

        // Préparation des données
        $body = [
            'email' => $email,
            'attributes' => [
                'FIRSTNAME' => $prenom_nom,
                'LIBRARY' => $librairie,
                'FUNCTION' => $fonction,
                'PHONE_NUMBER' => $telephone,
                'MESSAGE' => $message
            ],
            'listIds' => [$listId],
            'updateEnabled' => true
        ];

        // Appel API Brevo
        $response = wp_remote_post('https://api.brevo.com/v3/contacts', [
            'headers' => [
                'api-key' => $apiKey,
                'Content-Type' => 'application/json',
                'Accept' => 'application/json'
            ],
            'body' => json_encode($body)
        ]);

        // Gestion des erreurs
        if (is_wp_error($response)) {
            error_log('Erreur API Brevo : ' . $response->get_error_message());
        } else {
            $code = wp_remote_retrieve_response_code($response);
            if (!in_array($code, [200, 201, 204])) {
                error_log('Réponse API Brevo inattendue : ' . print_r($response, true));
            }
        }
    }
}


