Description
Green Cart Checkout adds an optional climate contribution line (ticked by default, removed in one click) to your WooCommerce checkout. Each contribution funds the planting of one tree through a partner reforestation project. The amount is the one agreed in your Green Cart contract: the service sends it to your store when you connect, and it is written nowhere in the plugin. Your customer receives a planting certificate, and your store gets a public impact page.
Wording. In line with French decree no. 2022-539 and EU Directive 2024/825, this plugin only ever speaks of a climate “contribution”. It never claims “carbon offsetting” or “carbon neutrality”, and it publishes no CO2 equivalence.
How it works:
- A native fee line (“Climate contribution”, at the amount sent by the service) is added to the cart through the WooCommerce fee API. No hidden product, no workaround.
- Your customer can decline the contribution in one click, on the classic checkout and on the Cart and Checkout Blocks alike.
- Once an order is paid, and only then, the plugin forwards the contribution to the Green Cart Checkout service, which orders the planting and sends the certificate by email.
- Compatible with HPOS (High-Performance Order Storage). Sending is asynchronous through Action Scheduler, so it never blocks your customers.
- The contribution is only offered when the store currency is the euro (EUR). Multi-currency support is planned.
Connecting. Green Cart Checkout gives you an API key, shown only once. Paste it under WooCommerce and save: the plugin connects and receives the contribution amount, which only the operator can change. “Test connection” refreshes it. Nothing is sent before you have pasted and saved your key.
External service (required disclosure)
This plugin relies on the external SaaS service Green Cart Checkout (https://greencartcheckout.com), operated by SEEDVISION SARL, to order the plantings, issue the certificates and invoice the merchant monthly.
Endpoints called, on your action only, never on page load:
GET /api/v1/ping— when you click “Test connection” in the settings.POST /api/v1/connect— when you save your API key. Data sent: site URL (site_url), store name, administrator contact email.POST /api/v1/orders— when a paid order carries a contribution. Data sent: order id and number, currency, contribution amount, number of trees, customer email and name, so that the certificate can be sent to them.POST /api/v1/disconnect— once, when you delete the plugin. Data sent: site URL and the reason (plugin_uninstalled), so the service stops counting your store as active. No personal data. If the service cannot be reached, the deletion carries on regardless.
Calls are authenticated with your API key (Bearer) and order payloads are signed (HMAC-SHA256).
The plantings are carried out by DigitalHumani (https://digitalhumani.com), a Reforestation-as-a-Service platform that passes the funds on to reforestation organisations. The Green Cart Checkout service sends DigitalHumani the number of trees and a neutral store identifier, never your customers’ personal data.
Service terms and privacy policy: https://greencartcheckout.com
Privacy
- The plugin sends no data before the merchant has pasted and saved an API key. There is no phone-home.
- Personal data sent to the service: the customer’s email address and name, only for paid orders carrying a contribution, and only so that their planting certificate can be generated and emailed.
- The customer’s opt-in or opt-out choice is stored in the WooCommerce session. No cookie of our own, no tracking.
- Order metadata written:
_gccheckout_contribution(amount),_gccheckout_trees(number of trees),_gccheckout_sent(duplicate guard),_gccheckout_attempts(send attempt counter). - Deactivating the plugin changes nothing: settings and API key are kept, so you can deactivate to diagnose and reactivate without reconfiguring.
- Deleting the plugin erases its settings from
wp_options, including the API key. Before erasing them it tells the service your store is leaving (seePOST /api/v1/disconnectabove). - Order metadata is deliberately kept on deletion: those are your own sales records, and erasing them would silently rewrite your order history. They contain no credentials.
- GDPR erasure requests: contact Green Cart Checkout support for erasure on the service side.
Installation
- Install and activate the plugin. WooCommerce must be active.
- Create your account and your API key on https://greencartcheckout.com. The key is shown only once.
- Under WooCommerce, paste the key and save. The store connects to the service automatically.
- Click “Test connection” to check it.
- That is all: the contribution appears at checkout for stores trading in euros.
FAQ
-
Can the customer decline the contribution?
-
Yes. The box is ticked by default and unticks in one click, on the classic checkout and on the Checkout Blocks alike. The total updates immediately.
-
Does it work with the Cart and Checkout Blocks?
-
Yes, since version 1.1.0. Both the contribution line and the box to decline it appear in the cart block and in the checkout block, exactly as on the classic checkout. There is nothing to configure: the plugin detects which checkout is in use.
-
Is it compatible with HPOS?
-
Yes. The plugin declares compatibility with custom order tables and only reaches orders through the WooCommerce CRUD API.
-
What if my store does not trade in euros?
-
The contribution is not offered in this version. Multi-currency support is planned.
-
What happens if an order is refunded?
-
Plantings are ordered shortly after payment, and a planted tree cannot be unplanted. Contact support for individual cases.
Reviews
There are no reviews for this plugin.
Contributors & Developers
“Green Cart Checkout” is open source software. The following people have contributed to this plugin.
ContributorsTranslate “Green Cart Checkout” into your language.
Interested in development?
Browse the code, check out the SVN repository, or subscribe to the development log by RSS.
Changelog
1.2.2
- The contribution box can now be offered unticked. Until this version WooCommerce always offered it ticked, with no way to change that: a merchant who wanted customers to opt in had no door, while the Shopify and PrestaShop integrations both had one. The choice is made once in your Green Cart dashboard and reaches the plugin on its next connection, so there is nothing to configure here.
- Stores that have not made that choice keep the box ticked, exactly as before. The same is true if the service cannot be reached: the plugin never switches your store to opt-in on its own, because that would quietly collapse your contributions with no signal.
1.2.1
- The contribution box now carries the Green Cart Checkout logo instead of a tree emoji. Beyond the look, this removes a request to an outside domain: WordPress replaces emoji characters with images hosted on s.w.org, so the mark on your cart page was being fetched from a third party — and vanished silently wherever a content security policy blocked it. The logo now ships with the plugin.
- Fixed a fatal error when the contribution was removed through the Store API with a cart token. The Store API swaps in its own session handler, which has no
has_session()method; calling it returned a 500 and the customer could not remove the contribution. Storefronts using the Blocks cart in a browser were not affected — they authenticate with a nonce and a cookie — but headless stores and API integrations hit the wall.
1.2.0
- Every declaration, option, order meta key, script handle and JavaScript global is now prefixed
gccheckoutinstead ofgcc, to rule out collisions with other plugins. Nothing to do on your side: the plugin has never been published, so no site carries the old names. - Source strings are now English, and no translation files are shipped: translations, French included, come from translate.wordpress.org and reach you through the normal update channel.
- Uninstalling the plugin now erases its settings, including the API key. Until this version the key stayed in the database after the plugin was deleted, in clear text: a site later sold, restored from a backup or exported still carried a working credential. Deactivating the plugin still keeps everything, as before, so diagnosing is unaffected.
- Uninstalling also tells the service the store is leaving, so it is no longer counted as active. Reinstalling and reconnecting switches it back on by itself; a store suspended by the operator stays suspended.
- Redesigned contribution box: the amount, the reforestation project and a link to the store’s public impact page are now shown, and the same card appears on the classic checkout and on the Blocks checkout. It still says plainly that the box is ticked by default and can be removed in one click.
- Order records (contribution amount, tree count, send status) are deliberately kept on uninstall: they belong to the merchant’s own sales history.
1.1.0
- Checkout Blocks: the box that lets a customer decline the contribution now appears in the cart block and in the checkout block. Before this version, on a store using the Blocks checkout, which has been the WooCommerce default since 8.3, the contribution was added with no way for the customer to remove it. Updating is recommended for every store.
- The customer’s choice now travels through the Store API (
extensionCartUpdate) and writes the same session flag as the classic checkout: one source of truth, and a total recalculated straight away. - No build step added: the script uses the modules WooCommerce Blocks already ships.
1.0.1
- No hard-coded amount left: the contribution price comes solely from the service, as agreed for your store. With no amount received, no contribution is offered.
- “Test connection” refreshes the amount and the store details.
- Publisher: SEEDVISION SARL.
1.0.0
- First release: native climate contribution at checkout (WooCommerce fee), opt-out on the classic checkout, API key connection, paid-order capture (three hooks plus Action Scheduler), HPOS compatibility, French and English translations.