=== Groundworx GTM – Simple Insert for Google Tag Manager ===
Contributors: alexandrie
Plugin URI: https://wordpress.org/plugins/groundworx-gtm
Author URI: https://groundworx.dev
Donate link: https://ko-fi.com/groundworx
GitHub URI: https://github.com/groundworx-dev/groundworx-gtm
Tags: gtm, google tag manager, analytics, tracking
Requires at least: 5.2
Tested up to: 6.9
Requires PHP: 7.4
Stable tag: 1.1.0
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Cleanly inject Google Tag Manager (GTM) into your site using WordPress-native hooks. No tracking for selected user roles.

== Description ==

Groundworx GTM is a lightweight plugin that cleanly adds Google Tag Manager (GTM) to your WordPress site.

It uses core WordPress hooks like `wp_head` and `wp_body_open`, ensuring compatibility and avoiding messy theme edits.

Features:
* Injects GTM scripts in the proper locations (`<head>` and after `<body>`)
* Option to disable tracking for logged-in users, by user role
* No ads, no tracking — just works

== Installation ==

1. Upload the plugin folder to `/wp-content/plugins/` or install via Plugins > Add New.
2. Activate the plugin.
3. Go to Settings > Groundworx GTM and enter your GTM ID.
4. Optionally choose user roles to exclude from GTM injection.

= External services =

This plugin relies on the following third-party service:

**Google Tag Manager (GTM)**  
• **Purpose:** Loads your GTM container so you can manage analytics/marketing tags from GTM.  
• **When it runs:** Only when a valid GTM Container ID (e.g., GTM-XXXXXXX) is saved in the plugin settings and output is enabled. If no ID is set or output is disabled, nothing is loaded.  
• **What is sent and where:** The plugin outputs the standard GTM bootstrap script and a `<noscript>` iframe. The visitor’s browser then requests:  
  – `https://www.googletagmanager.com/gtm.js`  
  – `https://www.googletagmanager.com/ns.html`  
  These requests send standard browser metadata (IP, user agent, referrer, page URL) to Google to serve the files.  
• **Scope:** Front-end pages only. The plugin does not transmit admin data.  
• **Policies:**  
  – [Google Tag Manager Terms of Service](https://marketingplatform.google.com/about/analytics/terms/tag-manager/)  
  – [Google Privacy Policy](https://policies.google.com/privacy)  
• **Data stored by this plugin:** None. The plugin does not log, transmit, or store visitor data in WordPress.

== Frequently Asked Questions ==

= Will this track logged-in users? =

No, not if you exclude their role from the settings panel.

= Where is the GTM code inserted? =

- The `<script>` is injected in the `<head>` using `wp_head`.
- The `<noscript>` fallback is injected after `<body>` using `wp_body_open`.

= What if my theme doesn’t use `wp_body_open`? =

You'll see an admin notice prompting you to update your theme.
If your theme doesn’t support `wp_body_open`, you can manually add it by inserting `<?php wp_body_open(); ?>` immediately after the opening `<body>` tag in your theme’s `header.php` file.

= Do I need to edit my theme? =

Usually no — most modern themes include `wp_head` and `wp_body_open`. But if your theme is older or custom, you might need to add `wp_body_open()` manually after `<body>`.

== Screenshots ==

1. Settings panel with GTM ID and role exclusions.

== Changelog ==

= 1.1.0 =
* Rebuilt settings page with React using WordPress components
* Moved settings under shared Groundworx admin menu
* Added REST API for settings (replaces Settings API)
* Added settings link to plugin action links
* Added keyboard shortcut (Ctrl/Cmd+S) to save settings
* Lowered PHP requirement to 7.4

= 1.0.0 =
* Initial release: inject GTM via `wp_head` and `wp_body_open`

== License ==

GPLv2 or later
