<?php

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

// Générer une clé unique pour la boutique si elle n'existe pas déjà
function smap_generate_unique_shop_key() {
    $existing_key = get_option('smap_shop_key'); // Vérifie si une clé existe déjà
    if ( ! $existing_key ) {
        $unique_key = wp_generate_password(32, false, false); // Génère une clé unique de 32 caractères
        update_option('smap_shop_key', $unique_key); // Stocke la clé dans les options de WordPress
        return $unique_key;
    }
    return $existing_key;
}

// Fonction pour envoyer des logs à l'API externe
function smap_insert_log_entry( $action, $order_id, $ser_id, $smap_sendsms, $smap_sendwa, $reponse = "", $order_data = "", $message = "", $statut_error = "" ) {
    // Assurer l'intégrité des données
    $smap_shop_key = sanitize_text_field( get_option('smap_shop_key') );
    if ( ! $smap_shop_key ) {
        $smap_shop_key = smap_generate_unique_shop_key(); // Génère une clé si elle n'existe pas
    }

    $boutique = sanitize_text_field( get_bloginfo('url') ); // Assainir l'URL du site
    $action   = sanitize_text_field( $action );
    $reponse  = sanitize_text_field( $reponse );
    $order_id = absint( $order_id ); // S'assurer que c'est un entier
    $ser_id   = absint( $ser_id );   // S'assurer que c'est un entier
    $statut_error = sanitize_text_field( $statut_error );

    // Préparer les données du log
    $log_data = array(
        'time'            => current_time('Y-m-d H:i:s'),
        'action'          => $action,
        'order_id'        => $order_id,
        'ser_id'          => $ser_id,
        'smap_shop_key'   => $smap_shop_key,
        'boutique'        => $boutique,
        'smap_sendsms'    => $smap_sendsms,
        'smap_sendwa'     => $smap_sendwa,
        'reponse_server'  => $reponse,
        'order_data'      => $order_data,
        'message'         => $message,
        'statut_error'    => $statut_error
    );

    // Envoyer les logs via une requête POST
    $response = wp_remote_post('https://api.smsmobileapi.com/woocommerce/log/add/', array(
        'method'    => 'POST',
        'body'      => $log_data,
        'timeout'   => 10,
        'sslverify' => false,
    ));

    // Vérifier si l'appel API a échoué
	
	
if ( is_wp_error( $response ) ) {
    $logger = wc_get_logger(); // ou new WP_Logger() si WooCommerce pas dispo
    // translators: The error message returned by the external API.
    $error_message = esc_html__( 'Error sending log to external API.', 'sms-mobile-api' );
    $error_message .= ' ' . esc_html( $response->get_error_message() );
    $logger->error( $error_message, ['source' => 'sms-mobile-api'] );
}
	
	
	
}
?>
