=== Green Cart Carbon — Plantez un arbre ===
Contributors: seedvision
Tags: climat, arbre, contribution, checkout, environnement
Requires at least: 6.0
Tested up to: 6.7
Requires PHP: 7.4
Stable tag: 1.0.0
WC requires at least: 7.0
WC tested up to: 10.0
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Proposez à vos clients une contribution climat optionnelle de 1,25 € au checkout WooCommerce — un arbre planté par contribution, attestation à l'appui.

== Description ==

Green Cart Carbon ajoute une ligne de contribution climat optionnelle (cochée par défaut, décochable en un clic) au checkout de votre boutique WooCommerce. Chaque contribution de 1,25 € finance la plantation d'un arbre via un projet de reforestation vérifié. Le client reçoit une attestation de plantation, et votre boutique dispose d'une page d'impact publique.

**Wording légal.** Conformément au décret français n° 2022-539, ce plugin parle exclusivement de « contribution » climatique. Il ne revendique jamais de « compensation carbone » ni de « neutralité carbone », et n'affiche aucune équivalence CO2 publique.

**Fonctionnement :**

* Une ligne de frais native (« 🌳 Contribution climat », 1,25 €) est ajoutée au panier via l'API de frais de WooCommerce — aucun produit caché, aucun artifice.
* Le client peut refuser la contribution d'un clic (checkbox au checkout classique).
* À la commande payée (et seulement payée), le plugin transmet la contribution au service Green Cart Carbon, qui déclenche la plantation, l'attestation PDF et l'e-mail client.
* Compatible HPOS (High-Performance Order Storage). Envois asynchrones via Action Scheduler : jamais bloquant pour vos clients.
* La contribution n'est proposée que si la devise de la boutique est l'euro (EUR) — support multi-devise prévu.

**Connexion.** Créez un compte sur le tableau de bord Green Cart Carbon, générez votre clé API (affichée une seule fois) et collez-la dans WooCommerce → Green Cart Carbon. Aucune donnée n'est transmise avant que vous ayez collé et enregistré votre clé.

= Service externe (divulgation obligatoire) =

Ce plugin s'appuie sur le service SaaS externe **Green Cart Carbon** (https://greencartcheckout.com), opéré par SEEDVISION SAS, pour orchestrer les plantations, générer les attestations et la facturation mensuelle du marchand.

Endpoints appelés (uniquement sur action, jamais au chargement des pages) :

* `GET /api/v1/ping` — au clic sur « Tester la connexion » dans les réglages.
* `POST /api/v1/connect` — à l'enregistrement de votre clé API. Données envoyées : URL du site (`site_url`), nom de la boutique, e-mail de contact administrateur.
* `POST /api/v1/orders` — quand une commande payée contient une contribution. Données envoyées : identifiant et numéro de commande, devise, montant de la contribution, nombre d'arbres, e-mail et nom du client (pour l'envoi de son attestation de plantation).

Les appels sont authentifiés par votre clé API (Bearer) et les envois de commandes sont signés (HMAC-SHA256).

Les plantations sont exécutées par **DigitalHumani** (https://digitalhumani.com), plateforme RaaS (Reforestation-as-a-Service) qui reverse les fonds à des organismes de reforestation. Le service Green Cart Carbon transmet à DigitalHumani le nombre d'arbres et un identifiant de boutique neutre — jamais les données personnelles de vos clients.

Conditions et politique de confidentialité du service : https://greencartcheckout.com

== Privacy ==

* Le plugin n'envoie **aucune** donnée avant que le marchand ait collé et enregistré sa clé API (pas de « phone home »).
* Données personnelles transmises au service : e-mail et nom du client, uniquement pour les commandes payées comportant une contribution, et uniquement afin de générer et d'envoyer son attestation de plantation.
* Le choix opt-in/opt-out du client est stocké dans la session WooCommerce (pas de cookie propre, pas de traçage).
* Métadonnées enregistrées sur la commande : `_gcc_contribution` (montant), `_gcc_trees` (nombre d'arbres), `_gcc_sent` (garde anti-doublon), `_gcc_attempts` (compteur de tentatives d'envoi).
* La désinstallation du plugin ne supprime pas ces métadonnées de commande (traçabilité comptable) ; les réglages restent dans `wp_options` (`gcc_settings`).
* Demandes d'effacement RGPD : contactez le support Green Cart Carbon pour l'effacement côté service.

== Installation ==

1. Installez et activez le plugin (WooCommerce doit être actif).
2. Créez votre compte et votre clé API sur https://greencartcheckout.com (la clé n'est affichée qu'une seule fois).
3. Dans WooCommerce → Green Cart Carbon, collez la clé et enregistrez : la boutique se connecte automatiquement au service.
4. Cliquez sur « Tester la connexion » pour vérifier.
5. C'est tout : la contribution apparaît au checkout pour les boutiques en euros.

== Frequently Asked Questions ==

= Le client peut-il refuser la contribution ? =

Oui. La checkbox est cochée par défaut mais décochable d'un clic au checkout classique ; le total se met à jour immédiatement.

= Compatible checkout Blocks (Cart & Checkout Blocks) ? =

Partiellement — voir la section TODO ci-dessous.

= Compatible HPOS ? =

Oui, le plugin déclare sa compatibilité avec les custom order tables et n'accède aux commandes que via l'API CRUD de WooCommerce.

= Et si ma boutique n'est pas en euros ? =

La contribution n'est pas proposée (V1). Le support multi-devise est prévu.

= Que se passe-t-il en cas de remboursement ? =

Les plantations sont exécutées rapidement après paiement et un arbre planté ne peut pas être « déplanté ». Contactez le support pour les cas particuliers.

== TODO — Checkout Blocks ==

* La **ligne de contribution s'affiche déjà nativement** dans le checkout Blocks (les frais ajoutés via `woocommerce_cart_calculate_fees` remontent dans la Store API), et les commandes Blocks sont bien tamponnées et transmises (`woocommerce_store_api_checkout_update_order_from_request`).
* En revanche, la **checkbox opt-out n'est pas encore rendue dans le checkout Blocks** : elle nécessite un build JS dédié (wp-scripts, Slot/Fill + `extensionCartUpdate` de `@woocommerce/blocks-checkout` → callback `woocommerce_store_api_register_update_callback` → même flag de session). Implémentation prévue en 1.1.0.
* En attendant, si vous utilisez le checkout Blocks et souhaitez laisser le choix au client, utilisez le checkout classique (shortcode `[woocommerce_checkout]`) ou désactivez la contribution.

== Changelog ==

= 1.0.0 =
* Version initiale : contribution climat native au checkout (fee WooCommerce), opt-out checkout classique, connexion par clé API, capture des commandes payées (triple accroche + Action Scheduler), compatibilité HPOS, i18n FR/EN.

== Upgrade Notice ==

= 1.0.0 =
Version initiale.
