PHPackages                             blauequelle/privacywire - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Security](/categories/security)
4. /
5. blauequelle/privacywire

ActivePw-module[Security](/categories/security)

blauequelle/privacywire
=======================

1.2.3(1mo ago)261.3k16[2 issues](https://github.com/webworkerJoshua/privacywire/issues)GPL-3.0PHPCI passing

Since Oct 23Pushed 1mo ago4 watchersCompare

[ Source](https://github.com/webworkerJoshua/privacywire)[ Packagist](https://packagist.org/packages/blauequelle/privacywire)[ RSS](/packages/blauequelle-privacywire/feed)WikiDiscussions master Synced 3w ago

READMEChangelog (10)Dependencies (2)Versions (42)Used By (0)

PrivacyWire
===========

[](#privacywire)

Cookie &amp; Consent Manager for ProcessWire

This module adds the possibility to define cookie / consent groups and load corresponding elements only after the site visitor has given consent.
The following cookie groups are available (the frontend visible label is editable and translatable, this is just the technical name)

- Necessary
- Functional
- Statistics
- Marketing
- External Media
- (All Cookies)
    Necessary elements are always active. You can let the user decide, which individual cookie group(s) should be allowed, and/or add an „Allow all“ button.

You can insert basic styles via css or completely style it yourself. The PrivacyWire Core Javascript file is available both as ES6 as well as transpiled with Babel for IE11 support.

To load scripts, frames, images or other elements only after the site visitor has given consent to that specific cookie group, use the following attributes:

```
console.log("This script only runs after giving consent to functional cookies");
```

You can even render and alternate Opt-In text instead of the element:

```

```

**Available attributes:**

AttributeInfoDescriptionTypeclass `require-consent`optional (required if config option enabled)If the config option "Detect consent windows by class `require-consent` instead of data-attribute" is enabledstring`data-category`requireddefines the assigned cookie group for this elementstring`data-type`optional (required for scripts)replaces the type attribute after giving consentstring`data-src`optional (required for external scripts, images or iframes)replaces the src attribute after giving consentstring`data-srcset`optionalreplaces the srcset attribute for images after giving consentstring`data-srcdoc`optionalreplaces the srcdoc attribute for iframes after giving consentstring`data-ask-consent`optionalReplace element with Opt-In-Elementbool `0/1``data-ask-consent-message`optionalReplace configured message with this text for this instancestring`data-ask-consent-button-label`optionalReplace configured message with this text for this instancestringFor script tags it is required to add `type="text/plain"`, otherwise the script executes directly.

Textformatter to choose Cookie groups / Opt-Out
-----------------------------------------------

[](#textformatter-to-choose-cookie-groups--opt-out)

With PrivacyWire itself comes a Textformatter with the shortcode `[[privacywire-choose-cookies]]` to add a button to show the cookie group selection window.
To automatically include the Opt-In-Element for embedded videos via [TextformatterVideoEmbed](https://processwire.com/modules/textformatter-video-embed/) you can choose the cookie group in the Textformatter settings.

Multiple language support / i18n
--------------------------------

[](#multiple-language-support--i18n)

The module uses the [ProcessWire-integrated translation system](https://processwire.com/docs/multi-language-support/).

Hookable methods
----------------

[](#hookable-methods)

Most of the module methods are hookable! Have a look into [PrivacyWire.module](PrivacyWire.module) to find out more.

###  Health Score

54

—

FairBetter than 97% of packages

Maintenance89

Actively maintained with recent releases

Popularity29

Limited adoption so far

Community22

Small or concentrated contributor base

Maturity67

Established project with proven stability

 Bus Factor1

Top contributor holds 65.1% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~59 days

Recently: every ~67 days

Total

35

Last Release

47d ago

Major Versions

0.4.4 → 1.0.22021-02-06

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/44984072?v=4)[Joshua Hennig](/maintainers/webworkerJoshua)[@webworkerJoshua](https://github.com/webworkerJoshua)

---

Top Contributors

[![webworkerJoshua](https://avatars.githubusercontent.com/u/44984072?v=4)](https://github.com/webworkerJoshua "webworkerJoshua (56 commits)")[![dependabot[bot]](https://avatars.githubusercontent.com/in/29110?v=4)](https://github.com/dependabot[bot] "dependabot[bot] (10 commits)")[![teppokoivula](https://avatars.githubusercontent.com/u/1252021?v=4)](https://github.com/teppokoivula "teppokoivula (5 commits)")[![vieregg-jfc](https://avatars.githubusercontent.com/u/59877407?v=4)](https://github.com/vieregg-jfc "vieregg-jfc (3 commits)")[![brlnr23](https://avatars.githubusercontent.com/u/35556937?v=4)](https://github.com/brlnr23 "brlnr23 (3 commits)")[![aw73](https://avatars.githubusercontent.com/u/6923504?v=4)](https://github.com/aw73 "aw73 (2 commits)")[![marco-kalin](https://avatars.githubusercontent.com/u/103522678?v=4)](https://github.com/marco-kalin "marco-kalin (2 commits)")[![donatasben](https://avatars.githubusercontent.com/u/4421344?v=4)](https://github.com/donatasben "donatasben (2 commits)")[![WebWorkingMan](https://avatars.githubusercontent.com/u/3637410?v=4)](https://github.com/WebWorkingMan "WebWorkingMan (1 commits)")[![gebeer](https://avatars.githubusercontent.com/u/3088950?v=4)](https://github.com/gebeer "gebeer (1 commits)")[![artfulrobot](https://avatars.githubusercontent.com/u/870343?v=4)](https://github.com/artfulrobot "artfulrobot (1 commits)")

### Embed Badge

![Health badge](/badges/blauequelle-privacywire/health.svg)

```
[![Health](https://phpackages.com/badges/blauequelle-privacywire/health.svg)](https://phpackages.com/packages/blauequelle-privacywire)
```

###  Alternatives

[mews/purifier

Laravel 5/6/7/8/9/10 HtmlPurifier Package

2.0k18.0M137](/packages/mews-purifier)[paragonie/ecc

PHP Elliptic Curve Cryptography library

24772.0k35](/packages/paragonie-ecc)[adrianbj/tracy-debugger

The ultimate debugging and development tool for ProcessWire.

935.5k](/packages/adrianbj-tracy-debugger)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
