{"id":257807,"date":"2025-11-05T08:50:49","date_gmt":"2025-11-05T08:50:49","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/carbonfooter\/"},"modified":"2026-05-27T10:49:10","modified_gmt":"2026-05-27T10:49:10","slug":"carbonfooter","status":"publish","type":"plugin","link":"https:\/\/fon.wordpress.org\/plugins\/carbonfooter\/","author":23384299,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"0.21.0","stable_tag":"0.21.0","tested":"6.8.5","requires":"5.6","requires_php":"8.0","requires_plugins":null,"header_name":"Carbonfooter","header_author":"Pixel to Planet","header_description":"Measure the carbon emissions of your website right inside WordPress","assets_banners_color":"919193","last_updated":"2026-05-27 10:49:10","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"","header_author_uri":"https:\/\/carbonfooter.nl","rating":0,"author_block_rating":0,"active_installs":10,"downloads":356,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"0.19.0":{"tag":"0.19.0","author":"pixeltoplanet","date":"2025-11-05 08:50:41"},"0.20.0":{"tag":"0.20.0","author":"pixeltoplanet","date":"2026-03-30 10:10:07"},"0.21.0":{"tag":"0.21.0","author":"pixeltoplanet","date":"2026-05-27 10:49:10"}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3390251,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon.svg":{"filename":"icon.svg","revision":3390251,"resolution":false,"location":"assets","locale":false}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3390251,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3390251,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":{"carbonfooter\/minimal":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"carbonfooter\/minimal","version":"0.19.0","title":"Carbonfooter Minimal","category":"carbonfooter","icon":"cloud","description":"A lightweight single-line carbon emissions widget.","textdomain":"carbonfooter","editorScript":"file:.\/index.js","keywords":["carbon","emissions","minimal","footer","sustainability"],"supports":{"html":false,"spacing":{"margin":true,"padding":true},"color":{"text":true,"background":true},"border":{"radius":true},"typography":{"fontSize":true,"fontFamily":true}}},"carbonfooter\/label":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"carbonfooter\/label","version":"0.19.0","title":"Carbonfooter Label","category":"carbonfooter","icon":"tag","description":"A minimal inline carbon emissions label.","textdomain":"carbonfooter","editorScript":"file:.\/index.js","keywords":["carbon","emissions","label","inline","sustainability"],"supports":{"html":false,"spacing":{"margin":true,"padding":true},"color":{"text":true,"background":true},"border":{"radius":true},"typography":{"fontSize":true,"fontFamily":true},"align":["left","center","right"]}},"carbonfooter\/driving":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"carbonfooter\/driving","version":"0.19.0","title":"Carbonfooter Driving","category":"carbonfooter","icon":"car","description":"Display equivalent driving distance from annual emissions for the current page.","textdomain":"carbonfooter","editorScript":"file:.\/index.js","keywords":["carbon","driving","distance","sustainability"],"supports":{"html":false,"spacing":{"margin":true,"padding":true},"color":{"text":true,"background":true},"border":{"radius":true}}},"carbonfooter\/pageweight":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"carbonfooter\/pageweight","version":"0.19.0","title":"Carbonfooter Page Weight","category":"carbonfooter","icon":"archive","description":"Display the page weight (size) for the current page.","textdomain":"carbonfooter","editorScript":"file:.\/index.js","keywords":["carbon","page","weight","size","sustainability"],"supports":{"html":false,"spacing":{"margin":true,"padding":true},"color":{"text":true,"background":true},"border":{"radius":true}}},"carbonfooter\/full":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"carbonfooter\/full","version":"0.19.0","title":"Carbonfooter Full","category":"carbonfooter","icon":"cloud","description":"A composable container block for building custom carbon emissions layouts using stat blocks.","textdomain":"carbonfooter","editorScript":"file:.\/index.js","keywords":["carbon","emissions","full","dashboard","sustainability"],"supports":{"html":false,"spacing":{"margin":true,"padding":true},"color":{"text":true,"background":true},"border":{"radius":true},"typography":{"fontSize":true,"fontFamily":true}}},"carbonfooter\/emissions":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"carbonfooter\/emissions","version":"0.19.0","title":"Carbonfooter Emissions","category":"carbonfooter","icon":"cloud","description":"Display CO\u2082 emissions per visit for the current page.","textdomain":"carbonfooter","editorScript":"file:.\/index.js","keywords":["carbon","emissions","co2","sustainability"],"supports":{"html":false,"spacing":{"margin":true,"padding":true},"color":{"text":true,"background":true},"border":{"radius":true}}},"carbonfooter\/sticker":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"carbonfooter\/sticker","version":"0.19.0","title":"Carbonfooter Sticker","category":"carbonfooter","icon":"cloud","description":"A compact badge-style carbon emissions sticker.","textdomain":"carbonfooter","editorScript":"file:.\/index.js","keywords":["carbon","emissions","sticker","badge","sustainability"],"supports":{"html":false,"spacing":{"margin":true,"padding":true},"color":{"text":true,"background":true},"border":{"radius":true},"typography":{"fontSize":true,"fontFamily":true},"align":true}},"carbonfooter\/green-hosting":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"carbonfooter\/green-hosting","version":"0.19.0","title":"Carbonfooter Green Hosting","category":"carbonfooter","icon":"admin-site-alt3","description":"Display whether the site uses green energy hosting.","textdomain":"carbonfooter","editorScript":"file:.\/index.js","keywords":["carbon","green","hosting","energy","sustainability"],"supports":{"html":false,"spacing":{"margin":true,"padding":true},"color":{"text":true,"background":true},"border":{"radius":true}}},"carbonfooter\/trees":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"carbonfooter\/trees","version":"0.19.0","title":"Carbonfooter Trees","category":"carbonfooter","icon":"palmtree","description":"Display trees needed to offset annual emissions for the current page.","textdomain":"carbonfooter","editorScript":"file:.\/index.js","keywords":["carbon","trees","offset","sustainability"],"supports":{"html":false,"spacing":{"margin":true,"padding":true},"color":{"text":true,"background":true},"border":{"radius":true}}}},"tagged_versions":["0.19.0","0.20.0","0.21.0"],"block_files":[],"assets_screenshots":[],"screenshots":[]},"plugin_section":[262246],"plugin_tags":[66893,200506,178960,155990,250299],"plugin_category":[],"plugin_contributors":[250301,250302,250300],"plugin_business_model":[],"class_list":["post-257807","plugin","type-plugin","status-publish","hentry","plugin_section-dashboard-widgets","plugin_tags-carbon-footprint","plugin_tags-eco-friendly","plugin_tags-emissions","plugin_tags-sustainability","plugin_tags-sustainable-website","plugin_contributors-dannymoons","plugin_contributors-dumithrathnayaka","plugin_contributors-pixeltoplanet","plugin_committers-pixeltoplanet"],"banners":{"banner":"https:\/\/ps.w.org\/carbonfooter\/assets\/banner-772x250.png?rev=3390251","banner_2x":"https:\/\/ps.w.org\/carbonfooter\/assets\/banner-1544x500.png?rev=3390251","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":"https:\/\/ps.w.org\/carbonfooter\/assets\/icon.svg?rev=3390251","icon":"https:\/\/ps.w.org\/carbonfooter\/assets\/icon.svg?rev=3390251","icon_2x":false,"generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p>Carbonfooter helps you understand and showcase the carbon emissions of your website. The plugin automatically measures the carbon footprint of your pages and provides easy-to-use shortcodes to display this information to your visitors.<\/p>\n\n<p><strong>Important Note:<\/strong> This plugin uses the carbonfooter.nl API service to calculate emissions data. By installing and activating this plugin, you agree to share your website URLs with this service for analysis. See the Privacy and External services sections below for more details.<\/p>\n\n<h4>Features<\/h4>\n\n<ul>\n<li>Automatic emissions measurement for all posts and pages<\/li>\n<li>Background processing to avoid impacting site performance<\/li>\n<li>Automatic refresh of emissions data (weekly by default)<\/li>\n<li>One shortcode for display: <code>[carbonfooter]<\/code> (choose the visual style in Settings \u2192 Appearance \u2192 Widget style: minimal, sticker, or full)<\/li>\n<li>Native Gutenberg block support (FSE-compatible): 9 blocks available in the \"Carbonfooter\" block category<\/li>\n<li>Post\/page columns showing emissions in admin<\/li>\n<li>Optional green hosting detection<\/li>\n<li>Multilingual support (English and Dutch)<\/li>\n<\/ul>\n\n<h4>Usage<\/h4>\n\n<p>Use the single shortcode to render the widget. The visual style is selected in Settings.<\/p>\n\n<pre><code>`\n<\/code><\/pre>\n\n<p>[carbonfooter]\n    `<\/p>\n\n<ul>\n<li>Style selection: Choose between \"minimal\", \"sticker\", or \"full\" in Carbonfooter \u2192 Settings \u2192 Appearance \u2192 Widget style. The shortcode does not take attributes; a site-wide style is applied.<\/li>\n<li>Automatic insertion: In Settings, set Display to \"Auto\" to automatically inject the widget into the site footer on the frontend. Set to \"Shortcode\" to only render where the shortcode is used.<\/li>\n<\/ul>\n\n<h4>Gutenberg Blocks<\/h4>\n\n<p>The plugin registers 9 native Gutenberg blocks under the \"Carbonfooter\" category, compatible with Full Site Editing (FSE) themes. All blocks use server-side rendering so data is always fresh.<\/p>\n\n<ul>\n<li><strong>carbonfooter\/minimal<\/strong> \u2014 A lightweight single-line carbon emissions widget.<\/li>\n<li><strong>carbonfooter\/sticker<\/strong> \u2014 A compact badge-style carbon emissions sticker.<\/li>\n<li><strong>carbonfooter\/full<\/strong> \u2014 A composable container block for building custom carbon emissions layouts using the stat blocks below.<\/li>\n<li><strong>carbonfooter\/emissions<\/strong> \u2014 Displays CO\u2082 emissions per visit for the current page.<\/li>\n<li><strong>carbonfooter\/trees<\/strong> \u2014 Displays trees needed to offset annual emissions for the current page.<\/li>\n<li><strong>carbonfooter\/driving<\/strong> \u2014 Displays equivalent driving distance from annual emissions for the current page.<\/li>\n<li><strong>carbonfooter\/pageweight<\/strong> \u2014 Displays the page weight (transfer size) for the current page.<\/li>\n<li><strong>carbonfooter\/green-hosting<\/strong> \u2014 Displays whether the site uses green energy hosting.<\/li>\n<li><strong>carbonfooter\/label<\/strong> \u2014 A minimal inline carbon emissions label.<\/li>\n<\/ul>\n\n<p>All blocks support color, spacing, border-radius, and typography controls via the block editor sidebar. Find them by searching \"Carbonfooter\" in the block inserter.<\/p>\n\n<h3>Privacy<\/h3>\n\n<p>This plugin connects to the Carbonfooter API (operated by the same developer\/owner as this plugin) to calculate page-level emissions. The following data may be sent to <code>carbonfooter.nl<\/code>:<\/p>\n\n<ul>\n<li>Page URL being analyzed<\/li>\n<li>Site URL<\/li>\n<li>Post ID<\/li>\n<li>Plugin version<\/li>\n<li>A timestamp<\/li>\n<\/ul>\n\n<p>When is data sent:\n* When you trigger a measurement in the WordPress admin\n* When the plugin refreshes stale data in the background (via WP-Cron)\n* When a single page view schedules a background refresh<\/p>\n\n<p>No personal data is collected or stored by this plugin.<\/p>\n\n<p>Opt-out controls:\n* You can disable data collection at any time in Carbonfooter \u2192 Settings \u2192 Privacy (toggle \"Data collection\").<\/p>\n\n<p>Provider:\n* Carbonfooter by Pixel to Planet\n* Privacy Policy: https:\/\/carbonfooter.nl\/privacy<\/p>\n\n<p>Terms:\n* Terms of Service for the Carbonfooter API are currently under preparation and will be linked here when available.<\/p>\n\n<h3>External services<\/h3>\n\n<p>This plugin connects to the Carbonfooter API (operated by the same developer\/owner as this plugin) to calculate page-level emissions.<\/p>\n\n<p>What is sent and when:\n- Page URL being analyzed\n- Site URL, post ID, plugin version, timestamp\n- Sent when you trigger a measurement in admin, when the plugin refreshes stale data in the background, or when a single page view schedules a background refresh.<\/p>\n\n<p>Provider: Carbonfooter (Pixel to Planet)\n- Privacy Policy: https:\/\/carbonfooter.nl\/privacy\n- Terms of Service: currently under preparation<\/p>\n\n<h3>Terms of Service<\/h3>\n\n<p>The Carbonfooter API used by this plugin is operated by the same developer\/owner as this plugin (Pixel to Planet \/ carbonfooter.nl). By using this plugin, you agree that the URLs being tested are sent to the external Carbonfooter API for analysis. Terms of Service are currently under preparation. Privacy Policy: https:\/\/carbonfooter.nl\/privacy<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>carbonfooter<\/code> folder to the <code>\/wp-content\/plugins\/<\/code> directory<\/li>\n<li>Activate the plugin through the 'Plugins' menu in WordPress<\/li>\n<li>Go to Carbonfooter &gt; Settings to configure options<\/li>\n<li>Use shortcodes to display emissions data on your pages<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"how%20accurate%20are%20the%20emissions%20calculations%3F\"><h3>How accurate are the emissions calculations?<\/h3><\/dt>\n<dd><p>Calculations are based on multiple factors including page size, server location, and hosting type. The methodology follows industry standards for digital carbon footprint calculation.<\/p><\/dd>\n<dt id=\"how%20often%20is%20the%20data%20updated%3F\"><h3>How often is the data updated?<\/h3><\/dt>\n<dd><p>By default, emissions data is refreshed automatically. You can manually trigger updates or adjust display behavior in settings.<\/p><\/dd>\n<dt id=\"can%20i%20use%20this%20without%20sharing%20data%20with%20carbonfooter.nl%3F\"><h3>Can I use this without sharing data with carbonfooter.nl?<\/h3><\/dt>\n<dd><p>No, the emissions calculations require analysis through the carbonfooter.nl service. If you prefer not to share URLs, this plugin may not be suitable for your needs.<\/p><\/dd>\n<dt id=\"is%20the%20plugin%20gdpr%20compliant%3F\"><h3>Is the plugin GDPR compliant?<\/h3><\/dt>\n<dd><p>Yes, the plugin is GDPR compliant. It does not collect or store any personal data. All data collection can be disabled in the settings.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>0.21.0<\/h4>\n\n<ul>\n<li>Add native Gutenberg block support for Full Site Editing (FSE).<\/li>\n<li>Introduces 9 blocks: carbonfooter\/minimal, emissions, trees, driving, pageweight, green-hosting, full, sticker, label.<\/li>\n<li>All blocks use server-side rendering via a new BlockRenderer class.<\/li>\n<li>Centralises SVG icons into a shared SvgIcons class.<\/li>\n<li>Adds a custom carbonfooter block category, multi-entry webpack config, and updated Dutch translations.<\/li>\n<\/ul>\n\n<h4>0.20.0<\/h4>\n\n<ul>\n<li>Added new footer designs and improved shortcode\/preview consistency.<\/li>\n<li>Improved Dutch\/English translation handling to avoid mixed-language output.<\/li>\n<li>Improved release packaging so update zips include the latest translation files.<\/li>\n<\/ul>\n\n<h4>0.19.0<\/h4>\n\n<ul>\n<li>Add \u201cExternal services\u201d section and expand Privacy with data sent and opt\u2011out controls<\/li>\n<li>Consolidate shortcode docs to a single [carbonfooter]; style chosen in Settings<\/li>\n<li>Packaging: release script now also outputs carbonfooter.zip (includes src\/) alongside versioned zip<\/li>\n<li>Update README.md with a short External services note and privacy link<\/li>\n<li>Update readme files and contributors<\/li>\n<\/ul>\n\n<h4>0.18.0<\/h4>\n\n<ul>\n<li>Convert all inline CSS to wp_add_inline_style() for WordPress compliance<\/li>\n<li>Convert all inline JavaScript to wp_add_inline_script() for WordPress compliance<\/li>\n<li>Fix sanitization callbacks in register_setting() calls for proper data validation<\/li>\n<li>Update frontend widget styles to use proper WordPress enqueue methods<\/li>\n<li>Convert shortcode styles (minimal, sticker, full) to wp_add_inline_style()<\/li>\n<li>Move dashboard widget CSS from inline styles to wp_add_inline_style()<\/li>\n<li>Fix activation redirect script to use wp_add_inline_script()<\/li>\n<li>Resolve PHPUnit test configuration path issues<\/li>\n<li>Achieve full WordPress repository compliance standards<\/li>\n<li>Document external service usage (External services + expanded Privacy)<\/li>\n<li>Packaging: release script produces carbonfooter.zip (non-versioned) for WP upload<\/li>\n<\/ul>\n\n<h4>0.17.0<\/h4>\n\n<ul>\n<li>Release plugin version 0.17.0 with minior improvements.<\/li>\n<\/ul>\n\n<h4>0.16.3<\/h4>\n\n<ul>\n<li>Fix get_avarage_emissions() is null on dashboard widget<\/li>\n<\/ul>\n\n<h4>0.16.2<\/h4>\n\n<ul>\n<li>Update readme files<\/li>\n<\/ul>\n\n<h4>0.16.1<\/h4>\n\n<ul>\n<li>Fix shortcode output<\/li>\n<\/ul>\n\n<h4>0.16.0<\/h4>\n\n<ul>\n<li>Include version script<\/li>\n<\/ul>\n\n<h4>0.15.0<\/h4>\n\n<ul>\n<li>Major refactor: unified namespace <code>CarbonfooterPlugin<\/code> and improved autoloader<\/li>\n<li>Added REST Settings API with validation and translators comments<\/li>\n<li>Hardened security (escaping, capability checks) and improved i18n<\/li>\n<li>Enhanced docs and inline PHPDoc across codebase<\/li>\n<li>Improved dashboard widget and admin UX<\/li>\n<\/ul>","raw_excerpt":"Measure and display your website&#039;s carbon footprint with accurate emissions data from carbonfooter.nl.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/fon.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/257807","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fon.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/fon.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/fon.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=257807"}],"author":[{"embeddable":true,"href":"https:\/\/fon.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/pixeltoplanet"}],"wp:attachment":[{"href":"https:\/\/fon.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=257807"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/fon.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=257807"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/fon.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=257807"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/fon.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=257807"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/fon.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=257807"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/fon.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=257807"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}