Two clearly-labeled install methods at the top of the README so users know how to get the plugin without scrolling: - WordPress Admin GUI: 3-step ZIP upload - WP-CLI one-liner with --activate flag Both link directly to the v1.0.0 release ZIP on Gitea.
532 lines
17 KiB
Markdown
532 lines
17 KiB
Markdown
# 🐱 TigerStyle Whiskers - GDPR Compliance Plugin
|
|
|
|
> Navigate privacy laws with feline precision - detect every boundary, respect every territory!
|
|
|
|
[](https://wordpress.org/)
|
|
[](https://php.net/)
|
|
[](https://gdpr.eu/)
|
|
[](LICENSE)
|
|
|
|
---
|
|
|
|
## 📦 Installation
|
|
|
|
**Latest release:** [v1.0.0](https://git.supported.systems/tigerstyle/tigerstyle-whiskers/releases/tag/v1.0.0) · [All releases](https://git.supported.systems/tigerstyle/tigerstyle-whiskers/releases)
|
|
|
|
### Via WordPress Admin (GUI)
|
|
|
|
1. Download [tigerstyle-whiskers-1.0.0.zip](https://git.supported.systems/tigerstyle/tigerstyle-whiskers/releases/download/v1.0.0/tigerstyle-whiskers-1.0.0.zip)
|
|
2. In WordPress admin: **Plugins → Add New → Upload Plugin**, pick the ZIP
|
|
3. Click **Activate Plugin** — settings appear under **TigerStyle Whiskers** in the sidebar
|
|
|
|
### Via WP-CLI (terminal)
|
|
|
|
```bash
|
|
wp plugin install \
|
|
https://git.supported.systems/tigerstyle/tigerstyle-whiskers/releases/download/v1.0.0/tigerstyle-whiskers-1.0.0.zip \
|
|
--activate
|
|
```
|
|
|
|
**Requires:** WordPress 5.0+ · PHP 7.4+
|
|
|
|
---
|
|
|
|
## 🎯 What is TigerStyle Whiskers?
|
|
|
|
TigerStyle Whiskers is the perfect addition to the TigerStyle ecosystem - a comprehensive GDPR compliance and privacy protection plugin for WordPress. Like a cat's whiskers help navigate boundaries and detect the environment, this plugin helps your website navigate privacy laws and detect compliance requirements with surgical precision.
|
|
|
|
### 🐅 TigerStyle Ecosystem
|
|
- 🔥 **TigerStyle Heat** - SEO attraction & optimization
|
|
- 💾 **TigerStyle Life9** - Backup & disaster recovery
|
|
- ⚡ **TigerStyle Dash** - Performance & speed optimization
|
|
- 🐱 **TigerStyle Scent** - OAuth2 authorization & API access
|
|
- 🐱 **TigerStyle Whiskers** - GDPR compliance & privacy protection *(NEW!)*
|
|
|
|
---
|
|
|
|
## ✨ Features
|
|
|
|
### 🎯 Boundary Detection
|
|
- **Geographic Detection** - Automatically detect visitor location and applicable privacy laws
|
|
- **Regulatory Mapping** - Identify GDPR, CCPA, LGPD, and other privacy law requirements
|
|
- **Technical Sensing** - Detect cookies, tracking, and data processing capabilities
|
|
- **Plugin Scanning** - Map all WordPress plugins and their data processing activities
|
|
|
|
### 🍪 Cookie Consent Management
|
|
- **Smart Consent Banners** - Beautiful, accessible consent interfaces with feline finesse
|
|
- **Granular Categories** - Necessary, Analytics, Marketing, and Preferences controls
|
|
- **Consent Withdrawal** - Easy preference management for users
|
|
- **Integration Ready** - Works seamlessly with TigerStyle Heat analytics
|
|
|
|
### 📊 Data Mapping & Tracking
|
|
- **Comprehensive Activity Logging** - Track all personal data processing like a cat tracks movement
|
|
- **Automated Detection** - Scan WordPress core, plugins, and themes for data handling
|
|
- **Third-Party Integration** - Map external services and processors
|
|
- **Real-time Monitoring** - Continuous data processing awareness
|
|
|
|
### 🔒 Right to be Forgotten
|
|
- **Deletion Requests** - User-friendly data deletion request system
|
|
- **Surgical Precision** - Remove data with cat-like accuracy
|
|
- **Verification Process** - Secure identity verification for deletion requests
|
|
- **Audit Trails** - Complete deletion logging for compliance records
|
|
|
|
### 🌍 Cross-Border Compliance
|
|
- **Multi-Jurisdiction Support** - Handle GDPR, CCPA, LGPD, PIPEDA requirements
|
|
- **Automatic Detection** - Smart recognition of applicable privacy laws
|
|
- **Localized Interfaces** - Multi-language privacy notices and consent forms
|
|
- **Regional Adaptation** - Adjust behaviors based on visitor location
|
|
|
|
### 📋 Audit & Documentation
|
|
- **Complete Audit Trails** - Every privacy action logged with precision
|
|
- **Compliance Reports** - Generate detailed compliance documentation
|
|
- **Data Processing Maps** - Visual representation of all data flows
|
|
- **Export Capabilities** - Download compliance records in multiple formats
|
|
|
|
---
|
|
|
|
## 🚀 Quick Start
|
|
|
|
### Installation
|
|
|
|
1. **Download** the latest TigerStyle Whiskers plugin
|
|
2. **Upload** to your WordPress site via `Plugins → Add New → Upload`
|
|
3. **Activate** the plugin
|
|
4. **Configure** settings in `TigerStyle Whiskers` admin menu
|
|
|
|
### Initial Setup
|
|
|
|
1. **Boundary Detection**
|
|
```
|
|
WordPress Admin → TigerStyle Whiskers → Boundary Detection
|
|
```
|
|
- Review detected privacy requirements
|
|
- Confirm geographic and regulatory boundaries
|
|
- Verify data processing activities
|
|
|
|
2. **Cookie Consent**
|
|
```
|
|
WordPress Admin → TigerStyle Whiskers → Cookie Consent
|
|
```
|
|
- Customize consent banner appearance
|
|
- Configure cookie categories
|
|
- Set privacy policy links
|
|
|
|
3. **Data Mapping**
|
|
```
|
|
WordPress Admin → TigerStyle Whiskers → Data Mapping
|
|
```
|
|
- Review detected data processing activities
|
|
- Configure retention periods
|
|
- Map third-party processors
|
|
|
|
4. **User Rights**
|
|
```
|
|
WordPress Admin → TigerStyle Whiskers → User Rights
|
|
```
|
|
- Set up deletion request process
|
|
- Configure verification requirements
|
|
- Test data export functionality
|
|
|
|
---
|
|
|
|
## 🔧 Configuration
|
|
|
|
### Cookie Consent Settings
|
|
|
|
```php
|
|
// Customize consent banner
|
|
add_filter('tigerstyle_whiskers_consent_banner_title', function($title) {
|
|
return 'We Respect Your Privacy Like Cats Respect Territory';
|
|
});
|
|
|
|
// Modify cookie categories
|
|
add_filter('tigerstyle_whiskers_cookie_categories', function($categories) {
|
|
$categories['custom'] = array(
|
|
'name' => 'Custom Category',
|
|
'description' => 'Your custom data processing',
|
|
'required' => false,
|
|
'color' => '#3498db'
|
|
);
|
|
return $categories;
|
|
});
|
|
```
|
|
|
|
### Data Processing Integration
|
|
|
|
```php
|
|
// Register custom data processing activity
|
|
add_action('tigerstyle_whiskers_register_processing', function() {
|
|
TigerStyleWhiskers_DataMapper::register_activity('custom_forms', array(
|
|
'purpose' => 'Custom form data collection',
|
|
'data_categories' => array('identity', 'contact'),
|
|
'legal_basis' => 'consent',
|
|
'retention_period' => '2 years'
|
|
));
|
|
});
|
|
```
|
|
|
|
### Consent Callbacks
|
|
|
|
```javascript
|
|
// Listen for consent changes
|
|
document.addEventListener('tigerstyleWhiskersConsentChanged', function(event) {
|
|
const consent = event.detail;
|
|
|
|
if (consent.analytics) {
|
|
// Initialize analytics
|
|
console.log('Analytics consent granted!');
|
|
}
|
|
|
|
if (consent.marketing) {
|
|
// Initialize marketing tools
|
|
console.log('Marketing consent granted!');
|
|
}
|
|
});
|
|
|
|
// Check current consent
|
|
if (tigerstyleWhiskersConsent.hasAnalyticsConsent()) {
|
|
// Analytics is allowed
|
|
}
|
|
```
|
|
|
|
---
|
|
|
|
## 🔌 Integration with TigerStyle Heat
|
|
|
|
TigerStyle Whiskers seamlessly integrates with TigerStyle Heat for GDPR-compliant analytics:
|
|
|
|
```php
|
|
// Automatic integration
|
|
if (class_exists('TigerStyleSEO_Google_setup') && class_exists('TigerStyleWhiskers')) {
|
|
// Analytics will only load with proper consent
|
|
add_filter('tigerstyle_heat_analytics_allowed', function() {
|
|
return TigerStyleWhiskers_CookieConsent::instance()->has_analytics_consent();
|
|
});
|
|
}
|
|
```
|
|
|
|
### Features:
|
|
- **Consent-Conditional Loading** - Analytics only loads with user consent
|
|
- **Automatic Blocking** - GDPR territories get consent-first approach
|
|
- **Seamless UX** - Users see unified privacy experience
|
|
- **Audit Integration** - All analytics data tracked in compliance logs
|
|
|
|
---
|
|
|
|
## 🔒 Security & Privacy
|
|
|
|
### Privacy by Design
|
|
- **Data Minimization** - Collect only essential compliance data
|
|
- **Pseudonymization** - Hash sensitive identifiers automatically
|
|
- **Encryption** - Secure data transmission and storage
|
|
- **Access Controls** - Role-based privacy management
|
|
|
|
### Security Measures
|
|
- **Nonce Verification** - All forms protected with WordPress nonces
|
|
- **Capability Checks** - Admin functions require proper permissions
|
|
- **SQL Injection Protection** - Prepared statements for all database queries
|
|
- **XSS Prevention** - Input sanitization and output escaping
|
|
|
|
### Compliance Standards
|
|
- **GDPR Article 25** - Privacy by design and by default
|
|
- **GDPR Article 32** - Security of processing requirements
|
|
- **ISO 27001** - Information security management alignment
|
|
- **NIST Framework** - Cybersecurity framework compliance
|
|
|
|
---
|
|
|
|
## 📋 Requirements
|
|
|
|
### System Requirements
|
|
- **WordPress**: 5.0 or higher
|
|
- **PHP**: 7.4 or higher
|
|
- **MySQL**: 5.6 or higher
|
|
- **Memory**: 256MB minimum (512MB recommended)
|
|
- **Disk Space**: 10MB for plugin files
|
|
|
|
### Recommended Integrations
|
|
- **TigerStyle Heat** - Enhanced SEO analytics with GDPR compliance
|
|
- **WooCommerce** - E-commerce data processing integration
|
|
- **Contact Form 7** - Form data mapping and consent integration
|
|
- **MailChimp for WordPress** - Email marketing consent management
|
|
|
|
---
|
|
|
|
## 🛠️ Development
|
|
|
|
### Plugin Architecture
|
|
|
|
```
|
|
tigerstyle-whiskers/
|
|
├── tigerstyle-whiskers.php # Main plugin file
|
|
├── includes/
|
|
│ ├── class-core.php # Core functionality
|
|
│ ├── class-boundary-detector.php # Boundary detection engine
|
|
│ ├── class-compliance-scanner.php # Compliance analysis
|
|
│ └── whiskers/ # Individual whisker modules
|
|
│ ├── class-cookie-consent.php
|
|
│ ├── class-data-mapper.php
|
|
│ ├── class-data-deletion.php
|
|
│ ├── class-privacy-policy.php
|
|
│ ├── class-cross-border.php
|
|
│ ├── class-audit-trail.php
|
|
│ └── class-analytics-integration.php
|
|
├── admin/
|
|
│ ├── class-admin.php # Admin interface
|
|
│ └── class-admin-pages.php # Admin page rendering
|
|
├── assets/
|
|
│ ├── css/ # Stylesheets
|
|
│ ├── js/ # JavaScript files
|
|
│ └── images/ # Plugin images
|
|
└── languages/ # Translation files
|
|
```
|
|
|
|
### Hooks & Filters
|
|
|
|
#### Actions
|
|
```php
|
|
// Plugin initialization
|
|
do_action('tigerstyle_whiskers_init');
|
|
|
|
// Consent changes
|
|
do_action('tigerstyle_whiskers_consent_granted', $consent_data);
|
|
do_action('tigerstyle_whiskers_consent_withdrawn', $consent_data);
|
|
|
|
// Data processing
|
|
do_action('tigerstyle_whiskers_data_processed', $activity_data);
|
|
do_action('tigerstyle_whiskers_data_deleted', $deletion_data);
|
|
```
|
|
|
|
#### Filters
|
|
```php
|
|
// Modify consent banner
|
|
apply_filters('tigerstyle_whiskers_consent_banner_html', $html);
|
|
apply_filters('tigerstyle_whiskers_consent_banner_position', 'bottom');
|
|
|
|
// Customize data mapping
|
|
apply_filters('tigerstyle_whiskers_processing_activities', $activities);
|
|
apply_filters('tigerstyle_whiskers_data_categories', $categories);
|
|
|
|
// Integration controls
|
|
apply_filters('tigerstyle_whiskers_analytics_allowed', false);
|
|
apply_filters('tigerstyle_whiskers_marketing_allowed', false);
|
|
```
|
|
|
|
### Custom Whiskers (Modules)
|
|
|
|
Create custom whiskers for specific compliance needs:
|
|
|
|
```php
|
|
class MyCustomWhisker {
|
|
private static $instance = null;
|
|
|
|
public static function instance() {
|
|
if (is_null(self::$instance)) {
|
|
self::$instance = new self();
|
|
}
|
|
return self::$instance;
|
|
}
|
|
|
|
private function __construct() {
|
|
add_action('tigerstyle_whiskers_init', array($this, 'init'));
|
|
}
|
|
|
|
public function init() {
|
|
// Custom compliance logic
|
|
}
|
|
}
|
|
|
|
// Register the whisker
|
|
add_action('tigerstyle_whiskers_load_custom_whiskers', function() {
|
|
MyCustomWhisker::instance();
|
|
});
|
|
```
|
|
|
|
---
|
|
|
|
## 📈 Performance & Optimization
|
|
|
|
### Caching Strategy
|
|
- **Boundary Detection** - Cache geographic and regulatory detection
|
|
- **Data Processing Maps** - Cache activity scans for performance
|
|
- **Consent State** - Efficient cookie-based consent storage
|
|
- **Database Optimization** - Indexed tables for fast queries
|
|
|
|
### Resource Management
|
|
- **Conditional Loading** - Only load scripts when needed
|
|
- **Asset Minification** - Compressed CSS and JavaScript
|
|
- **Database Cleanup** - Automated old data cleanup
|
|
- **Memory Efficiency** - Optimized object instantiation
|
|
|
|
### Monitoring
|
|
- **Performance Metrics** - Track plugin performance impact
|
|
- **Error Logging** - Comprehensive error tracking
|
|
- **Compliance Monitoring** - Real-time compliance status
|
|
- **Usage Analytics** - Plugin usage insights (with consent)
|
|
|
|
---
|
|
|
|
## 🔄 Migration & Compatibility
|
|
|
|
### From Other GDPR Plugins
|
|
|
|
#### GDPR Cookie Consent
|
|
```php
|
|
// Import existing consent data
|
|
add_action('tigerstyle_whiskers_migration', function() {
|
|
$existing_consent = get_option('gdpr_cookie_consent_settings');
|
|
// Migration logic here
|
|
});
|
|
```
|
|
|
|
#### Cookie Notice
|
|
```php
|
|
// Migrate Cookie Notice settings
|
|
add_filter('tigerstyle_whiskers_import_settings', function($settings) {
|
|
$cookie_notice = get_option('cookie_notice_options');
|
|
// Transform settings
|
|
return $settings;
|
|
});
|
|
```
|
|
|
|
### WordPress Compatibility
|
|
- **Multisite Support** - Network-wide privacy management
|
|
- **REST API Integration** - Programmatic privacy controls
|
|
- **WP-CLI Commands** - Command-line privacy operations
|
|
- **Gutenberg Blocks** - Privacy notice blocks and widgets
|
|
|
|
---
|
|
|
|
## 🧪 Testing
|
|
|
|
### Automated Testing
|
|
```bash
|
|
# Run PHPUnit tests
|
|
vendor/bin/phpunit
|
|
|
|
# JavaScript tests
|
|
npm test
|
|
|
|
# Compliance validation
|
|
php whiskers-compliance-test.php
|
|
```
|
|
|
|
### Manual Testing Checklist
|
|
- [ ] **Consent Banner Display** - Test in different browsers and devices
|
|
- [ ] **Geographic Detection** - Verify with VPN from different countries
|
|
- [ ] **Data Deletion** - Complete deletion request workflow
|
|
- [ ] **Integration Testing** - Test with popular plugins
|
|
- [ ] **Performance Impact** - Measure page load impact
|
|
- [ ] **Accessibility** - Screen reader and keyboard navigation
|
|
|
|
### Compliance Testing
|
|
- [ ] **GDPR Requirements** - All articles 12-22 covered
|
|
- [ ] **Consent Validity** - Specific, informed, freely given
|
|
- [ ] **Data Minimization** - Only necessary data collected
|
|
- [ ] **Right to Erasure** - Complete data deletion capability
|
|
- [ ] **Data Portability** - Export in machine-readable format
|
|
|
|
---
|
|
|
|
## 📚 Documentation
|
|
|
|
### User Guides
|
|
- [Quick Start Guide](docs/quick-start.md)
|
|
- [Configuration Reference](docs/configuration.md)
|
|
- [Troubleshooting Guide](docs/troubleshooting.md)
|
|
- [Best Practices](docs/best-practices.md)
|
|
|
|
### Developer Documentation
|
|
- [API Reference](docs/api-reference.md)
|
|
- [Hook Documentation](docs/hooks.md)
|
|
- [Custom Whiskers Guide](docs/custom-whiskers.md)
|
|
- [Integration Examples](docs/integrations.md)
|
|
|
|
### Legal Resources
|
|
- [GDPR Compliance Checklist](docs/gdpr-checklist.md)
|
|
- [Privacy Policy Template](docs/privacy-policy-template.md)
|
|
- [Cookie Policy Template](docs/cookie-policy-template.md)
|
|
- [Data Processing Agreement](docs/dpa-template.md)
|
|
|
|
---
|
|
|
|
## 🤝 Support & Community
|
|
|
|
### Getting Help
|
|
- **📧 Email Support**: whiskers-support@tigerstyle.com
|
|
- **💬 Community Forum**: [TigerStyle Community](https://community.tigerstyle.com)
|
|
- **📖 Documentation**: [docs.tigerstyle.com/whiskers](https://docs.tigerstyle.com/whiskers)
|
|
- **🐛 Bug Reports**: [GitHub Issues](https://github.com/tigerstyle/whiskers/issues)
|
|
|
|
### Contributing
|
|
1. **Fork** the repository
|
|
2. **Create** feature branch: `git checkout -b feature/amazing-whisker`
|
|
3. **Make** your changes with proper testing
|
|
4. **Commit** changes: `git commit -m 'Add amazing whisker feature'`
|
|
5. **Push** to branch: `git push origin feature/amazing-whisker`
|
|
6. **Open** Pull Request
|
|
|
|
### Code Standards
|
|
- Follow WordPress Coding Standards
|
|
- Include unit tests for new features
|
|
- Update documentation for changes
|
|
- Maintain backward compatibility
|
|
- Use semantic versioning
|
|
|
|
---
|
|
|
|
## 📄 License
|
|
|
|
TigerStyle Whiskers is licensed under the [GNU General Public License v2.0 or later](LICENSE).
|
|
|
|
```
|
|
This program is free software; you can redistribute it and/or modify
|
|
it under the terms of the GNU General Public License as published by
|
|
the Free Software Foundation; either version 2 of the License, or
|
|
(at your option) any later version.
|
|
|
|
This program is distributed in the hope that it will be useful,
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
GNU General Public License for more details.
|
|
```
|
|
|
|
---
|
|
|
|
## 🙏 Acknowledgments
|
|
|
|
- **WordPress Community** - For the amazing platform
|
|
- **GDPR Developer Guide** - For compliance best practices
|
|
- **Privacy by Design** - For foundational privacy principles
|
|
- **Cat Whisker Biology** - For the perfect metaphor for boundary detection
|
|
- **TigerStyle Team** - For innovative privacy solutions
|
|
|
|
---
|
|
|
|
<div align="center">
|
|
|
|
## 🐱 Ready to Navigate Privacy Laws with Feline Precision?
|
|
|
|
**TigerStyle Whiskers makes GDPR compliance as natural as a cat's navigation**
|
|
|
|
[🚀 Get Started](https://tigerstyle.com/whiskers) • [📖 Documentation](https://docs.tigerstyle.com/whiskers) • [💬 Community](https://community.tigerstyle.com)
|
|
|
|
---
|
|
|
|
**Built with Tiger Precision by the TigerStyle Team**
|
|
|
|
*Helping WordPress users navigate privacy laws since 2025*
|
|
|
|
⭐ **Star this repository if TigerStyle Whiskers helped your compliance!** ⭐
|
|
|
|
</div>
|
|
|
|
---
|
|
|
|
### Version Information
|
|
- **Current Version**: 1.0.0
|
|
- **Minimum WordPress**: 5.0
|
|
- **Tested up to**: 6.3
|
|
- **Requires PHP**: 7.4
|
|
- **Stable tag**: trunk
|
|
- **License**: GPL v2 or later |